प्रूफ कैरी कोड में प्रूफ चेकर की आवश्यकता क्यों है


9

नेचुला द्वारा शास्त्रीय PLDI'98 पेपर में, "एक प्रमाणित कंपाइलर का डिज़ाइन और कार्यान्वयन", उच्च-स्तरीय एम्पलीफायर:

  1. सत्यापन की स्थिति उत्पन्न करने के लिए VCGen (सुरक्षा की भविष्यवाणी करता है)
  2. शर्तों को साबित करने के लिए प्रथम-क्रम तर्क प्रमेय कहावत
  3. कदम से सबूत की जांच करने के लिए LF प्रूफ चेकर (2)

मैं चरण (3) से थोड़ा भ्रमित हूं। इसकी आवश्यकता क्यों है? क्या सिर्फ (1) और (2) पर्याप्त नहीं होगा? हम सिर्फ एक प्रमेय कहावत से उत्पन्न प्रमाण पर भरोसा क्यों नहीं करते?

जवाबों:


19

प्रूफ चेकर का उद्देश्य विश्वसनीय कंप्यूटिंग बेस को कम करना है ।

प्रूफ चेकर होने से, न तो कंपाइलर और न ही प्रमेय प्रोवर को सही होने की आवश्यकता है। कागज इस बिंदु को पेज 3 पर बनाता है:

Neither the compiler nor the prover need to be correct in order to be guaranteed to   
detect incorrect compiler output. This is a significant advantage since the VCGen and  
the  proof checker are significantly simpler than the compiler and the prover.

एक प्रूफ चेकर कोड की एक जोड़ी लाइनें है, और शुद्धता के लिए हाथ से निरीक्षण किया जा सकता है। इसके विपरीत, एक स्वचालित कहावत जो अच्छा प्रदर्शन करती है, वह बेहद जटिल है और सही होने की संभावना नहीं है, हालांकि अच्छी तरह से परीक्षण और व्यापक रूप से उपयोग किए जाने वाले त्रुटियों के साथ, गलतियां ऐसे मामलों में होंगी जो ट्रिगर करना आसान नहीं होगा। 30k LOC C कोड पर एक नजर डालें जो लिंगलिंग बनाते हैं , एक अत्याधुनिक SAT सॉल्वर है जो सिर्फ यह देखने के लिए है कि स्वचालित स्वचालित प्रमेय कितना जटिल हो सकता है। प्रूफ चेकर के बिना, आपको उस प्रमेय कहावत को सही साबित करना होगा। यह हम 2015 में आर्थिक रूप से कर सकते हैं से परे है।


मुझे आश्चर्य है कि एटीपी द्वारा निर्मित सबूत छोटी गाड़ी हो सकते हैं। (मुझे लगा कि एटीपी अधूरा हो सकता है लेकिन निराधार / छोटी गाड़ी नहीं है) मुझे यहां कम सूचित किया गया है। मुझे यह जानकर खुशी होगी कि एटीपी द्वारा उत्पन्न साक्ष्यों में महंगी गलतियों के कोई ज्ञात उदाहरण हैं।
राम

3
@ राम किसी भी गंभीर स्वचालित प्रमेय के इतिहास में हजारों छोटे ध्वनि बग हैं। उदाहरण के लिए देखें stackoverflow.com/questions/12281085/… या जीथब पर ऐसे किसी भी उपकरण का संशोधन इतिहास।
कोड़ी

@ रॉम कॉडी की महान सलाह के अलावा, मैं अनुभव से सीखने की सलाह देता हूं: थोड़ा एटीपी जैसे कि मूल सैट सॉल्वर लिखें। यह कोड की कुछ पंक्तियों में किया जा सकता है। फिर प्रयास करें और उदाहरण के लिए क्लॉज लर्निंग, देखे गए शाब्दिक या दिलचस्प चर चयन उत्तराधिकार को जोड़कर अच्छा प्रदर्शन करें। फिर अनुभव के बारे में सोचें ...
मार्टिन बर्जर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.