จุดบรรจบของการขยายเบต้า


10

Let βพ.ศ. β -reduction ในλแคลคูลัส กำหนดβ -expansion βโดยtβttβt '

คือβไหลมารวมกัน? ในคำอื่น ๆ ที่เราจะมีที่ใดl,d,rถ้าlβdβrแล้วมีอยู่uดังกล่าวที่lβuβr ?

คำสำคัญ: การบรรจบขึ้น, คว่ำทรัพย์สิน CR


ฉันเริ่มต้นด้วยการดูที่คุณสมบัติที่อ่อนแอกว่า: การบรรจบกันของท้องถิ่น (เช่นถ้าlβdβr , ดังนั้นlβuβr ) แม้ว่านี้เป็นความจริงก็จะได้หมายความถึงการบรรจบกันตั้งแต่β -expansion ไม่ยุติ แต่ฉันคิดว่ามันจะช่วยให้ฉันเข้าใจอุปสรรค

(บนสุด)ในกรณีที่ทั้งสองลดลงอยู่ที่ระดับบนสมมติฐานที่จะกลายเป็น(λx1.b1)a1b1[a1/x1]=b2[a2/x2](λx2.b2)a2 2 มากถึงα -renaming เราสามารถสรุปได้ว่าx1x2และนั่นไม่ใช่x1หรือx2เป็นอิสระในเงื่อนไขเหล่านั้น

(โยน)ถ้าx1ไม่ฟรีในb1เรามีb1=b2[a2/x2]และดังนั้นจึงมี(λx1.b1)a1=(λx1.b2[a2/x2])a1(λx1.(λx2.b2)a2)a1(λx2.b2)a2 2

หลักฐานที่ไร้เดียงสาโดยอุปนัย (บนb1และb2 ) สำหรับกรณี (บนสุด) จะเป็นดังนี้:

  • หากb1เป็นตัวแปรy1 ,

    • ถ้าy1=x1สมมติฐานกลายเป็น(λx1.x1)a1a1=b2[a2/x2](λx2.b2)a2และเราแน่นอนมี(λx1.x1)a1=(λx1.x1)(b2[a2/x2])(λx1.x1)((λx2.b2)a2)(λx2.b2)a2 2

    • ถ้าy1x1เราก็สามารถใช้ (Throw)

  • ใช้หลักฐานอันเดียวกันคือb2เป็นตัวแปร

  • สำหรับb1=λy.c1และb2=λy.c2สมมติฐานกลายเป็น(λx1.λy.c1)a1λy.c1[a1/x1]=λy.c2[a2/x2](λx2.λy.c2)a2และสมมติฐานการเหนี่ยวนำให้dดังกล่าวว่า(λx1.c1)a1d(λx2.c2)a2ซึ่งหมายความว่าλy.(λx1.c1)a1λy.dλy.(λx2.c2)a2 2 แต่น่าเสียดายที่เราไม่ได้มีλy.(λx2.c2)a2(λx2.λy.c2)a2 2 (สิ่งนี้ทำให้ฉันคิดถึงσ -reduction)

  • ปัญหาเดียวกันนี้เกิดขึ้นสำหรับการใช้งานที่: λ s ไม่ได้ที่พวกเขาควรจะเป็น


1
@chi เว้นแต่ฉันเข้าใจผิดงาน (λb.yb)y(λa.(λb.ab)y)y(λa.ay)y
xavierm02

1
ฉันเห็นด้วยกับ @chi มากว่ามันดูเหมือนว่าจะไหลมารวมกันหลังจากที่คุณคิดถึงมันและเห็นตัวอย่างเคาน์เตอร์ แต่จริงๆแล้วจะเป็นอย่างไร ? (λx.xxy)yyyy(λx.yxx)y
Rodolphe Lepigre

2
แม้ว่ามันจะสะดวกสำหรับฉันถ้ามันเป็นเรื่องจริงฉันก็เป็นคนมองโลกในแง่ร้ายอีกเล็กน้อย เพื่อนร่วมงานของฉันทำข้อสังเกตต่อไปนี้ซึ่งทำให้ดูเหมือนไม่น่าเป็นไปได้: มันบอกเป็นนัยว่าโปรแกรมสองโปรแกรมใด ๆ ที่คำนวณจำนวนเต็ม (โบสถ์) เดียวกันสามารถรวมกันได้
xavierm02

2
คำตอบคือไม่ การออกกำลังกายใน 3.5.11 Barendregt ให้เคาน์เตอร์ตัวอย่างประกอบกับ Plotkin แต่ไม่มีการอ้างอิง: และ( λ x . x x ) ( ) ฉันจะหาหลักฐาน (λx.bx(bc))c(λx.xx)(bc)
Gilles 'หยุดความชั่วร้าย'

