← नवीनतम पेपर
🤖 AI

ConVer: Using Contracts and Loop Invariant Synthesis for Scalable Formal Software Verification

यह शोध पत्र ConVer को प्रस्तुत करता है, जो एक टॉप-डाउन कंपोजिशनल वेरिफिकेशन टूल है जो बड़े C प्रोग्रामों और रूपांतरित LF मॉडलों के सत्यापन में स्टेट-स्पेस एक्सप्लोजन (state-space explosion) से निपटने के लिए फंक्शन कॉन्ट्रैक्ट्स को सिंथेसाइज करने और उन्हें एक CEGAR-CEGIS लूप के माध्यम से पुनरावृत्त रूप से परिष्कृत करने के लिए लार्ज लैंग्वेज मॉडल्स का लाभ उठाता है।

मूल लेखक: Muhammad A. A. Pirzada, Weiqi Wang, Yiannis Charalambous, Konstantin Korovin, Lucas C. Cordeiro

प्रकाशित 2026-05-27
📖 7 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Muhammad A. A. Pirzada, Weiqi Wang, Yiannis Charalambous, Konstantin Korovin, Lucas C. Cordeiro

मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें

कल्पना कीजिए कि आप यह सिद्ध करने की कोशिश कर रहे हैं कि एक विशाल, जटिल फैक्ट्री पूरी तरह से सही ढंग से चल रही है। उस फैक्ट्री में हजारों मशीनें, कन्वेयर बेल्ट और कर्मचारी हैं, जो एक विशाल जाल की तरह आपस में जुड़े हुए हैं। यदि आप एक गलती खोजने के लिए एक ही समय में हर मशीन, हर गियर और हर कर्मचारी को देखने की कोशिश करते हैं, तो आप अभिभूत हो जाएंगे। सूचना की इतनी अधिक मात्रा आपके मस्तिष्क को "फट" जाने पर मजबूर कर देगी इससे पहले कि आप त्रुटि ढूंढ सकें। यह बिल्कुल वही समस्या है जिसका सामना सॉफ्टवेयर इंजीनियर बड़े कंप्यूटर प्रोग्रामों को सत्यापित करने के दौरान करते हैं: कंप्यूटर के पास एक साथ सभी संभावित स्थितियों (states) की जांच करने के लिए बहुत अधिक विकल्प होते हैं।

यह पेपर CONVER को पेश करता है, जो एक नया टूल है जिसे कोड की जांच करने के तरीके को बदलकर इस "अभिभूत होने" वाली समस्या को हल करने के लिए डिज़ाइन किया गया है। पूरे कारखाने को एक साथ देखने के बजाय, CONVER एक स्मार्ट, टॉप-डाउन मैनेजर की तरह काम करता है जो समस्या को छोटे, प्रबंधनीय टुकड़ों में तोड़ देता है।

यहाँ CONVER कैसे काम करता है, सरल उपमाओं (analogies) का उपयोग करके बताया गया है:

1. "टॉप-डाउन" रणनीति: ब्लूप्रिंट बनाम ईंटें

आमतौर पर, किसी प्रोग्राम को सत्यापित करने के लिए, आपको पूरे सिस्टम की जांच करने से पहले हर एक फंक्शन (हर छोटी मशीन) के लिए एक विस्तृत नियम पुस्तिका (एक "कॉन्ट्रैक्ट") लिखनी पड़ती है। यह एक कार के सुरक्षित होने की पुष्टि करने से पहले कार के हर एक पेंच (screw) के लिए मैनुअल लिखने जैसा है। इसमें बहुत समय लगता है और विशेषज्ञों की आवश्यकता होती है।

