बीटा विस्तार का संगम


10

चलो हो में -Reduction -calculus। द्वारा -expansion परिभाषित करें ।बीटाβ बीटा βλ λबीटा βबीटा βटी ' बीटा टीटी बीटा टी 'tβttβt

क्या संगम है? दूसरे शब्दों में, क्या हमारे पास ऐसा कोई भी , यदि , तो मौजूद जैसे कि ?बीटाβ एल , डी , आर l,d,rएल * बीटा* बीटा आर lβdβrयू uएल * बीटा यू * बीटा आरlβuβr

कीवर्ड: ऊपर की ओर संगम, सीआर संपत्ति के ऊपर उल्टा


मैंने कमजोर संपत्ति को देखकर शुरुआत की: स्थानीय संगम (यानी अगर , तो )। यहां तक ​​कि अगर यह सच था, तो इसका मतलब यह नहीं होगा कि जब से डेफ़िसिट विस्तार गैर-समाप्ति है, लेकिन मैंने सोचा कि इससे मुझे बाधाओं को समझने में मदद मिलेगी।एल बीटाबीटा आर lβdβrएल * बीटा यू * बीटा आर lβuβrबीटाβ

(शीर्ष) उस स्थिति में जहां दोनों कटौती शीर्ष-स्तर पर हैं, परिकल्पना बन जाती है । अप करने के लिए -renaming, हम यह मान सकते हैं कि , और है कि न तो x_1 है और न ही x_2 उन शब्दों में नि: शुल्क है।( Λ एक्स 11 ) एक 11 [ एक 1 / एक्स 1 ] = 2 [ एक 2 / एक्स 2 ] ( λ एक्स 22 ) एक 2(λx1.b1)a1b1[a1/x1]=b2[a2/x2](λx2.b2)a2 α αएक्स 1एक्स 2 x1x2एक्स 1 x1एक्स 2x2

(फेंक) , तो में मुक्त नहीं है , हमारे पास और इसलिए है ।एक्स 1 x11 b11 = 2 [ एक 2 / एक्स 2 ] b1=b2[a2/x2]( λ एक्स 11 ) एक 1 = ( λ एक्स 12 [ एक 2 / एक्स 2 ] ) एक 1( λ एक्स 1( λ एक्स 22 ) एक 2 )एक 1( λ एक्स 22 ) एक 2(λx1.b1)a1=(λx1.b2[a2/x2])a1(λx1.(λx2.b2)a2)a1(λx2.b2)a2

केस के लिए इंडक्शन ( और ) एक भोला सबूत (टॉप) इस प्रकार होगा:बी b1बी b2

  • यदि एक चर ,बी b1y1

    • यदि , परिकल्पना बन जाती है , और हमारे पास वास्तव में ।y 1 = एक्स 1y1=x1 ( λ एक्स 1एक्स 1 ) एक 1एक 1 = 2 [ एक 2 / एक्स 2 ] ( λ एक्स 22 ) एक 2(λx1.x1)a1a1=b2[a2/x2](λx2.b2)a2 ( λ एक्स 1एक्स 1 ) एक 1 = ( λ एक्स 1एक्स 1 ) ( 2[ एक 2 / एक्स 2 ] ) ( λ एक्स 1एक्स 1 ) ( ( λ एक्स 22 ) एक 2 ) ( λ एक्स 22 ) एक 2(λx1.x1)a1=(λx1.x1)(b2[a2/x2])(λx1.x1)((λx2.b2)a2)(λx2.b2)a2

    • यदि , तो हम बस (थ्रो) का उपयोग कर सकते हैं।y 1x 1y1x1

  • एक ही सबूत लागू होता है एक चर है।बी b2

  • के लिए और , परिकल्पना हो जाता है और प्रेरण परिकल्पना ऐसा देता है जिसका अर्थ है वह । दुर्भाग्य से, हमारे पास नहीं है । (यह मुझे _ कटौती के बारे में सोचता है ।)b1=λy.c1b1=λy.c1b2=λy.c2b2=λy.c2(λx1.λy.c1)a1λy.c1[a1/x1]=λy.c2[a2/x2](λx2.λy.c2)a2(λx1.λy.c1)a1λy.c1[a1/x1]=λy.c2[a2/x2](λx2.λy.c2)a2dd(λx1.c1)a1d(λx2.c2)a2(λx1.c1)a1d(λx2.c2)a2λy.(λx1.c1)a1λy.dλy.(λx2.c2)a2λy.(λx1.c1)a1λy.dλy.(λx2.c2)a2λy.(λx2.c2)a2(λx2.λy.c2)a2λy.(λx2.c2)a2(λx2.λy.c2)a2σσ

  • एक समान समस्या अनुप्रयोगों के लिए उत्पन्न होती है: s वे नहीं हैं जहाँ उन्हें होना चाहिए।λλ


