คำถามติดแท็ก lambda-calculus

ระบบที่เป็นทางการของศาสนจักรที่ใช้ในการคำนวณภาษาการเขียนโปรแกรมและทฤษฎีการพิสูจน์เพื่อแสดงฟังก์ชั่นที่มีประสิทธิภาพโปรแกรมและการคำนวณและการพิสูจน์

2
การทดแทนทางพันธุกรรมด้วยลำดับชั้นจักรวาล
ฉันได้อ่านเกี่ยวกับการทดแทนทางพันธุกรรมสำหรับแคลคูลัสแลมบ์ดาอย่างง่ายและสำหรับกรอบตรรกะที่มีคำศัพท์และประเภทที่แตกต่างกัน ฉันสงสัยว่ามีตัวอย่างของการทดแทนทางพันธุกรรมในระบบที่พิมพ์อย่างพึ่งพากันด้วยลำดับชั้นจักรวาลหรือไม่? เช่นที่Tr u e : Se t0: Se t1: Se t2TRยูอี:Sอีเสื้อ0:Sอีเสื้อ1:Sอีเสื้อ2 True : Set_0 : Set_1:Set_2เป็นต้น ฉันสงสัยโดยเฉพาะอย่างยิ่งว่าจะสร้างมาตรการการเหนี่ยวนำในระบบดังกล่าวได้อย่างไร รุ่นที่พิมพ์ง่าย ๆ จะลดลงตามโครงสร้างในประเภทของตัวแปรที่ถูกแทนที่ วิธีนี้ใช้ไม่ได้กับประเภทที่ขึ้นต่อกันสำหรับกระดาษที่ฉันเชื่อมโยงนั้นใช้การลบแบบง่ายๆของคำศัพท์และทำการเหนี่ยวนำรูปร่างของประเภทนั้น อย่างไรก็ตามการลบประเภทง่าย ๆ ไม่สามารถใช้กับลำดับชั้นของจักรวาลได้เพราะถ้าคุณมีสิ่งนี้: ฉ: ( x : Se t1) → x → Tอายูอีฉ:(x:Sอีเสื้อ1)→x→TRยูอี f : (x : Set_1)\to x \to Trueบอกเป็นนัยว่า ฉ ( ( y: Tr u e …

5
การแทนค่าตัวแปรที่ถูกผูกไว้กับฟังก์ชั่นจากการใช้งานเพื่อยึดประสาน
ปัญหาของการเป็นตัวแทนของตัวแปรที่ถูกผูกไว้ในไวยากรณ์และโดยเฉพาะอย่างยิ่งที่ทดแทนการหลีกเลี่ยงการจับภาพเป็นที่รู้จักกันดีและมีจำนวนของการแก้ปัญหา: ชื่อตัวแปรที่มีความเท่าเทียมกันอัลฟา, ดัชนี de Bruijn แต่ดูเหมือนว่าจะมีวิธีอื่นที่ค่อนข้างชัดเจนซึ่งฉันไม่เคยเห็นมาก่อนเลย กล่าวคือในไวยากรณ์พื้นฐานเรามีเพียงหนึ่ง "ตัวแปร" คำพูดที่เขียนแล้วแยกเราให้ฟังก์ชั่นที่แผนที่แต่ละตัวแปรเครื่องผูกในที่มีขอบเขตมันโกหก ดังนั้นλระยะยาวเช่น∙∙\bulletλλ\lambda λx.(λy.xy)λx.(λy.xy) \lambda x. (\lambda y. x y) จะเขียนλและฟังก์ชั่นจะ map แรก∙แรกλและครั้งที่สอง∙ที่สองλ ดังนั้นมันเหมือนกับดัชนี de Bruijn เพียงแทนที่จะต้อง "นับλ s" เมื่อคุณกลับออกจากคำศัพท์เพื่อค้นหาสารยึดเกาะที่สอดคล้องกันคุณเพียงแค่ประเมินฟังก์ชั่น (หากแสดงสิ่งนี้เป็นโครงสร้างข้อมูลในการดำเนินการฉันจะคิดว่าการจัดเตรียมออบเจ็กต์คำศัพท์แต่ละตัวแปรด้วยตัวชี้ / การอ้างอิงอย่างง่ายไปยังออบเจ็กต์คำที่สอดคล้องกัน)λ.(λ.∙∙)λ.(λ.∙∙)\lambda. (\lambda. \bullet\bullet)∙∙\bulletλλ\lambda∙∙\bulletλλ\lambdaλλ\lambda เห็นได้ชัดว่าสิ่งนี้ไม่เหมาะสมสำหรับการเขียนไวยากรณ์บนหน้าเว็บเพื่อให้มนุษย์อ่าน แต่แล้วก็ไม่มีดัชนี de Bruijn ฉันคิดว่ามันสมเหตุสมผลดีทางคณิตศาสตร์และโดยเฉพาะอย่างยิ่งมันทำให้การทดแทนการหลีกเลี่ยงการจับภาพเป็นเรื่องง่ายมาก: เพียงแค่วางในเทอมที่คุณใช้แทนและใช้ฟังก์ชันการรวมกัน มันเป็นความจริงที่ว่ามันไม่ได้มีความคิดเกี่ยวกับ "ตัวแปรอิสระ" แต่แล้ว (อีกครั้ง) ไม่ได้ทำดัชนีเดอบรูจน์จริง ๆ ; ในทั้งสองกรณีคำที่มีตัวแปรอิสระจะแสดงคำที่มีรายการ "ตัวยึด" บริบทอยู่ด้านหน้า ฉันทำบางสิ่งบางอย่างหายไปและมีเหตุผลบางอย่างที่การแสดงนี้ไม่ทำงานหรือไม่ มีปัญหาที่ทำให้แย่กว่าคนอื่น …

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

1
กฎการยกเว้นตรงกลางแสดงถึง Axiom K ในทฤษฎีประเภท Intensional Type ของ Martin-Löfหรือไม่?
ดังนั้นฉันจึงสงสัยว่ากฎหมายแยกกลาง (LEM) แสดงถึง Axiom K ที่เรียกว่าในทฤษฎีประเภท Intensional Type ของ Martin-Löfหรือไม่ สัจพจน์ K ระบุว่า อันที่จริงฉันพยายามพิสูจน์ข้อความทั่วไปที่ แต่หลังจากลดเป็นโดยการเหนี่ยวนำความเท่าเทียมฉันติดอยู่ในปัญหาแรก ฉันพยายามดำเนินการต่อด้วยความขัดแย้ง แต่ดูเหมือนจะไม่ทำงาน ..Π: TYp eΠx : AΠp : Id ( x , x ), รหัส( p , reflx)ΠA:TYพีอีΠx:AΠพี:Id(x,x),Id(พี,reflx)\Pi_{A : Type} \Pi_{x : A} \Pi_{p : \text{Id}(x,x)}, \text{Id}(p,\text{refl}_x)Π: TYp eΠx , y: AΠp , q: Id …

2
ทำไมแลมบ์ดาแคลคูลัสจึงเป็น“ แคลคูลัส”?
คำจำกัดความเพียงอย่างเดียวของ "แคลคูลัส" ที่ฉันรู้คือการศึกษาข้อ จำกัด อนุพันธ์อินทิกรัล ฯลฯ ในการวิเคราะห์ แลมบ์ดาแคลคูลัส (หรือแคลคูลัส mu) เป็น "แคลคูลัส" ในแง่ใด มันเกี่ยวข้องกับแคลคูลัสในการวิเคราะห์อย่างไร

1
ส่วนต่อขยายของโมเดลแคลคูลัสแลมบ์ดา
ฉันกำลังแปลหนังสือบน LISP และสัมผัสกับองค์ประกอบบางอย่างของ -calculus ดังนั้นความคิดของ Extensionality เป็นที่กล่าวถึงข้างมีบางรุ่นของλแคลคูลัสกล่าวคือ: P ωและD ∞ (ใช่กับอินฟินิตี้ที่ด้านบน) และได้มีการกล่าวว่าP ωเป็นแบบขยายในขณะที่D ∞ไม่ได้เป็นλλ\lambdaλλ\lambdaPωPω\mathcal{P}_\omegaD∞D∞D^\inftyPωPω\mathcal{P}_\omegaD∞D∞D^\infty แต่ ... ฉันมองผ่านแลมบ์ดาแคลคูลัสของ Barendregt มันเป็นเรื่องเกี่ยวกับความหมายและความหมายและ (หวังว่าถูกต้อง) อ่านตรงข้าม: ไม่ใช่ extensional D ∞คือPωPω\mathcal{P}_\omegaD∞D∞D_\infty ไม่มีใครรู้เกี่ยวกับรูปแบบแปลก ๆ นั้น ? มันอาจเป็นเพียงแบบเดียวกับD ∞แต่เขียนผิดพลาดหรือไม่? ฉันถูกต้องเกี่ยวกับการขยายตัวของโมเดลหรือไม่?D∞D∞D^\inftyD∞D∞D_\infty ขอบคุณ

6
อะไรคือจุดที่เรียกว่า -calculus an algebra?
การเรียก -calculus กับพีชคณิตแทนที่จะเป็นแคลคูลัสแตกต่างกันอย่างไร ฉันตั้งคำถามนี้ขึ้นเพราะฉันอ่านบางบรรทัด " -calculus ไม่ใช่แคลคูลัส แต่เป็นพีชคณิต" (iirc มาจาก Dana Scott) ประเด็นคืออะไร? ขอบคุณλλ\lambdaλλ\lambda

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

3
กำหนดสูตรที่ซับซ้อนของทฤษฎีความซับซ้อนในแลมบ์ดาแคลคูลัส?
ในทฤษฎีความซับซ้อนคำจำกัดความของเวลาและความซับซ้อนของพื้นที่ทั้งสองอ้างถึงเครื่องจักรทัวริงสากล: Resp จำนวนขั้นตอนก่อนที่จะหยุดและจำนวนของเซลล์ในเทปสัมผัส จากวิทยานิพนธ์ของทัวริสต์ทัวริสต์มันเป็นไปได้ที่จะกำหนดความซับซ้อนในแง่ของแคลคูลัสแลมบ์ดาเช่นกัน ความคิดที่เข้าใจง่ายของฉันคือความซับซ้อนของเวลาสามารถแสดงเป็นจำนวนของการลดลงβ (เราสามารถนิยามการแปลงα-โดยใช้ดัชนี De Brujin และ, แทบจะไม่ลดลงเลย) ในขณะที่ความซับซ้อนของพื้นที่สามารถกำหนดเป็นจำนวน สัญลักษณ์ (λ's, DB-index,“ Apply” -symbols) ในการลดที่ใหญ่ที่สุด ถูกต้องหรือไม่ ถ้าเป็นเช่นนั้นฉันจะได้รับการอ้างอิงได้ที่ไหน? ถ้าไม่ฉันจะเข้าใจผิดได้อย่างไร?

1
อัลกอริทึมการผกผันของโปรแกรมสำหรับโปรแกรมลำดับสูงกว่า
คำว่าการผกผันของโปรแกรม มีหลายความหมาย แต่อาจเริ่มด้วยงานของ J. McCarthy ในปี 1956 การกลับมาของฟังก์ชั่นที่นิยามโดย Turing Machinesในบริบทของ AI โดยขณะนี้มีการค้นพบการเชื่อมต่อจำนวนมากระหว่างการผกผันของโปรแกรมและฟิลด์อื่น ๆ เช่นการเขียนโปรแกรมแบบย้อนกลับได้ (ทางกายภาพและตรรกะ) การประเมินผลบางส่วนการตรวจสอบการเขียนโปรแกรมแบบสองทิศทางการเขียนโปรแกรมเชิงตรรกะ การกลับรายการคืออะไร ในการประมาณแรกมันจะเป็นแบบนี้: ให้โปรแกรมรับอาร์กิวเมนต์ประเภท Aและส่งคืนผลลัพธ์ของ type Bสร้างโปรแกรมP - 1ที่ "ตรงกันข้าม" Pอย่างใดอย่างหนึ่ง ฉันจงใจที่จะคลุมเครือที่นี่เนื่องจากแนวคิดสามารถ (และเป็น) ชี้แจงในรูปแบบต่างๆ: เช่นPจะต้องฉีด? ควร P - 1 ( ข)กลับมาทั้งหมดหรือเพียงบางส่วนดังกล่าวว่าP ( ) = BP: A → BP:A→BP : A \rightarrow BAAABBBP−1P−1P^{-1}PPPPPPP−1(b)P−1(b)P^{-1}(b)aaaP(a)=bP(a)=bP(a) = b? มีวิธีทั่วไปในการแปลงโปรแกรมเช่นการใช้ …

1
พื้นฐานที่ไม่สมบูรณ์ของ combinators
นี้เป็นแรงบันดาลใจนี้คำถาม ปล่อยเป็นชุดรวมของ combinators ซึ่งมีตัวแปรผูกพันสองตัวเท่านั้น คือ combinatorially สมบูรณ์?Cคค\mathcal{C}คค\mathcal{C} ฉันเชื่อว่าคำตอบนั้นเป็นค่าลบ แต่ฉันไม่สามารถหาข้อมูลอ้างอิงได้ ฉันยังสนใจที่จะอ้างถึงการพิสูจน์ combinatorial ความไม่สมบูรณ์ของชุด combinators (ฉันเห็นได้ว่าทำไม setประกอบด้วย combinators ที่มีตัวแปร จำกัด เพียงตัวเดียวจึงไม่สมบูรณ์ดังนั้นชุดเหล่านี้ควรมีองค์ประกอบมากกว่า )DDD\mathcal{D}DD\mathcal{D}

1
ผู้ประเมินที่ดีที่สุดมีความเหมาะสมที่สุดจริงหรือ
คำต่อไปนี้ (ใช้ bruijn-indexes): BADTERM = λ((0 λλλλ((((3 λλ(((0 3) 4) (1 λλ0))) λλ(((0 4) 3) (1 0))) λ1) λλ1)) λλλ(2 (2 (2 (2 (2 (2 (2 (2 0))))))))) เมื่อนำไปใช้เป็นจำนวนคริสตจักรNประเมินรูปแบบปกติได้อย่างรวดเร็วในการประเมินผลที่มีอยู่หลายแห่งรวมทั้งคนที่ไร้เดียงสา แต่ถ้าคุณเข้ารหัสคำนั้นเพื่อใช้อวนในการโต้ตอบและประเมินโดยใช้อัลกอริธึมบทคัดย่อของ Lamping มันต้องใช้จำนวนเลขชี้กำลังของการลดเบต้าที่สัมพันธ์Nกัน บน Optlam โดยเฉพาะ: N interactions(betas) (BADTERM N) 1 129(72) λλλ(1 (2 (2 (2 (2 (2 (2 (2 0)))))))) …

2
ความแตกต่างระหว่างกลยุทธ์การลดและกลยุทธ์การประเมินคืออะไร?
จากบทความกลยุทธ์การประเมินผลใน Wikipedia: แนวคิดเกี่ยวกับกลยุทธ์การลดแคลคูลัสแลมบ์ดานั้นคล้ายคลึงกัน แต่แตกต่างกัน จากบทความกลยุทธ์การลดลงใน Wikipedia: มันคล้ายกับ แต่แตกต่างอย่างละเอียดจากแนวคิดเรื่องกลยุทธ์การประเมินทางวิทยาศาสตร์คอมพิวเตอร์ อะไรคือความแตกต่างที่ละเอียดอ่อนระหว่างกลยุทธ์การประเมินและกลยุทธ์การลดที่บทความทั้งสองนี้บอกใบ้? พวกเขาเป็นเพียงสองแนวคิดที่คล้ายกันจากโดเมนที่แตกต่างกันหรือไม่

1
`sort` พิมพ์ได้จากตรรกะเลียนแบบระดับประถมหรือไม่?
λ-เทอมต่อไปนี้ที่นี่ในรูปแบบปกติ: sort = (λabc.(a(λdefg.(f(d(λhij.(j(λkl.(k(λmn.(mhi))l)) (h(λkl.l)i)))(λhi.(i(λjk.(bd(jhk)))(bd(h(λjk.(j (λlm.m)k))c)))))e))(λde.e)(λde.(d(λfg.g)e))c)) ใช้อัลกอริทึมการเรียงลำดับสำหรับรายการที่เข้ารหัสในโบสถ์ นั่นคือผลลัพธ์ของ: sort (λ c n . (c 3 (c 1 (c 2 n)))) β→ (λ c n . (c 1 (c 2 (c 3 n)))) ในทำนองเดียวกัน sort_below = λabcd.a(λef.f(λghi.g(λj.h(λkl.kj(ikl)))(hi))e(λgh.h)) (λe.d)(λe.b(λf.e(f(λghi.hg)(λgh.cfh)))) ใช้การเรียงลำดับสำหรับรายการเดียวกันกับด้านบนยกเว้นคุณต้องระบุอาร์กิวเมนต์เพิ่มเติมพร้อมกับ จำกัด จำนวนที่จะพิจารณา: sort_below 4 [5,1,3,2,4] → [1,2,3] ฉันพยายามที่จะตรวจสอบว่าคำเหล่านั้นสามารถพิมพ์บนตรรกะเลียนแบบระดับประถมศึกษา เนื่องจากฉันไม่รู้จักตัวตรวจสอบชนิด EAL ใด ๆ …

1
คุณเข้ารหัสอัลกอริทึมแบบนามธรรมของ Lamping โดยใช้ตัวรวมการโต้ตอบได้อย่างไร
ผู้ทำปฏิกิริยาโต้ตอบได้เสนอให้เป็นเป้าหมายในการรวบรวมสำหรับ calcul-แคลคูลัสก่อน กระดาษนั้นใช้แคลคูลัสเต็ม full มันเป็นที่รู้จักกันว่ามันเป็นไปได้ที่จะเพิ่มประสิทธิภาพการเข้ารหัส - สุทธิของแคลคูลัส λ- แคลคูลัสสำหรับเซตย่อยของ terms- ข้อตกลงที่เป็นประเภท EAL กระดาษนั้นใช้ส่วนย่อยของ calcul-แคลคูลัสโดยแปลข้อตกลง EAL-typeable ให้กับอวนปฏิสัมพันธ์ที่มีเนื้อหาที่ซับซ้อนกว่า combinators ปฏิสัมพันธ์เนื่องจากใช้ตัวอักษรที่ไม่มีที่สิ้นสุดของฉลากเพื่อจัดกลุ่มนักทำสำเนา ฉันสงสัยว่าเป็นไปได้หรือไม่ที่จะรวมทั้งข้อเสนอเข้าด้วยกัน นั่นคือมีการเข้ารหัสสำหรับอัลกอริธึมนามธรรม - นั่นคือ terms- เงื่อนไขที่เป็น EAL-typeable - เป็น combinators ปฏิสัมพันธ์หรือไม่

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