CONVER इस पद्धति को उलट देता है।

  • उपमा: मान लीजिए आपका एक लक्ष्य है: "फैक्ट्री को कभी भी लाल रंग का उत्पाद (widget) नहीं बनाना चाहिए।"
  • पुराना तरीका: आप हर कर्मचारी से पूछते हैं, "आपके नियम क्या हैं?" और एक बॉटम-अप सिस्टम बनाने की कोशिश करते हैं।
  • CONVER का तरीका: आप बड़े लक्ष्य ("कोई लाल उत्पाद नहीं") से शुरुआत करते हैं। फिर आप एक AI सहायक (एक लार्ज लैंग्वेज मॉडल, या LLM) से प्रत्येक कार्यकर्ता के लिए उन नियमों का अनुमान लगाने के लिए कहते हैं जो यह गारंटी देंगे कि बड़े लक्ष्य को पूरा किया जा सकता है। यह कहने जैसा है कि, "यदि असेंबली लाइन का कार्यकर्ता इन सरल नियमों का पालन करता है, तो अंतिम उत्पाद सुरक्षित होगा।" आपको यह जानने की आवश्यकता नहीं है कि कार्यकर्ता का दिमाग कैसे काम करता है, बस यह जानना पर्याप्त है कि वे नियमों का पालन करते हैं।

2. "स्मार्ट लूप": जासूस और AI

एक बार जब AI नियमों (कॉन्ट्रैक्ट्स) का अनुमान लगा लेता है, तो CONVER उन्हें एक दो-चरणीय लूप (two-step loop) का उपयोग करके परखता है, जो एक जासूस और एक संदिग्ध के बीच "नियम का अनुमान लगाने" के खेल जैसा है।

  • चरण A: सिस्टम चेक (मैनेजर): CONVER जांचता है कि क्या पूरा कारखाना काम करता है यदि सभी अनुमानित नियमों का पालन किया जाए। यह मशीनों के अंदर नहीं देखता; यह केवल नियमों पर भरोसा करता है।
  • चरण B: फंक्शन चेक (इंस्पेक्टर): इसके बाद CONVER जांचता है कि क्या वास्तविक मशीनें वास्तव में उन नियमों का पालन कर सकती हैं।
  • "CEGAR" लूप: यदि मशीनें नियमों का पालन करने में विफल रहती हैं, तो CONVER हार नहीं मानता। यह विशिष्ट गलती (काउंटरएग्जांपल) को लेता है और उसे AI को दिखाता है।
    • उपमा: AI कहता है, "मुझे लगा कि कार्यकर्ता 50 पाउंड उठा सकता है।" इंस्पेक्टर कहता है, "नहीं, कार्यकर्ता ने 50 पाउंड का बॉक्स गिरा दिया।" AI इस विशिष्ट विफलता से सीखता है और एक नया, बेहतर नियम लिखता है: "कार्यकर्ता 40 पाउंड तक वजन उठा सकता है।"
    • यह तब तक बार-बार होता रहता है जब तक कि नियम एकदम सही न हो जाएं।

3. "SMART ICE" लर्निंग: शोर को फ़िल्टर करना

कभी-कभी, AI गलती करता है क्योंकि उसने प्रश्न को गलत समझा है, न कि इसलिए कि नियम गलत है। इसे ठीक करने के लिए, CONVER SMART ICE लर्निंग नामक तकनीक का उपयोग करता है।

  • उपमा: कल्पना कीजिए कि आप एक कुत्ते को करतब सिखा रहे हैं। यदि कुत्ता "रुको" कहने पर बैठ जाता है, तो आप जानते हैं कि यह एक अच्छा करतब है। लेकिन यदि कुत्ता किसी गिलहरी को देखकर बैठ जाता है, तो यह एक गलत अलार्म है।
  • यह कैसे काम करता है: CONVER "गलत अलार्म" (शोर/noise) को फ़िल्टर करता है और केवल "वास्तविक गलतियों" (सिग्नल) को रखता है। यह त्रुटियों को "पॉजिटिव" (यह काम कर गया), "नेगेटिव" (यह निश्चित रूप से विफल रहा), और "इम्प्लिकेशन" (यदि यह होता है, तो वह अवश्य होगा) में वर्गीकृत करता है। यह AI को बहुत तेज़ी से सीखने और अपनी ही गलतियों से भ्रमित होने से बचने में मदद करता है।

4. "प्री-एब्स्ट्रैक्शन" ट्रिक: कार्टून संस्करण