1
@ जब तक मैं गलत नहीं हूँ, काम करता है। (λb.yb)y(λa.(λb.ab)y)y(λa.ay)y(λb.yb)y(λa.(λb.ab)y)y(λa.ay)y
xavierm02

1
मैं @ साची से कुछ हद तक सहमत हूं कि यह आपके बारे में सोचने के बाद संगम-सा प्रतीत होता है और कुछ उदाहरण देखें। लेकिन वास्तव में, क्या ? (λx.xxy)yyyy(λx.yxx)y(λx.xxy)yyyy(λx.yxx)y
रोडोलफे लेपिग्रे

2
हालांकि यह मेरे लिए सुविधाजनक होगा अगर यह सच था, मैं थोड़ा अधिक निराशावादी हूं। मेरे एक सहकर्मी ने निम्नलिखित टिप्पणी की, जिससे यह प्रतीत नहीं होता है: इसका अर्थ यह होगा कि कोई भी दो मनमाना कार्यक्रम जो समान (चर्च) पूर्णांक की गणना करता है, संयुक्त हो सकता है।
xavierm02

2
जवाब न है। Barendregt में 3.5.11 एक्सरसाइज प्लॉटकिन के लिए जिम्मेदार एक काउंटर-उदाहरण देता है, लेकिन एक संदर्भ के बिना: और । मैं एक सबूत की तलाश में जा रहा हूं। (λx.bx(bc))c(λx.bx(bc))c(λx.xx)(bc)(λx.xx)(bc)
गिल्स एसओ-

1
मैंने एक जवाब के रूप में काउंटरएक्सप्लिमेंट पोस्ट किया है, जो मैंने सोचा था कि एक सबूत होगा, लेकिन एक कदम है जो मैं समझ नहीं सकता। यदि कोई इसका पता लगा सकता है, तो कृपया उत्तर दें और मैं उसे हटा दूंगा।
गिल्स एसओ- बुराई को रोकें '

जवाबों:


7

दो प्रतिपक्ष हैं:

  • (λx.bx(bc))c(λx.bx(bc))c और (Plotkin)।(λx.xx)(bc)(λx.xx)(bc)
  • (λx.a(bx))(cd)(λx.a(bx))(cd) और (साइबर) (वैन ओस्ट्रोम)।a((λy.b(cy))d)a((λy.b(cy))d)

नीचे दिया गया प्रतिपक्ष विस्तार द लैंबडा कैलकुलस में दिया गया है : एचपी बैरेनग्रेड, संशोधित संस्करण (1984) द्वारा इसका सिंटैक्स और शब्दार्थ , 3.5.11 (vii) व्यायाम। यह प्लॉटकिन (कोई सटीक संदर्भ नहीं) के लिए जिम्मेदार है। मैं एक अधूरा प्रमाण देता हूं, जिसे टेक फाइव:इजी एक्सपेंशन एक्सरसाइज (1996) [पीडीएफ] में एक अलग काउंटरएक्सप्ले के विन्सेंट वैन ओस्ट्रोम द्वारा एक सबूत से अनुकूलित किया गया है ।

प्रमाण का आधार मानकीकरण प्रमेय है, जो हमें एक निश्चित रूप के केवल बीटा विस्तार पर विचार करने की अनुमति देता है। सहज रूप से बोलना, एक मानक कमी एक कमी है जो इसके सभी संकुचन को बाएं से दाएं करती है। अधिक सटीक रूप से, एक कमी गैर-मानक है यदि कोई चरण जिसका पिछले चरण के बाईं ओर एक ; Redex के लिए "बाएँ" और "दाएँ" को परिभाषित किया जाता है, जब Redex अनुबंधित होता है तो समाप्त होने वाले की स्थिति से । मानकीकरण प्रमेय में कहा गया है कि यदि तो से तक मानक कमी है ।MiMiMjMjλλMβNMβNMMNN

