ฟังก์ชั่นที่แคลคูลัสแลมบ์ดาไม่สามารถคำนวณได้


12

ฉันแค่อยากรู้ตัวอย่างของฟังก์ชั่นที่สามารถคำนวณได้โดยแคลคูลัสแลมบ์ดาที่ไม่ได้พิมพ์

ในฐานะที่ฉันเป็นผู้เริ่มต้นการกล่าวซ้ำ ๆ ของข้อมูลพื้นฐานบางอย่างจะได้รับการชื่นชม

ขอบคุณ

แก้ไข: โดย lambda calculi ที่พิมพ์ฉันตั้งใจจะรู้เกี่ยวกับ System F และแคลคูลัสแลมบ์ดาที่พิมพ์ง่าย ตามฟังก์ชั่นฉันหมายถึงฟังก์ชันใด ๆ ที่คำนวณได้ของทัวริง


สาขาวิชาการพิมพ์จำนวนมากที่มีอยู่สำหรับ -calculi และคำตอบคำขอของคุณขึ้นอยู่ส่วนหนึ่งที่ทางเลือกของการพิมพ์วินัยคุณมีในใจ นอกจากนี้ยังขึ้นอยู่กับความหมายของฟังก์ชัน ตัวอย่างหนึ่งของความแตกต่างคือการพิมพ์สาขาเช่นSystem Fสามารถพิมพ์โปรแกรม normalizing เท่านั้นในขณะที่ untyped λ -calculus มีคำศัพท์ที่ไม่ทำให้เป็นมาตรฐาน λλ
Martin Berger

ฉันกำลังคิดถึง System F และแคลคูลัสแลมบ์ดาที่พิมพ์ง่าย ตามฟังก์ชั่นฉันหมายถึงฟังก์ชั่นที่คำนวณได้
Timothy Zacchari

คำตอบ:


15

ตัวอย่างที่ดีคือการให้ Godelization: ในแลมบ์ดาแคลคูลัสสิ่งเดียวที่คุณสามารถทำได้ด้วยฟังก์ชั่นคือการใช้มัน เป็นผลให้ไม่มีวิธีการเขียนฟังก์ชั่นปิดประเภทซึ่งใช้ฟังก์ชั่นการโต้แย้งและส่งกลับรหัส Godel สำหรับมัน(NN)N

การเพิ่มสิ่งนี้เป็นสัจพจน์กับ Heyting เลขคณิตมักจะถูกเรียกว่า "วิทยานิพนธ์คริสตจักรที่สร้างสรรค์" และเป็นสัจพจน์ที่ต่อต้านคลาสสิกอย่างยิ่ง กล่าวคือมันสอดคล้องกับการเพิ่มลงใน HA แต่ไม่รวมอยู่ในเลขคณิตของ Peano! (โดยทั่วไปเป็นความจริงแบบคลาสสิกที่ทัวริงหยุดทำงานหรือไม่และไม่มีฟังก์ชั่นการคำนวณที่สามารถเห็นความจริงข้อนี้)


ฉันไม่เข้าใจว่าสิ่งนี้สอดคล้องกับทฤษฎี extensional: ใช้ f และ g เท่ากันอย่างต่อเนื่อง แต่มีการใช้งานที่แตกต่างกันและรหัส godel ที่แตกต่างกัน ฟังก์ชันของคุณคืนค่าหมายเลขเดิมสำหรับ f และ g หรือไม่
ดี้

3
มันไม่สอดคล้องกับส่วนขยาย! อย่างไรก็ตามใน HA และเป็นสิ่งเชื่อมต่อแบบลอจิคัลไม่ใช่ฟังก์ชัน / บันทึก ดังนั้นพวกเขาจะต้องสามารถใช้งานได้จริง แต่ผู้ใช้งานของพวกเขาไม่จำเป็นต้องมีมิติ Andrej Bauer เป็นผู้เชี่ยวชาญในเรื่องนี้ดังนั้นหากคุณถามคำถามคุณแน่ใจว่าจะได้รับคำตอบที่ดี
Neel Krishnaswami

11

