पी-प्रकार के फनस्प्लिट और ध्रुवता


18

एक में हाल ही में धागा AGDA मेलिंग सूची पर, के सवाल η कानूनों ऊपर पॉप, बनाया जिसमें पीटर Hancock सोचा उत्तेजक टिप्पणी

मेरी समझ यह है कि η कानूनों नकारात्मक प्रकार के साथ आते हैं, यानी। संयोजक जो नियमों का परिचय देते हैं वे उलटे हैं। निष्क्रिय करने के लिए η कार्यों के लिए, हांक एक कस्टम निर्मित निरसक, का उपयोग कर पता चलता है funsplit , हमेशा की तरह आवेदन नियम के बजाय। मैं ध्रुवों के संदर्भ में हांक की टिप्पणी को समझना चाहूंगा।

उदाहरण के लिए, वहाँ दो प्रस्तुतियों हैं Σ -types। सकारात्मक शैली में पारंपरिक मार्टिन-लोफ स्प्लिट एलिमिनेटर है:

Γf:(a:A)(b:Ba)C(a,b)Γp:Σa:A.BΓsplitfp:Cp

और नकारात्मक संस्करण है:

Γp:Σa:A.BΓπ0p:AΓp:Σa:A.BΓπ1p:B[π0p/a]

यह बाद प्रस्तुति आसान प्राप्त करने के लिए बनाता है जोड़े के लिए, यानी। ( Π 0 पी , π 1 पी ) = = पी किसी भी जोड़ी के लिए पी (जहां == पारिभाषिक समानता के लिए खड़ा है)। उकसावे के संदर्भ में, यह अंतर कोई फर्क नहीं पड़ता: अंतर्ज्ञान से, आप विभाजन के साथ अनुमानों को लागू कर सकते हैं, या दूसरे तरीके से।η(π0p,π1p)==pp

अब, -टाइप्स आमतौर पर (और अनायास ही, मेरा मानना ​​है कि) नकारात्मक रूप से लिया जाता है:Π

Γf:Πa:A.BΓs:AΓfs:B[s/a]

जो हमें कार्यों के लिए देता है : λ x x = = ηλx.fx==f