चलोL=(λx.bx(bc))cL=(λx.bx(bc))c और । दोनों शर्तें एक कदम में को कम करती हैं ।R=(λx.xx)(bc)R=(λx.xx)(bc)bc(bc)bc(bc)

मान लीजिए कि एक सामान्य पूर्वज जैसे कि । मानकीकरण प्रमेय के लिए धन्यवाद, हम मान सकते हैं कि दोनों कटौती मानक हैं। व्यापकता के नुकसान के बिना, मान लीजिए कि पहला कदम है जहां ये कटौती अलग हैं। इन दो कटौती में से, वह है जहां पहले चरण का दूसरे के बाईं ओर है, और जहांAALβAβRLβAβRAAσσA=C1[(λz.M)N]A=C1[(λz.M)N]C1C1 इस संकुचन का संदर्भ है और रेडेक्स है। चलो अन्य कमी हो।(λz.M)N(λz.M)Nττ

चूँकि मानक है और इसका पहला चरण के छेद के दाईं ओर है , यह और न ही इसके बाईं ओर स्थित हो सकता है। इसलिए का अंतिम शब्द जहां और भाग उनके छिद्रों के बाईं ओर समान हैं, और । चूँकि पर कम करके शुरू होता है और आगे के बाएं को कभी कम नहीं करता है, इसका अंतिम शब्द का होना चाहिए जहां का भागττC1C1C1C1ττC2[(λz.M)N]C2[(λz.M)N]C1C1C2C2MβMMβMNβNNβNσσC1C1C3[S]C3 अपने छेद के बाईं ओर , के बाएँ भाग के औरC1C2 , और ।M[zN]βS

ध्यान दें कि और में से प्रत्येक में एक एकल लंबोदर होता है जो शीर्ष स्तर पर एप्लिकेशन ऑपरेटर के बाईं ओर होता है। चूँकि के लैम्ब्डा को संरक्षित करता है , यह लंबोदर या में से एक है, जो कि का अंतिम कार्यकाल है , और उस शब्द में को कम करके आवेदन का तर्क प्राप्त किया जाता है । सबसे ऊपर है, जिसका अर्थ है कि ।LRτλz.MLRτNC1=C2=C3=[]

  • यदि में समाप्त होता है , तो , और । यदि का में वंशज है तो इस वंश को भी कम करना होगा जो का सामान्य रूप है । विशेष रूप से, का कोई वंशज एक लैम्ब्डा है, तो हो सकता है प्रपत्र की एक subterm अनुबंध नहीं कर सकते हैं जहां का वंशज है । चूंकि का एकमात्र उपसमूह जो को कम करता हैτRMβzzNβbcM[zN]β(λx.bx(bc))cNLbcNNσˇNPˇNNLbcहै , का एकमात्र संभव वंशज में के एकमात्र घटना है ही।bcNLbc

  • यदि में समाप्त होता है , तो , , और । यदि का में वंशज है तो इस वंश को भी संगम से घटाकर होना चाहिए ।τLMβbz(bc)NβcM[zN]β(λx.xx)(bc)NRc

इस बिंदु पर, निष्कर्ष वैन ओस्ट्रोम के अनुसार आसानी से पालन करना चाहिए, लेकिन मैं कुछ याद कर रहा हूं: मैं नहीं देखता कि के वंशज बारे में कोई जानकारी कैसे देते हैं । अधूरी पोस्ट के लिए माफी, मैं रात भर इसके बारे में सोचूंगा।NM


0

ध्यान दें कि -reduction किसी भी शब्द को गायब कर सकता है। यह मानते हुए कि वेरिएबल एक टर्म में फ्री नहीं दिखता है , आपके पास और किसी भी और । परिणाम के रूप में, यह तथ्य कि रिवर्स - कुछ हद तक समतुल्य है: सभी शब्दों के लिए और , एक शब्द जैसे किβxv(λx.v)t1βv(λx.v)t2βvt1t2βt1t2 यू यू * β टी 1 और यू * β टी 2। यह मुझे बहुत गलत लगता है!


2
जब तक मैं गलत, कर रहा हूँ ( λ एक्स वी ) टी 1( λ एक्स ( Λ एक्स वी ) टी 1 ) टी 2( λ एक्स वी ) टी 2 उन दो शब्दों के लिए काम करता है।
xavierm02

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