คำตอบที่ง่ายที่สุดคือความจริงที่ว่าแลมบ์ดาแคลคูลัสนั้นสอดคล้องกับ logics (เพียงพิมพ์แลมบ์ดาแคลคูลัส -> ตรรกะภาคแสดงระบบ f -> ตรรกะลำดับที่สอง) และตรรกะที่สอดคล้องกันไม่สามารถพิสูจน์ความมั่นคงของตนเองได้

ff ตรรกะลำดับที่สองซึ่งจะหมายถึงตรรกะลำดับที่สองนั้นไม่สอดคล้องกัน)

ff

Caveat 2: บางครั้งโดย "แคลคูลัสแลมบ์ดาที่พิมพ์ง่าย ๆ " ผู้คนหมายถึง "แคลคูลัสแลมบ์ดาที่พิมพ์ได้อย่างง่ายดาย" ด้วยตัวดำเนินการคงที่หรือฟังก์ชันแบบเรียกซ้ำ นี่จะเป็นPCF ที่มากหรือน้อยซึ่งสามารถคำนวณฟังก์ชันใด ๆ ที่คำนวณได้เช่นเดียวกับแคลคูลัสแลมบ์ดาที่ไม่ได้พิมพ์


10

λYλ

λY


ด้วยเหตุผลบางอย่างฉันมีมันอยู่ในหัวของฉันที่คุณสามารถทำ Ackermann ในระบบ F ...
ร็อบซิมมอนส์

@ Rob ดังที่ฉันเข้าใจ Andrej ไม่ได้พูดแบบนั้น
Kaveh

1
λλ

โอ้ใช่ฉันแค่โง่ (เนื่องจากคำถามนั้นค่อนข้างคลุมเครือระหว่างการพูดคุยเกี่ยวกับ System F และการพูดคุยเกี่ยวกับ STLC ฉันเลือกระบบที่แข็งแกร่งกว่าและลืมคำถามที่ง่ายกว่า)
Rob Simmons

λλm.m(λfn.nf(f1_)) suc(((((fe)fe)h)((((fe)fe)h) hg)g)(((bc)ab)(bc)ac)d)dY

6

a


5
(pp)ppp

2
λ

@ การแข่งรถ: ขอบคุณ! ตอนนี้ฉันอาศัยอยู่ที่ประเทศเยอรมนีดังนั้นนี่จึงเป็นสิ่งที่ดีเป็นพิเศษในการฝึกฝนภาษาเยอรมันของฉัน :)
Neel Krishnaswami

4

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

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

ขอบเขตนี้ให้ตัวอย่างของฟังก์ชัน "ธรรมชาติ" ที่ไม่สามารถพิมพ์ได้ในแลมบ์ดา - แคลคูลัสนี้: ฟังก์ชั่นทางคณิตศาสตร์ทั้งหมดที่เหนือกว่าขอบเขตนี้

ถ้าฉันจำได้อย่างถูกต้องคำที่พิมพ์ในแลมบ์ดาแคลคูลัสที่พิมพ์ง่ายสามารถประเมินได้ในหอคอยแห่งเอ็กซ์โปเนนเชียล: O(2^(2^(...(2^n)..); ฟังก์ชั่นที่เติบโตเร็วกว่าหอคอยทุกแห่งจะไม่สามารถแสดงให้เห็นได้ในแคลคูลัส System F สอดคล้องกับตรรกะลำดับที่สองของสัญชาตญาณดังนั้นพลังในการคำนวณจึงมีมหาศาล ในการยึดความสามารถในการคำนวณของทฤษฎีที่ทรงพลังยิ่งกว่านั้นเรามักจะให้เหตุผลในแง่ของทฤษฎีเซตและทฤษฎีแบบจำลอง


0

Δ=λx.xxΔΔβ ΔΔΔAA=AA


λAAAA

ใช่คุณพูดถูก แต่ฉันคิดว่า (บางทีฉันผิด) ว่ามันเป็นไปไม่ได้ที่จะมีรูปแบบดังกล่าวในแลมบ์ดา - แคลคูลัสหรือระบบ F ซึ่งเป็นประเภทธรรมดา
Charles

ΔΔΔΔ

@Kaveh ทำไมมีประเภทAเช่นที่A \ident A \rightarrow Aไม่แปลก? ฟังดูไร้สาระสำหรับฉันฉันกำลังมองอะไร
Martijn

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