1
ฉันโพสต์ตัวอย่างตัวอย่างเป็นคำตอบด้วยสิ่งที่ฉันคิดว่าจะเป็นหลักฐาน แต่มีขั้นตอนที่ฉันไม่สามารถเข้าใจได้ หากใครบางคนสามารถคิดออกได้โปรดโพสต์คำตอบและฉันจะลบของฉัน
Gilles 'หยุดความชั่วร้าย'

คำตอบ:


7

ตัวอย่างที่สองคือ:

  • (λx.bx(bc))cและ(λx.xx)(bc) (Plotkin)
  • (λx.a(bx))(cd)และa((λy.b(cy))d) (Van Oostrom)

ตัวอย่างตัวอย่างรายละเอียดด้านล่างมีให้ในแลมบ์ดาแคลคูลัส: ไวยากรณ์และความหมายโดย HP Barenredgt ฉบับปรับปรุง (1984), การออกกำลังกาย 3.5.11 (vii) มันเกิดจาก Plotkin (ไม่มีการอ้างอิงที่แม่นยำ) ฉันให้หลักฐานที่ไม่สมบูรณ์ซึ่งดัดแปลงมาจากหลักฐานโดย Vincent van Oostrom ของ counterexample ที่แตกต่างกันในการใช้เวลาห้า: การออกกำลังกายการขยายตัวง่าย (1996) [PDF]

พื้นฐานของการพิสูจน์คือทฤษฎีบทมาตรฐานซึ่งช่วยให้เราพิจารณาการขยายเบต้าในรูปแบบบางอย่างเท่านั้น การพูดอย่างสังหรณ์ใจการลดมาตรฐานคือการลดที่ทำให้การหดตัวทั้งหมดจากซ้ายไปขวา การลดลงนั้นไม่ได้มาตรฐานหากมีขั้นตอนMiซึ่ง redex เป็นเศษเหลือของ redex ไปทางซ้ายของ redex ของขั้นตอนก่อนหน้าMj ; “ ซ้าย” และ“ ขวา” สำหรับ redex ถูกกำหนดโดยตำแหน่งของλที่ถูกกำจัดเมื่อทำสัญญา redex ทฤษฎีบทมาตรฐานกล่าวว่าหากMβNมีการลดมาตรฐานจากMเป็นN .

Let L=(λx.bx(bc))cและR=(λx.xx)(bc) ) คำศัพท์ทั้งสองลดค่าเบต้าเป็นbc(bc)ในขั้นตอนเดียว

สมมติว่ามีบรรพบุรุษร่วมกันดังกล่าวว่าL * β* β R ด้วยทฤษฎีบทมาตรฐานเราสามารถสรุปได้ว่าการลดลงทั้งสองเป็นมาตรฐาน โดยไม่สูญเสียความคิดทั่วไปสมมติว่าAเป็นขั้นตอนแรกที่การลดลงเหล่านี้แตกต่างกัน จากการลดลงทั้งสองนี้ขอให้σเป็นอันที่ redex ของขั้นตอนแรกอยู่ทางซ้ายของอีกอันและเขียนA = C 1 [ ( λ z . M ) N ]โดยที่C 1ALβAβRAσA=C1[(λz.M)N]C1เป็นบริบทของการหดตัวนี้และ(λz.M)Nคือ redex ให้τเป็นการลดอื่น ๆ

เนื่องจากτเป็นมาตรฐานและขั้นตอนแรกอยู่ทางขวาของรูในC1จึงไม่สามารถหดที่C1หรือทางซ้ายของมัน ดังนั้นเทอมสุดท้ายของτจึงเป็นรูปแบบC2[(λz.M)N]โดยที่ส่วนของC1และC2ทางด้านซ้ายของรูของพวกมันเหมือนกันMβMและNβN. เนื่องจากσเริ่มต้นด้วยการลดที่C1และไม่เคยลดลงเหลืออีกเทอมสุดท้ายของมันจะต้องอยู่ในรูปแบบC3[S]โดยที่ส่วนของC3ทางด้านซ้ายของรูนั้นเหมือนกับส่วนซ้ายของC1และC2และM[zN]βS S

LRτλz.MLRτNC1=C2=C3=[]

  • τRMβzzNβbcM[zN]β(λx.bx(bc))cNLbcNNσNˇPNˇNLbcbcNLbc

  • τLMβbz(bc)NβcM[zN]β(λx.xx)(bc)NRc

NM


0

βxv(λx.v)t1βv(λx.v)t2βvt1t2βt1t2uuβt1uβt2


2
(λx.v)t1(λx.(λx.v)t1)t2(λx.v)t2

ประณามคุณถูก! ฉันจะพยายามคิดอย่างอื่นในภายหลังฉันไม่มีเวลา
Rodolphe Lepigre
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.