क्या एक प्रकार की प्रणाली विदेशी कार्यों के लिए एक प्रमाण सहायक के रूप में काम कर सकती है?


9

मान लीजिये:

  1. बहुत अभिव्यंजक प्रकार की प्रणाली (जैसे इदरिस ) वाली भाषा में विदेशी फ़ंक्शन इंटरफेस / असुरक्षित कैफ़ेफॉर्मियो जैसे भागने के तंत्र भी हो सकते हैं।
  2. ऐसे सबूत सहायक हैं जिनका उपयोग किसी भाषा में लिखे गए प्रोग्राम के कुछ गुणों को साबित करने के लिए किया जा सकता है, जिसमें एक प्रकार की प्रणाली नहीं होती है जो उन गुणों को व्यक्त करने में सक्षम हो।
  3. करी-हावर्ड पत्राचार से पता चलता है कि किसी दिए गए प्रकार के साथ किसी फ़ंक्शन का सफलतापूर्वक टाइप किया गया चेक उस प्रकार से व्यक्त किए गए का प्रमाण है।

क्या कोई विदेशी भाषा कोड की कुछ संपत्ति के गैर-तुच्छ प्रमाण को मूल भाषा के प्रकार प्रणाली में व्यक्त कर सकता है?

उदाहरण के लिए, दिखावा करें कि मेरे पास एक सी फ़ंक्शन है जिसे स्टेब_कॉर्ट कहा जाता है जो पहले से ही समान तत्वों के क्रम को बनाए रखते हुए बहुत चालाक और कुशल तरीके से संख्याओं को क्रमबद्ध करता है, और एक इदरीस प्रोग्राम जो अपने एफएफआई के माध्यम से स्थिर_कोर्ट को कॉल करता है, लेकिन मुझे इस अपेक्षाकृत अस्पष्ट पर भरोसा है सी फ़ंक्शन। क्या मैं यह साबित कर सकता हूं कि फ़ंक्शन अलग-अलग प्रूफ सहायक का उपयोग करने के बजाय, मेरे इदरीस कोड में सभी इनपुट के लिए समान तत्वों को फिर से व्यवस्थित नहीं करता है?

जवाबों:


10

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

कहा जा रहा है, वहाँ तरीके हैं। उदाहरण के लिए, Cq में C मानक की विभिन्न औपचारिकताएँ हैं (उदाहरण के लिए रोबर्ट क्रेबर्स का काम )। चूँकि आपके पास C कार्यक्रमों और उनके शब्दार्थों का स्पष्ट प्रतिनिधित्व है, आप अपने कोड को सीधे प्रमाण सहायक में लिख सकते हैं और फिर इसके कुछ गुणों को साबित करना संभव है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.