आश्रित प्रकार के सिस्टम में प्रूफ के लिए पुनरावर्ती प्रकार की आवश्यकता क्यों है?


10

मैं सिद्धांत और आश्रित प्रोग्रामिंग टाइप करने के लिए अपेक्षाकृत नया हूँ। मैं कंस्ट्रक्शन (CoC) और अन्य शुद्ध प्रकार के सिस्टम की गणना कर रहा हूं। मैं विशेष रूप से एक संकलक प्रणाली के लिए एक सबूत-संरक्षण मध्यवर्ती प्रतिनिधित्व के रूप में इसका उपयोग करने में रुचि रखता हूं।

मैं समझता हूँ कि (सह) पुनरावर्ती प्रकार प्रदर्शनीय हैं , जो कंप्यूटेशनल , का उपयोग कर Π ही प्रकार निर्माता के रूप में। मैं, पढ़ा है, हालांकि, यह है कि वे प्रेरण द्वारा निर्माण सबूत के लिए इस्तेमाल नहीं किया जा सकता है (मुझे माफ कर दो, मैं नहीं जहां अब पा सकते हैं!), उदाहरण के लिए, कि मैं प्रमाणित नहीं कर सका कि 01 सादा सीओसी में (भले हीNat रूप में )।Π(N:).Π(S:NN).Π(Z:N).N

मुझे लगता है यही कारण है कि उन्होंने आगमनात्मक निर्माणों (CIC) की गणना की। क्या ये सही है? लेकिन क्यों? मुझे यह बताने में कोई भी सामग्री नहीं मिली कि इस तरह के सबूतों को आदिम के रूप में (सह) आगमनात्मक प्रकारों का उपयोग किए बिना क्यों नहीं दर्शाया जा सकता है। यदि यह सच नहीं है, तो उन्हें सीआईसी में आदिम के रूप में क्यों जोड़ें?

जवाबों:


7

मैं एक विशेषज्ञ नहीं हूं, लेकिन मैं एक उदाहरण के साथ अब तक जो कुछ भी समझा था उसे साझा करूंगा।

आइए अपने मानक एन्कोडिंग का उपयोग करते हुए CoC में बुलियन प्रकार पर विचार करें: हम साबित करने के लिए सक्षम होने के लिए उम्मीद कर सकते हैं Π : बी बी = टी

B=Πτ:τττtt=λτ:,x:τ,y:τ. xff=λτ:,x:τ,y:τ. y
दरअसल, इस जल्दी से निर्भर उन्मूलन / प्रेरण सिद्धांत से इस प्रकार हम सीआईसी में जैसे है बी मैं एन डी : Π पी : बी* पी ( टी टी ) पी ( ) Π : बी पी ( )
Πb:Bb=ttb=ff()
Bind:ΠP:BP(tt)P(ff)Πb:BP(b)

हालांकि, हम वास्तव में CoC के सभी मॉडलों में हिस्सेदारी की उम्मीद नहीं कर सकते (*)! Intuitively, में एक मूल्य के मोटे तौर पर काम करता है के एक परिवार होना चाहिए { τ } τ प्रत्येक प्रकार के बताए τ की व्याख्या में एक मूल्य τ τ τ । लेकिन इस के लिए मजबूर नहीं करता τ के मूल्यों के बीच एक होने की टी टी , । हम उदाहरण के लिए (अनौपचारिक) f N ( n ) ( m ) = n + m हो सकते थेB{fτ}τττττfτtt,ff

fN(n)(m)=n+m

tt,ff()B

()()Bind


(λ(Nat:).(...))(Π(N:).Π(S:NN).Π(Z:N).N)SZ
पॉलोटरेंस

NatS,Znn(T)(ST)(ZT)=ZTTT=Bn(B)(S)(Z)=S(Z)nλT:.if T=B then n

ΠT:TTv(T)(x)=xTT=Nv(N)(x)=x+1
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.