Verification of a DPLL Transition System in Rocq
यह शोध पत्र Rocq प्रूफ असिस्टेंट में DPLL SAT-सॉल्विंग प्रक्रिया के लिए एक अमूर्त, नियम-आधारित ट्रांज़िशन सिस्टम का औपचारिक सत्यापन प्रस्तुत करता है, जो शुद्ध लिटरल (pure literal) नियम के साथ इसका विस्तार करते हुए इसकी शुद्धता, पूर्णता और समाप्ति को स्थापित करता है और एक सत्यापित अमूर्त रणनीति से एक ठोस समाप्त होने वाले सॉल्वर को व्युत्पन्न करता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
एक ऐसी दुनिया की कल्पना करें जहाँ कंप्यूटर लगातार "सत्य या असत्य" (True or False) का एक उच्च-दांव वाला खेल खेल रहे हैं। इस खेल में, कंप्यूटर को तार्किक कथनों की एक विशाल, उलझी हुई गांठ थमा दी जाती है—जैसे कि एक रेसिपी जो कहती है, "यदि आप चीनी डालते हैं, तो आपको आटा भी डालना चाहिए, लेकिन यदि आप आटा डालते हैं, तो आप नमक नहीं डाल सकते।" लक्ष्य नियमों को तोड़े बिना उस रेसिपी का पालन करने का तरीका खोजना है। यह सैटिस्फिएबिलिटी (SAT) समस्या है। यह एक बॉक्स में लाखों अलग-अलग पहेली के टुकड़ों को फिट करने की डिजिटल समानता है, जहाँ कुछ टुकड़े लाल हैं, कुछ नीले हैं, और निर्देश कहते हैं, "लाल को नीले के बगल में न रखें।"
हम इसकी परवाह क्यों करते हैं? क्योंकि यह केवल एक तर्क पहेली नहीं है; यह कंप्यूटिंग के लगभग हर जटिल कार्य के पीछे का इंजन है। माइक्रोचिप्स डिजाइन करने से लेकर किसी गणितीय प्रमेय (theorem) के सत्य होने को सिद्ध करने तक, कंप्यूटर इन विशाल तार्किक भूलभुलभाइयों से निकलने के लिए SAT सॉल्वर का उपयोग करते हैं। लेकिन यहाँ एक पेच है: ये सॉल्वर अविश्वसनीय रूप से जटिल होते हैं। यदि कोड में एक छोटा सा बग भी छिप जाता है, तो कंप्यूटर आपको आत्मविश्वास से बता सकता है कि एक प्रमाण वैध है, जबकि वह वास्तव में निरर्थक हो सकता है। इसीलिए गणितज्ञ और कंप्यूटर वैज्ञानिक फॉर्मल वेरिफिकेशन (formal verification) के प्रति जुनूनी हैं। इसे एक अत्यंत सख्त, अटूट सुरक्षा जाल बनाने के रूप में समझें। केवल इस उम्मीद में कि कंप्यूटर काम करेगा, इसके बजाय वे एक विशेष प्रकार के "गणितीय सूक्ष्मदर्शी" (जिसे प्रूफ़ असिस्टेंट कहा जाता है) का उपयोग करके तर्क के हर कदम की जाँच करते हैं, यह सुनिश्चित करते हुए कि मशीन उत्तर के बारे में कभी झूठ न बोल सके।
पेपर का बड़ा साहसिक कार्य: एक विश्वसनीय तर्क मशीन का निर्माण
इस शोध पत्र में, जूलिया डिज्कस्ट्रा और बेनेडिक्ट अहरेंस ने इन तर्क मशीनों को विश्वसनीय बनाने की दिशा में एक बड़ी छलांग लगाई है। उन्होंने केवल एक प्रोग्राम नहीं लिखा; उन्होंने रॉक (Rocq) नामक टूल के भीतर DPLL (डेविस-पुटनम-लोगमैन-लोवेलैंड) नामक एक प्रसिद्ध तर्क-समाधान विधि का एक गणितीय रूप से प्रमाणित कंकाल (skeleton) बनाया।
DPLL विधि को एक कठोर रोबोट के रूप में नहीं, बल्कि "स्टेट स्विचिंग" (State Switching) के खेल के रूप में सोचें। कल्पना करें कि एक जासूस रहस्य सुलझाने की कोशिश कर रहा है। जासूस एक खाली नोटबुक (बिना किसी सुराग के) के साथ शुरू करता है। उनके पास अपनी नोटबुक को अपडेट करने के नियम हैं:
- "ओह, मैं समझ गया!" नियम (यूनिट प्रोपगेट): यदि कोई सुराग कहता है कि "बटलर ने किया या मेड ने किया," और जासूस पहले से ही जानता है कि मेड निर्दोष है, तो नोटबुक को अनिवार्य रूप से यह अपडेट करना होगा कि "बटलर ने किया।" जासूस के पास कोई विकल्प नहीं है; तर्क उसे यह कदम उठाने के लिए मजबूर करता है।
- "शुद्ध अनुमान" नियम (प्योर लिटरल): यदि जासूस को "माली" के बारे में कोई सुराग मिलता है लेकिन उसे कभी भी यह नहीं दिखता कि "माली ने नहीं किया," तो वह बिना किसी विरोधाभास के डर के सुरक्षित रूप से अनुमान लगा सकता है कि माली शामिल है।
- "शाखाओं में विस्तार" नियम (डिसाइड): यदि जासूस फंस जाता है, तो वह एक यादृच्छिक (random) सुराग चुनता है (जैसे "बटलर ने किया") और उसे एक निर्णय (decision) के रूप में लिखता है। यह रास्ते का एक दोराहा है।
- "ओह, गलत मोड़" नियम (बैकट्रैक): यदि जासूस एक निर्णय लिखता है और बाद में एक विरोधाभास पाता है (एक सुराग जो कहता है "बटलर ने नहीं किया"), तो उसे उस निर्णय के बाद जो कुछ भी हुआ उसे मिटाना होगा, निर्णय को पलटना होगा (अब बटलर ने नहीं किया), और फिर से प्रयास करना होगा।
- "खेल समाप्त" नियम (फेल): यदि वह सब कुछ मिटा देता है, अंतिम निर्णय को पलट देता है, और फिर भी विरोधाभास से टकराता है, तो खेल खत्म है। रहस्य अनसुलझा है।
लेखकों की मुख्य उपलब्धि इस पूरे खेल को एक ऐसी भाषा में लिखना है जिसे रॉक प्रूफ़ असिस्टेंट पढ़ और सत्यापित कर सके। उन्होंने केवल यह नहीं कहा कि "यह सही लग रहा है।" उन्होंने तीन विशाल चीजें सिद्ध कीं:
- सटीकता (Correctness): यदि खेल एक समाधान के साथ समाप्त होता है, तो वह समाधान निश्चित रूप से वास्तविक है। कंप्यूटर भ्रमित (hallucinate) नहीं करेगा।
- पूर्णता (Completeness): यदि कोई समाधान मौजूद है, तो खेल उसे खोज ही लेगा। कंप्यूटर फँसेगा नहीं या तब हार नहीं मान लेगा जब उसे हार नहीं माननी चाहिए।
- समाप्ति (Termination): खेल कभी अनंत काल तक नहीं चलेगा। यह गणितीय रूप से गारंटी दी गई है कि या तो समाधान के साथ या "खेल समाप्त" के साथ रुक जाएगा।
एक नया मोड़ जोड़ना: "प्योर" नियम
इस पेपर का एक शानदार योगदान यह है कि उन्होंने अपने खेल में एक विशिष्ट नियम जोड़ा जिसे इस सिद्धांत के कुछ पिछले संस्करणों ने छोड़ दिया था: प्योर लिटरल नियम (Pure Literal Rule)। जासूस के उदाहरण में, यह वह क्षण है जब जासूस को एहसास होता है, "अरे, मैंने माली के खिलाफ कभी कोई सबूत नहीं देखा, इसलिए मैं मान लेता हूँ कि माली ही अपराधी है।" लेखकों ने सिद्ध किया कि इस नियम को जोड़ने से खेल बिना किसी सुरक्षा गारंटी को तोड़े तेज़ हो जाता है। उन्होंने दिखाया कि इस अतिरिक्त शॉर्टकट के साथ भी, तर्क पूरी तरह से सटीक बना रहता है।
सिद्धांत से एक वास्तविक (लेकिन सरल) रोबोट तक
सिद्धांत में खेल के नियम पूरी तरह से काम करने के बाद, लेखकों ने पूछा: "क्या हम वास्तव में एक रोबोट बना सकते हैं जो यह खेल खेलता है?" उन्होंने एक रणनीति (strategy) बनाई—जासूस के लिए निर्देश कि अगला नियम कौन सा चुनना है। उन्होंने रॉक में इस रणनीति का एक ठोस संस्करण बनाया और फिर अपने गणितीय प्रमाण को OCaml में लिखे गए एक वास्तविक कंप्यूटर प्रोग्राम में बदलने के लिए एक्सट्रैक्शन (extraction) नामक एक जादुई उपकरण का उपयोग किया।
उन्होंने इस नए रोबोट का परीक्षण कुछ सरल पहेलियों पर किया। यह काम कर गया! इसने समस्याओं को सही ढंग से हल किया, जिसमें zebra.cnf नामक एक पहेली भी शामिल थी जिसमें 155 वेरिएबल्स और 1,135 क्लॉज़ थे। हालाँकि, लेखक अपने रोबोट की सीमाओं के बारे में बहुत ईमानदार हैं। यह एक 'प्रूफ-ऑफ-कॉन्सेप्ट' खिलौना कार की तरह है: यह पूरी तरह से चलती है और सिद्ध करती है कि इंजन काम करता है, लेकिन यह अभी फॉर्मूला 1 रेसिंग कार नहीं है। यह धीमी है क्योंकि यह सुरागों को याद रखने के लिए सरल सूचियों (lists) का उपयोग करती है, जबकि वास्तविक दुनिया की रेसिंग कारें उच्च-गति वाली मेमोरी का उपयोग करती हैं। लेखक स्वीकार करते हैं कि यह संस्करण आज की कंपनियों द्वारा उपयोग किए जाने वाले औद्योगिक दिग्गजों को हराने के लिए तैयार नहीं है, लेकिन यह एक सत्यापित कोर (verified core) है। यह एक छोटा, अटूट आधार है जिस पर भविष्य के तेज़, स्मार्ट सॉल्वर बनाए जा सकते हैं।
भविष्य के लिए इसका क्या अर्थ है
यह पेपर यह दावा नहीं करता है कि इसने दुनिया के सबसे तेज़ SAT सॉल्वर की समस्या को हल कर लिया है। इसके बजाय, यह दावा करता है कि इसने सबसे सुरक्षित संभव ब्लूप्रिंट बनाया है। रॉक में अमूर्त नियमों को सिद्ध करके, उन्होंने एक "विश्वसनीय कोर" बनाया है। भविष्य के शोधकर्ता अब इस ब्लूप्रिंट को ले सकते हैं और आधुनिक सॉल्वरों की शानदार सुविधाएँ—जैसे "गलतियों से सीखना" (क्लाज़ लर्निंग) या "कई चरणों में पीछे कूदना" (नॉन-क्रोनोलॉजिकल बैकट्रैकिंग)—इस विश्वास के साथ जोड़ सकते हैं कि अंतर्निहित तर्क अभी भी सुसंगत है।
संक्षेप में, डिज्कस्ट्रा और अहरेंस ने केवल एक बेहतर कार नहीं बनाई; उन्होंने ऐसी कार का ब्लूप्रिंट बनाया जो कभी दुर्घटनाग्रस्त नहीं हो सकती, यह सिद्ध करते हुए कि पहियों के पीछे का तर्क गणितीय रूप से पूर्ण है। यह एक छोटा, सत्यापित कदम है जो भविष्य की बहुत बड़ी, अधिक जटिल और विश्वसनीय तर्क मशीनों के लिए मार्ग प्रशस्त करता है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।