कोड के कुछ हिस्से इतने जटिल होते हैं (जैसे अनंत लूप वाली फैक्ट्री) कि नियमों की जांच करना भी कठिन हो जाता है।

  • उपमा: यदि किसी मशीन को विस्तार से बनाना बहुत कठिन है, तो CONVER पहले उसका एक सरल कार्टून संस्करण बनाता है। यह जांचता है कि क्या कार्टून काम करता है। यदि वह काम करता है, तो यह कार्टून को वास्तविक मशीन से बदल देता है और फिर से जांच करता है।
  • यह CONVER को उन प्रोग्रामों को संभालने की अनुमति देता है जो सामान्यतः कंप्यूटर की मेमोरी को क्रैश कर सकते हैं।

उन्होंने क्या पाया?

शोधकर्ताओं ने गणितीय पहेलियों से लेकर जटिल वास्तविक दुनिया के फाइल पार्सर्स और रिकर्सिव लूप तक, चार अलग-अलग "जिमनेजियम" (कोड के समूह) पर CONVER का परीक्षण किया।

  • सरल प्रोग्राम: 45 मानक प्रोग्रामों के एक सेट पर, CONVER अविश्वसनीय रूप से सफल रहा, जिसने 82% से 96% को सत्यापित किया। इनमें से अधिकांश को केवल एक राउंड की जांच में हल कर लिया गया, जिसका अर्थ है कि AI ने पहली बार में ही लगभग सटीक नियमों का अनुमान लगा लिया था।
  • कठिन प्रोग्राम: अधिक कठिन सेटों पर (जैसे सुरक्षा प्रमाणपत्रों या जटिल रिकर्सिव लूपों को पार्स करना), सफलता दर गिरकर 33% से 64% हो गई। यह अपेक्षित है क्योंकि ये प्रोग्राम समझने में बहुत कठिन होते हैं।
  • "AI" कारक: उन्होंने तीन अलग-अलग AI मॉडल (Qwen, Claude, और GPT) का परीक्षण किया। AI मॉडल जितना स्मार्ट होगा, CONVER उतना ही बेहतर प्रदर्शन करेगा। सबसे स्मार्ट AI (GPT-OSS 120b) ने सबसे अधिक समस्याओं को हल किया, जिससे सिद्ध होता है कि AI के "अनुमानों" की गुणवत्ता ही सफलता की कुंजी है।

निष्कर्ष

CONVER एक ऐसा टूल है जो सॉफ्टवेयर के लिए "नियम पुस्तिकाएं" लिखने के लिए AI का उपयोग करता है, और फिर उन नियम पुस्तिकाओं को तब तक परिष्कृत करने के लिए एक स्मार्ट, पुनरावृत्ति प्रक्रिया (iterative process) का उपयोग करता है जब तक कि वे पूर्ण न हो जाएं। यह एक विशाल, असंभव दिखने वाली पहेली को छोटे, समाधान योग्य चरणों की श्रृंखला में बदल देता है।

  • यह सत्यापन की आवश्यकता को प्रतिस्थापित नहीं करता है; बल्कि यह सबसे कठिन हिस्से (नियम लिखना) को स्वचालित करता है।
  • यह हर एक जटिल प्रोग्राम के लिए 100% सफलता की गारंटी नहीं देता, लेकिन यह कई ऐसे प्रोग्रामों को हल करता है जिन्हें पहले स्वचालित रूप से जांचना असंभव था।
  • यह विफलताओं से सीखता है: हर बार जब सॉफ्टवेयर विफल होता है, तो यह टूल ठीक से समझता है कि विफलता क्यों हुई और AI से बेहतर अनुमान लगाने के लिए फिर से प्रयास करने को कहता है।

संक्षेप में, CONVER एक अथक, अत्यंत बुद्धिमान मैनेजर की तरह है जो एक विशाल समस्या को छोटे कार्यों में तोड़ता है, अपनी हर गलती से सीखता है, और योजना को तब तक परिष्कृत करता रहता है जब तक कि काम पूरा न हो जाए।

अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?

आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।

Digest आज़माएँ →