हालाँकि, उस मेल में, हंक फ़नलप्लिट एलिमिनेटर (एमएल टाइप थ्योरी में प्रोग्रामिंग, [http://www.cse.chalmers.se/research/group/logic/book/], p.56) को याद करता है। इसका वर्णन तार्किक रूपरेखा में किया गया है:

fΠ(A,B)C(v)Set[vΠ(A,B)]d(y)C(λ(y))[y(x)B(x)[xA]]funsplit(f,d)C(f)

दिलचस्प है, नॉर्डस्ट्रॉम एट अल। इस परिभाषा को यह कहकर प्रेरित करें कि "[यह] वैकल्पिक गैर-विहित रूप संरचनात्मक प्रेरण के सिद्धांत पर आधारित है"। इस कथन में सकारात्मकता की तीव्र गंध है: कार्यों को उनके निर्माता, द्वारा 'परिभाषित' किया जाएगा ।λ

हालाँकि, मैं प्राकृतिक कटौती में उस नियम की संतोषजनक प्रस्तुति को कम नहीं कर सकता (या, इससे भी बेहतर, अनुक्रमिक पथरी)। को पेश करने के लिए तार्किक ढाँचे का उपयोग (ab) यहाँ महत्वपूर्ण लगता है।y

तो, क्या Π -types की एक सकारात्मक प्रस्तुति funsplit है ? क्या हमारे पास भी (गैर आश्रित) सीक्वेंस कैलकुलस के समान कुछ है? यह कैसा दिखेगा?Π

क्षेत्र में प्रूफ सिद्धांतकारों के लिए यह कितना सामान्य / उत्सुक है?

जवाबों:


12

का उपयोग करके कार्यात्मक उन्मूलन की प्रस्तुति निश्चित रूप से प्रकार के सिद्धांत के अधिकांश उपचारों में एक सामान्य घटना नहीं है। हालांकि, मेरा मानना ​​है कि यह रूप वास्तव में कार्यात्मक प्रकार के उन्मूलन की "सकारात्मक" प्रस्तुति है। यहाँ मुद्दा यह है कि आपको उच्च-क्रम पैटर्न के मिलान की आवश्यकता है, उदाहरण के लिए डेल मिलर देखेंfunsplit

मुझे अपने नियम को इस तरह से फिर से तैयार करने की अनुमति दें जो मेरे लिए स्पष्ट हो:

Γf:Πx:A.BΓ,z:Πx:A.BC:SetΓ,[x:A]F(x):Be:C{λx:A.F(x)/z}match f with λx:A.F(x)e:C{f/z}

कहाँ एक है मेटा-चर प्रकार के बी में संदर्भ एक्स : एकFBx:A

फिर से लिखना नियम बन जाता है:

match λx:A.t with λx:A.F(x)ee{t{u/x}/F(u)}

यह आपको आवेदन को इस प्रकार परिभाषित करने की अनुमति देता है:

app(t,u)=match t with λx:A.F(x)F(u)

इस तथ्य से परे कि इसके लिए एक "लॉजिकल फ्रेमवर्क-स्टाइल" टाइप-सिस्टम को मान्य होना चाहिए, उच्च-क्रम एकीकरण की परेशानी (और सीमित आवश्यकता) इस सूत्रीकरण को अलोकप्रिय बनाती है।

हालांकि, एक ऐसी जगह है जहां साहित्य में सकारात्मक / नकारात्मक अंतर मौजूद है: तार्किक संबंध का सूत्रीकरण भविष्यवाणी करता है । दो संभावित परिभाषाएँ (एकात्मक मामले में) हैं

[[Πx:A.B]]={tu[[A]],tu[[B]]xu}

तथा

[[Πx:A.B]]={ttλx.t,u[[A]],t{u/x}[[B]]xu}

दूसरा संस्करण कम सामान्य है, लेकिन उदाहरण के लिए डॉवेक और वर्नर में पाया जा सकता है ।


1
यह हायर-ऑर्डर एब्स्ट्रैक्ट सिंटैक्स से संबंधित प्रतीत होता है जो लॉजिकल फ्रेमवर्क में व्यापक रूप से उपयोग किया जाता है। विशेष रूप से, यहां मेटा-फ़ंक्शन लगता है। F
दिन

13

यहां फ्रेड्रिक के उत्तर पर थोड़ा अलग दृष्टिकोण है। यह आम तौर पर ऐसा होता है कि प्रकारों के प्रतिवर्ती चर्च एन्कोडिंग प्रासंगिक को संतुष्ट करेंगेβη

तो इसका मतलब है कि हम एक निर्भर जोड़ी को इस प्रकार परिभाषित कर सकते हैं:

अब, ध्यान दें कि π 1 आसानी से definable है: π 1 :

x:X.Y[x]α:.(Πx:X.Y[x]α)α
π1 हालांकि, अगर आप दूसरे प्रक्षेपण परिभाषित कर सकते हैं नहीं π 2 : Π पी : ( एक्स : एक्स
π1:x:X.Y[x]Xλp:(x:X.Y[x]).pX(λxy.x)
- यह कोशिश करो! आप केवल इसके लिए एक कमजोर एलिमिनेटर को परिभाषित कर सकते हैं, यही कारण है कि मैंने इसे एक अस्तित्व के साथ लिखा है।π2:Πp:(x:X.Y[x]).Y[π1p]

π2 प्रोजेक्शन मौलिक रूप से कुछ मजबूत बाह्य गुणों की मांग करता है ताकि यह समझ में ।

अनुक्रमिक पथरी के संदर्भ में, कमजोर एलिमिनेटर का एक नियम है जो थोड़ा सा दिखता है:

Γ,x:X,y:Y[x],Γe:CΓ,p:x:X.Y[x],Γlet(x,y)=pine:C
Here, the implicit well-formedness conditions imply that p cannot occur free in Γ or C. If we relax that condition, we get the split rule, which has a left-rule that looks like
Γ,x:X,y:Y[x],[(x,y)/p]Γe:[(x,y)/p]CΓ,p:x:X.Y[x],Γlet(x,y)=pine:C
That substitution reminds me an awful lot of the Girard/Schroeder-Heister elimination rule for equality. I asked a question about this rule a while back, and David Baelde and Gopalan Nadathur give the state-of-the-art version in their LICS 2012 paper, Combining Deduction Modulo and Logics of Fixed-Point Definitions. I think Conor McBride has spent some time thinking about the relationship between the identity type and the Schroeder-Heister equality, so you might want to see what he thinks.

1
I'm really enjoying all these answers! I feel there is some notion of "introspection" (the ability to know that a term has a value) implicit in the answer from Fredrik that is the real issue with eta: parametricity implies introspection implies eta.
cody

10

Richard Garner has written a nice article on application vs funsplit, On the strength of dependent products in the type theory of Martin-Löf (APAL 160 (2009)), which also discusses the higher order nature of the funsplit rule (with a reference to Peter Schroeder-Heister's A natural extension of natural deduction (JSL 49 (1984))).

Richard shows that in the presence of identity types (and formation and introduction rules for Π types), funsplit is interderivable with the application rule above + propositional eta, i.e. the following two rules:

m:Π(A,B)η(m):IdΠ(A,B)(m,λx.mx)(Π-Prop-η)
x:Af(x):B(x)η(λ(f))=refl(λ(f)):IdΠ(A,B)(λ(f),λ(f))(Π-Prop-η-Comp)

That is, if you have funsplit, you can define application and η as above so that (Π-Prop-η-Comp) holds. More interestingly, if you have application and the propositional eta rules, then you can define funsplit.

Furthermore, funsplit is strictly stronger than application: the propositional eta rules are not definable in a theory with only application -- hence funsplit is not definable, since then the propositional eta rules would be as well. Intuitively, this is because the application rules give you a little more slack: unlike funsplit (and eta), they don't tell you what functions are, only that they can be applied to arguments. I believe Richard's argument could be repeated for Σ types as well, to show the same result for split vs projections.

Note that if you had definitional eta rules, you certainly would have them propositionally as well (with η(m):=refl(m)). Thus, I think your statements "[...] which gives us η for functions" and "[...] this latter presentation makes it easy to obtain η for pairs" are wrong. Agda, however, implements η for both functions and pairs (if Σ is defined as a record), but this does not follow from just application.

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