conversion-conversion vs extensionality ในส่วนขยายของ lambda-แคลคูลัส


14

ฉันมักจะสับสนกับความสัมพันธ์ระหว่าง conversion-conversion และส่วนขยาย

แก้ไข: ตามความเห็นดูเหมือนว่าฉันยังสับสนเกี่ยวกับความสัมพันธ์ระหว่างความเท่าเทียมกันของมิติและความเท่าเทียมเชิงสังเกตการณ์ แต่อย่างน้อยก็ใน Agda ที่มีความเสมอภาคในมิติของฟังก์ชัน (เป็นหลัก) และสำหรับแคลคูลัสแลมบ์ดาที่พิมพ์ได้ง่ายๆ (ซึ่งมีความหมายเชิงนามธรรมอย่างสมบูรณ์ รู้สึกอิสระที่จะแก้ไขฉันในความคิดเห็นหรือคำตอบ; ฉันไม่เคยได้รับการศึกษาอย่างเป็นระบบในเรื่องเหล่านี้

ในแลมบ์ดาแคลคูลัสที่ไม่มีการพิมพ์กฎ eta จะให้ระบบการพิสูจน์เดียวกันกับกฎส่วนขยายดังที่ Barendregt พิสูจน์แล้ว (อ้างถึงคำตอบสำหรับคำถามนี้ ) ฉันเข้าใจว่าการหมายความว่าระบบพิสูจน์ด้วยกฎกทช. นั้นสมบูรณ์สำหรับการสังเกตเชิงสมดุล (จากคำตอบอื่น ๆ ที่อาจต้องใช้กฎξ-กฎนั่นคือการลดภายใต้สารยึดเกาะ IIUC ฉันไม่มีปัญหาในการเพิ่มกฎนั้นด้วย) .

อย่างไรก็ตามจะเกิดอะไรขึ้นถ้าเราเปลี่ยนเป็นแคลคูลัสที่พิมพ์และเพิ่มแคลคูลัสนี้ด้วยประเภทฐานพิเศษและรูปแบบการแนะนำและการกำจัดที่สอดคล้องกัน? เรายังคงสามารถเขียนระบบพิสูจน์ที่สมบูรณ์เพื่อความเท่าเทียมเชิงสังเกตการณ์ได้หรือไม่? ฉันจะพูดคุยเกี่ยวกับระบบพิสูจน์ในรูปแบบของความหมายซึ่งเป็นจริงตามพื้นฐานของการเขียนโปรแกรมภาษา (FPL) ของมิตเชลล์; ระบบพิสูจน์ / สัจพจน์ความหมายที่เป็นจริงกำหนดความเท่าเทียมกันของโปรแกรม

คำถามที่ 1 : ทฤษฎีบทของ Barendregt ขยายไปถึง STLC หรือไม่? การเทียบเท่า extension เทียบเท่ากับส่วนขยายในบริบทนั้นหรือไม่

ฉันกำลังเรียกดูการสนทนาของ PCF ของ FPL (แต่ยังไม่เสร็จในส่วนนี้) และดูเหมือนว่าเมื่อคุณเพิ่มคู่แล้วการต่อเติมต้องใช้กฎเพิ่มเติมคือการจับคู่แบบ Surjective: pair (Proj1 P, Proj2 P) = Psurjective: ที่น่าสนใจกฎนี้เกี่ยวข้องกับการแนะนำและการกำจัดของคู่เหมือนกฎηเกี่ยวข้องกับการแนะนำและการกำจัดของฟังก์ชั่น

คำถามที่ 2 : มันเพียงพอหรือไม่ที่จะเพิ่มสัจพจน์การจับคู่แบบ Surjective pairing เพื่อพิสูจน์การขยายตัวในแคลคูลัส simply-แคลคูลัสที่พิมพ์ด้วยคู่อย่างง่ายๆ แก้ไข : คำถาม 2 ข : มีการจับคู่ surrogive จับคู่ law-law ดังที่ laws-law ที่กล่าวถึงในบทความนี้เนื่องจากความคล้ายคลึงกันของโครงสร้างที่ฉันพูดถึง

ตอนนี้ไป PCF กันดีกว่า คำอธิบายของความเท่าเทียมกันทางมิติที่ฉันได้เห็นแล้วพิสูจน์ว่าการขยายความหมายถึงกฎการพิสูจน์โดยอุปนัย แต่พวกเขาไม่ได้บอกว่าเพียงพอ เนื่องจาก PCF สมบูรณ์แบบทัวริงความเท่าเทียมกันทางมิติจึงไม่สามารถตัดสินใจได้ แต่นั่นไม่ได้หมายความว่าไม่มีระบบการพิสูจน์ที่สมบูรณ์เนื่องจากความยาวของการพิสูจน์นั้นมีมากมาย ที่มีความเกี่ยวข้องมากกว่านั้นระบบการพิสูจน์ดังกล่าวอาจขัดแย้งกับทฤษฎีความไม่สมบูรณ์ของGödel และอาร์กิวเมนต์นั้นอาจใช้กับ PCF ที่ไม่มีfixและระบบGödel

คำถามที่ 3 : มีระบบพิสูจน์ที่สมบูรณ์สำหรับการเทียบเท่าเชิงสังเกตการณ์ใน PCF หรือไม่? สิ่งที่เกี่ยวกับ PCF โดยไม่fix?

อัปเดต: นามธรรมเต็ม

ฉันตอบที่นี่ในความคิดเห็นที่เป็นนามธรรมอย่างเต็มรูปแบบ ฉันคิดว่า PCF ได้รับผลกระทบจากปัญหาสองประเภทที่แตกต่างกัน: มันไม่มีการเลิกจ้าง (ผ่านการแก้ไข) ซึ่งทำให้เกิดการสูญเสียสิ่งที่เป็นนามธรรมเต็มรูปแบบ แต่ก็มีจำนวนที่เป็นธรรมชาติ ปัญหาทั้งสองทำให้การสังเกตการณ์นั้นยากที่จะรักษา แต่ฉันเชื่อว่าเป็นอิสระจากกัน

ในอีกด้านหนึ่ง PCF สูญเสียสิ่งที่เป็นนามธรรมเนื่องจากขนานหรืออาศัยอยู่ในโดเมนความหมาย (Plotkin 1977) และดูเหมือนว่าจะเกี่ยวข้องกับการไม่สิ้นสุด Ralph Loader (2000, "Finitary PCF is not decidable") แสดงให้เห็นว่า finitary PCF (โดยไม่ต้องมีธรรมชาติ ดังนั้น (ถ้าฉันรวมอย่างถูกต้อง) ความหมายเชิงนามธรรมอย่างสมบูรณ์ไม่สามารถ จำกัด โดเมนที่มีการดำเนินการที่คำนวณได้

ในอีกทางหนึ่งให้ใช้ System T ของGödelซึ่งไม่มีการทำลายล้าง (ฉันไม่แน่ใจว่ามันมีความหมายเชิงนามธรรมอย่างสมบูรณ์ แต่ฉันเดาว่าใช่เพราะปัญหาถูกกล่าวถึงสำหรับ PCF เท่านั้นโดเมนจะต้องมีฟังก์ชันเรียกซ้ำแบบลำดับสูงกว่า) ฐานรากเชิงปฏิบัติของฮาร์เปอร์สำหรับภาษาโปรแกรมพูดถึงความเท่าเทียมเชิงสังเกตการณ์สำหรับภาษานี้ วินาที. 47.4 มีชื่อว่า "กฎบางข้อของความเสมอภาค" และแสดงกฎการพิสูจน์ที่ยอมรับได้สำหรับความเท่าเทียมเชิงสังเกตการณ์ ไม่มีที่ใดบอกได้ว่าระบบพิสูจน์สมบูรณ์หรือไม่ดังนั้นฉันเดาว่ามันไม่ได้ แต่ก็ไม่มีที่ไหนพูดถึงว่าจะสามารถทำให้เสร็จได้หรือไม่ เดาที่ดีที่สุดของฉันเชื่อมโยงกลับไปที่ทฤษฎีบทของGödelของความไม่สมบูรณ์


1
ฉันคิดว่าฉันสามารถตอบคำถามนี้ได้บ้าง แต่ฉันสับสนว่ามันเป็นสิ่งที่คุณถาม คำถามที่คุณอ้างถึงไม่เกี่ยวกับความเท่าเทียมกันของโปรแกรม คุณหมายถึงการเทียบเท่าเชิงสังเกตการณ์? สำหรับความหมายการดำเนินงานอะไร ถ้าคุณอธิบายว่า "การพิสูจน์" ในคำถามที่ 1 หมายถึงอะไรฉันคิดว่าฉันสามารถเดาได้ว่าเกิดอะไรขึ้น เดาที่ดีที่สุดของฉันเพื่อให้ห่างไกล: คุณต้องการทฤษฎี equational ซึ่งเป็นที่สมบูรณ์แบบสำหรับความเท่าเทียมสังเกตการณ์และคุณถามเราว่า -rules พอเพียง มันคืออะไร η
Andrej Bauer

@ AndrejBauer: การเดาของคุณถูกต้องฉันจะเริ่มอัปเดตคำถาม
Blaisorblade

ฉันไม่แน่ใจเกี่ยวกับความหมายในการปฏิบัติงาน - นั่นสร้างความแตกต่างให้กับทฤษฎีบทดั้งเดิมหรือไม่?
Blaisorblade

ฉันพยายามปรับแต่งคำถามเพิ่มเติม แต่ฉันก็ยังคิดว่าการเดาที่ดีที่สุดของคุณนั้นถูกต้อง
Blaisorblade

มีปัญหาเล็ก ๆ ที่นี่: มันไม่ชัดเจนว่าสำหรับจำนวนธรรมชาติ! หากคุณเพียงแค่มีฟังก์ชั่นและสินค้าเพียงประเภทแล้วคุณอยู่ในความชัดเจน: เงื่อนไข observationally เทียบเท่า IFF พวกเขาจะบีตาηเท่ากับ โดยทั่วไปแล้วฉันคิดว่าสิ่งนี้เกี่ยวข้องกับปัญหาของสิ่งที่เป็นนามธรรมอย่างสมบูรณ์ηβη
ดี้

คำตอบ:


7

ฉันไม่แน่ใจว่าฉันสามารถตอบคำถามของคุณได้อย่างสมบูรณ์ แต่ฉันจะให้มันยิงและถามคำถามของตัวเองที่อาจกระตุ้นการอภิปรายเพิ่มเติมในเรื่องนี้

จุดแรกของฉันคือ: สองคำในuntyped λ -calculus ถูกกล่าวว่าเท่ากับ iff สำหรับทุกเทอมM : M t  ยุติ M t  ยุติ t,t λM

M t terminates M t terminates 
ที่ไหนยุติหมายถึง "มีรูปแบบ -Normal"β

ฉันคิดว่ามันเป็นธรรมชาติมากขึ้นที่จะต้องพิจารณาข้อตกลงกับ "หลุม" หรือบริบท แทนที่จะแง่MและการเขียนE [ T ]แทนเอ็มที สองมุมมองที่มีค่าเท่ากันแน่นอน (ถ้าตัวแปรจะไม่ผูกพันตามบริบท) ในฐานะที่เป็นนามธรรมช่วยให้คุณเปิดบริบท E [ _ ]ลงในระยะλ x E [ x ]E[_]ME[t]M tE[_]λx.E[x]

ตอนนี้มันเป็นความจริงที่เท่าเทียมกันในเชิงแคลคูลัส untyped จะไม่ได้บันทึกโดย -equality! อันที่จริงมีทั้งชั้นเรียนของข้อตกลงซึ่งทั้งสองไม่ได้ยุติและไม่มีรูปแบบปกติหัวและทั้งหมดจึงเท่าเทียมกันอย่างเห็นได้ชัด บางครั้งเรียกว่าเงื่อนไขถาวรหรือคำที่ไม่สามารถแก้ไขได้และนี่คือคำสองคำนี้: ( λ x . x x ) ( λ x . x x ) และ ( λ x . x x x ) ( λ xβη

(λx.x x)(λx.x x)
มันค่อนข้างง่ายที่จะแสดงให้เห็นว่าคำเหล่านี้ไม่ได้บีตาη -equal
(λx.x x x)(λx.x x x)
βη

หากมีการระบุเงื่อนไขถาวรทั้งหมดความเท่าเทียมกันเชิงสังเกตการณ์จะถูกจับอย่างสมบูรณ์โดยผลลัพธ์คลาสสิก (ดูทฤษฎีBarendregt 16.2.7)


ตอนนี้สำหรับแคลคูลัสที่พิมพ์แล้ว ลองพิจารณาเพียงแค่พิมพ์ แคลคูลัสโดยไม่ต้องหมายเลขธรรมชาติครั้งแรก คำจำกัดความด้านบนของความเท่าเทียมกันเชิงสังเกตการณ์นั้นกลายเป็นเรื่องเล็กน้อยเนื่องจากทุกคำศัพท์ทำให้ปกติ! เราต้องการความแตกต่างที่ละเอียดยิ่งขึ้น เราจะใช้ค่าความเสมอภาค t 1t 2สำหรับเทอมปิดที่กำหนดโดยอุปนัยประเภทของt 1และt 2λt1t2t1t2 2Let 's แรกเพิ่มสำหรับประเภทแต่ละ, จำนวนอนันต์ของค่าคงที่ , ' , " , ... เราจะเลือกค่าคงที่c xAcA,cA,cA,cxของประเภทที่เหมาะสมเพื่อให้สอดคล้องกับแต่ละตัวแปรxx

  1. ที่ฐานประเภท , T 1T 2 IFF β -Head รูปแบบปกติของที1คือยู1 ... U nและของที2คือd วี1 ... V nและC = dและU 1วี1 , ... , U nV nที่ประเภทของตนBt1t2βt1c u1unt2d v1vnc=du1v1,,unvn

  2. ชนิดลูกศร IFF ทั้งแง่β -reduce กับ λ -abstractiont1t2βλ

โปรดทราบว่าฉันเพียงใช้ -conversion ในความหมายนี้β

ตอนนี้ฉันกำหนดบริบทจะเป็น: ด้วยบริบทส่วนหัว, แอปพลิเคชัน, สิ่งที่เป็นนามธรรมและการทดแทน (ตามเงื่อนไขที่ปิด) ตามลำดับ

[_]E[_] ut E[_]λx. E[_]E[_]θ

จากนั้นเราสามารถกำหนดและT 'พิมพ์ดีประเภทTที่จะ observationally เทียบเท่าและถ้าหากทุกบริบทE [ _ ] เช่นที่E [ T ] , E [ TttTE[_]เป็นอย่างดีและพิมพ์ปิด E [ t ] E [ t ] เราจะเขียน t = o b s t ในกรณีนี้E[t],E[t]

E[t]E[t]
t=obst

ตอนนี้มันเป็นเรื่องง่ายที่จะสังเกตเห็นว่าถ้าแล้ว T = o s T ' อีกทิศทางหนึ่งมีความสำคัญน้อยกว่า แต่ก็ถือได้: ถ้าหากt = o b s t แล้วเราสามารถแสดงให้เห็นว่าคำศัพท์นั้นมีค่าเท่ากันสำหรับt=βηtt=obstt=obstโดยอุปนัยกับประเภท:βη

  1. ที่พิมพ์ฐานเพียงแค่ใช้จะเป็น[ _ ] θกับ θทดแทนที่ส่งxเพื่อ x เรามี E [ T ] = T θและE [ T ' ] = T ' θ เรามี t θ β c x u 1 θ u n θและ t θ E[_][_]θθxcxE[t]=tθE[t]=tθtθβcx u1θunθ θ แล้วเรามีx = C x 'และเพื่อให้ x = x ' ตอนนี้เราไม่สามารถสรุปได้ว่าทันที U ฉัน θ = บีตาηวีฉัน θ แน่นอนถ้ามึงฉันและวีฉันมี λ -abstractions แล้วนิด U ฉัน θ วีฉัน θ ! เคล็ดลับที่นี่คือการส่ง xtθβcx v1θvnθcx=cxx=xuiθ=βηviθuiviλuiθviθxไป

    λy.cx~ (y1c1)(yncn)
    and to repeat this as many times as necessary. I'm a bit fuzzy on the details here, but the idea is similar to Böhm's theorem (Barendregt again 10.4.2).
  2. E[_][_] cycycyytt

    t cy =βη t cy
    t y =βη t y
    Which gives λy.t y =βη λ.t y and finally by η-equality:
    t =βη t

That was harder than expected!


Alright let's tackle system T. Let's add a type N to the mix, constructors 0 and S, and a recursor recT for each type T, with the "β-rules"

recT u v 0βu
recT u v (S n)βv n (recT u v n)

We want to prove the same theorem as above. It's tempting to add "η-rules" to prove equivalences like:

λx.x =βη recN 0 (λk m.S m)
where the term on the right is the "stupid identity" that peels off m successors just to add them again.

For example let's add this rule:

f (S x) =βη h x (f x)f t =βηrecT (f 0) h t
where x is a fresh variable as in the usual η rule. Now note that this rule is recursively enumerable (you can try every possible choice for h).

Can we prove the same theorem as above? Unfortunately, as you suspected, you're going to run into some Gödel nastiness, or rather, the Kleene variant (see Wikipedia). For every Turing machine M, it's easy to build a term tM in system T such that tM (S S 0) (with n Ses) returns 1 if M finishes in at most n steps and 0 otherwise.

So now if M does not terminate, you can ask whether the (true) equation

tM =λx.0
is provable using the βη rules above. But taking M to be the machine that terminates iff
0 =βη S 0
is provable in system T (with the above rules), you're going to run into trouble, i.e. the equation tM=λx.0 is true but not provable (or Peano Arithmetic is inconsistent!).

Thanks for your answer! My first question is: is it usual to have substitutions in contexts for observational equivalence? At least Plotkin's LCF paper (1997) does not do that (though I can imagine something like that would make sense in some closure calculus, where something like substitutions is part of the syntax). But I can easily see for each "substitution" context one can define a more (for me) "standard" context which uses just lambda-abstraction and application, say (λx.[]) c_x; so I guess the observational equivalence above is equivalent to the definition I'm used to.
Blaisorblade

The "true but not provable" equation is (I assume) t=λx.0, not 0=βηS0, right? To construct M, I guess you just need to enumerate proofs looking for one of 0=βηS0. However, I'm still lost as to why 0 = 1 is hard enough — actually, it should be easy to prove that 0βηS 0 since they're both normal forms, and I'd be surprised if Peano arithmetic weren't strong enough.
Blaisorblade

Say instead that M searches for a proof of the inconsistency of arithmetic. You still have t=λx.0 because arithmetic is consistent, but by the second incompleteness theorem, proving this requires more metatheoretic power than Peano arithmetic (or than the rules we discussed), so our simple rules won't be able to proof this observational equivalence. Does this make sense? I've looked up Wikipedia, but it's not very specific on Kleene's variant of Gödel's result; maybe if I knew that proof better, I would also understand your proof. (Meanwhile, upvoting you anyway).
Blaisorblade

1
3. Note that PA can prove 01, but not "PA0=1", so you can try looking for that proof for ever. I've used the same kind of trick above to find an observational equality in T that can't be captured by any "reasonable" equality rule. You could always add the rule
f 0=g 0f (S 0)=g (S 0)f=g
but that would be non-effective (and complete!). I have a feeling that's not what you're looking for though.
cody

1
That's right! Though it does sometimes make sense to consider such "infinitary" systems for proof-theoretical purposes (e.g. ordinal analysis).
cody
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.