คำถามติดแท็ก combinatory-logic

สำหรับคำถามเกี่ยวกับระบบตรรกะที่กำหนดผ่านแอปพลิเคชันและการเขียนคำใหม่ของตัวรวม ระบบเหล่านี้มักมีความสัมพันธ์ใกล้ชิดกับแคลคูลัสแลมบ์ดา

2
เครื่อง Combinator Y ทำตัวเป็นตัวอย่างว่า“ แลมบ์ดาแคลคูลัสไม่สอดคล้องกันอย่างไร”?
ในหน้าวิกิพีเดียสำหรับผู้แก้ไขจุดรวมคงที่เขียนข้อความที่ค่อนข้างลึกลับ Y combinator เป็นตัวอย่างของสิ่งที่ทำให้แคลคูลัสแลมบ์ดาไม่สอดคล้องกัน ดังนั้นจึงควรพิจารณาด้วยความสงสัย อย่างไรก็ตามมันมีความปลอดภัยที่จะต้องพิจารณา combinator Y เมื่อกำหนดไว้ในตรรกะทางคณิตศาสตร์เท่านั้น ฉันเคยเข้าร่วมนวนิยายสายลับบ้างไหม? อะไรในโลกที่มีความหมายโดยแถลงการณ์ที่ -calculus นั้น"ไม่สอดคล้อง"และมันควรจะ"ถูกมองด้วยความสงสัย" ?λλ\lambda

4
ชัดเจนและเป็นธรรมชาติของ combinator จุดคงที่ (Y combinator)
แก้ไข combinator จุดคงที่ (aka combinator Y) ในแคลคูลัสแลมบ์ดา (untyped) ( ) ถูกกำหนดเป็น:λλ\lambda FIX≜λf.(λx.f (λy.x x y)) (λx.f (λy.x x y))≜λf.(λx.f (λy.x x y)) (λx.f (λy.x x y))\triangleq \lambda f.(\lambda x. f~(\lambda y. x~x~y))~(\lambda x. f~(\lambda y. x~x~y)) ฉันเข้าใจวัตถุประสงค์และสามารถติดตามการใช้งานแอปพลิเคชันได้อย่างสมบูรณ์แบบ ฉันต้องการที่จะเข้าใจวิธีการแก้ไขเป็นผลมาจากหลักการแรก นี่คือเท่าที่ฉันได้รับเมื่อฉันพยายามที่จะได้รับมันด้วยตนเอง: FIX เป็นฟังก์ชั่น: FIX ≜λ…≜λ…\triangleq \lambda_\ldots การแก้ไขใช้ฟังก์ชันอื่นfffเพื่อทำให้เกิดการเรียกซ้ำ: FIX ≜λf.…≜λf.…\triangleq \lambda f._\ldots อาร์กิวเมนต์แรกของฟังก์ชั่นfffคือ …

1
มีแคลคูลัส SKI ที่พิมพ์หรือไม่
ส่วนมากของเรารู้ว่าการติดต่อระหว่างcombinatory ตรรกศาสตร์และแลมบ์ดาแคลคูลัส แต่ฉันไม่เคยเห็น (บางทีฉันไม่ได้ดูลึกพอ) เทียบเท่ากับ "combinators ที่พิมพ์" ซึ่งสอดคล้องกับแคลคูลัสแลมบ์ดาที่พิมพ์ได้ง่าย สิ่งนั้นมีอยู่จริงหรือไม่? เราจะหาข้อมูลเกี่ยวกับมันได้จากที่ไหน?

2
เกณฑ์พื้นฐานสำหรับแคลคูลัสของ combinator
เป็นที่ทราบกันดีว่า Combinators S และ K นั้นเป็นพื้นฐานสำหรับแคลคูลัสของ combinator ในแง่ที่ว่า combinators อื่น ๆ สามารถแสดงในรูปของมันได้ นอกจากนี้ยังมีพื้นฐานของ B, C, K, W ของ Curry ซึ่งมีคุณสมบัติเหมือนกัน ต้องมีจำนวนฐานดังกล่าวไม่ จำกัด แต่ฉันไม่รู้จักผู้อื่น ผมทราบว่ามีจำนวนของฐานเดียว Combinator เช่น Combinator เล็กน้อยและอื่น ๆ สร้าง / การตรวจสอบโดยฟอก อย่างไรก็ตามสิ่งเหล่านี้คือ "ผู้ประสาน" ที่ไม่เหมาะสมซึ่งหมายความว่าพวกเขาแสดงออกในแง่ของผู้รวมกลุ่มคนอื่น ๆ มากกว่าเป็นนามธรรมที่บริสุทธิ์ 1 เพื่อจุดประสงค์ของคำถามนี้ฉันสนใจเฉพาะชุดพื้นฐานที่ประกอบด้วยผู้ประกอบการที่เหมาะสม มีการศึกษาพื้นฐานที่เป็นไปได้อื่น ๆ อีกหรือไม่ อุดมคติจะเป็นบางสิ่งบางอย่างตามแนวการศึกษา Wolfram ของการคำนวณรูปแบบอื่น ๆ อีกมากมายซึ่งเป็นการผสมผสานระหว่างการศึกษาอย่างเป็นระบบ โดยเฉพาะอย่างยิ่งฉันสนใจว่าตัวอย่างง่ายๆของสิ่งต่อไปนี้เป็นที่รู้จักกัน: ชุดพื้นฐานที่น้อยที่สุดซึ่งรวมถึงตัวฉัน combinator …

2
ผู้ประสานงาน Y ขัดแย้งกับจดหมายโต้ตอบ Curry-Howard หรือไม่?
อ Y Combinator มีชนิดโดย Curry-Howard Correspondence เพราะประเภทเป็นที่อยู่อาศัยมันจะต้องสอดคล้องกับทฤษฎีบทที่แท้จริง อย่างไรก็ตามเป็นจริงเสมอดังนั้นมันจึงดูเหมือนว่าชนิดของ combinator Y นั้นสอดคล้องกับทฤษฎีบทซึ่งไม่จริงเสมอไป สิ่งนี้จะเป็นอย่างไร( → ) → →( a → a ) → a(a→a)→a(a \rightarrow a) \rightarrow a( a → a ) → a(a→a)→a(a \rightarrow a) \rightarrow aa → aa→aa \rightarrow aaaa

1
ฟังก์ชันใดที่สามารถคำนวณนิพจน์แคลคูลัสได้
นิพจน์ combinator (สมมุติในพื้นฐาน SK) อาจถูกคิดว่าเป็นฟังก์ชั่นที่แมปนิพจน์แคลคูลัสของ combinator กับนิพจน์แคลคูลัสของ combinator นั่นคือเราสามารถนึกถึงนิพจน์เป็นฟังก์ชันX : L → Lโดยที่Lคือชุดของนิพจน์ combinator ที่ถูกต้องทั้งหมดในไวยากรณ์ SK การแมปนี้ดำเนินการโดยใช้อินพุตกับนิพจน์แล้วลดเป็นรูปแบบปกติเพื่อรับเอาต์พุตXXXX:L→LX:L→LX:L \to LLLL ตั้งแต่พื้นฐาน SK เป็นทัวริงสมบูรณ์หนึ่งอย่างไร้เดียงสาอาจจะคิดว่ามีอยู่หนึ่ง SK แสดงออกว่าการดำเนินการใด ๆ ฟังก์ชั่นคำนวณจากLเพื่อL อย่างไรก็ตามนี่ไม่ใช่กรณีที่ชัดเจนเนื่องจากผลลัพธ์ของการลดลงจะอยู่ในรูปแบบปกติเสมอ ซึ่งหมายความว่าไม่มีทางที่นิพจน์จะมีเอาต์พุตที่ไม่อยู่ในรูปแบบปกติXXXLLLLLL ดังนั้นฉันคิดว่านิพจน์ SK แคลคูลัสเป็นการจับคู่กับL ′โดยที่L ′คือเซตของนิพจน์ SK ในรูปแบบปกติ มันเป็นกรณีที่สำหรับแผนที่คำนวณใด ๆF : L ' → L 'มีการแสดงออก SK Xที่ใช้แผนที่นี้อย่างไร? หรือมีข้อ จำกัด เพิ่มเติมเกี่ยวกับชุดฟังก์ชันที่สามารถคำนวณโดยนิพจน์แคลคูลัสของ combinator ด้วยวิธีนี้หรือไม่L′L′L'L′L′L'L′L′L'f:L′→L′f:L′→L′f:L'\to …

2
SK2 แคลคูลัสเป็นพื้นฐานที่สมบูรณ์หรือไม่ซึ่ง K2 เป็นตัวรวม K ที่พลิกกลับหรือไม่
โดยเฉพาะถ้าฉันกำหนดใหม่เป็น แทน จะแคลคูลัสเป็นพื้นฐานการแข่งขันหรือไม่?K2K2K_2K2= λ x ( λ y. Y)K2=λx.(λy.y)K_2 = \lambda x. (\lambda y. y)K= λ x ( λ y. x )K=λx.(λy.x)K = \lambda x. (\lambda y. x){ S, เค2, ผม}{S,K2,I}\{S, K_2,I\} ฉันเดาว่า "ไม่" เพียงเพราะฉันไม่สามารถสร้าง combinator K ปกติจาก , , และ combinators แต่ฉันไม่มีอัลกอริทึมที่จะติดตามหรือฉันมีสัญชาตญาณที่ดี เกี่ยวกับการทำสิ่งต่าง ๆ จากผู้รวมกลุ่มSSSผมIIK2K2K_2 ดูเหมือนว่าคุณสามารถกำหนด ด้วย -calculus แต่ฉันไม่สามารถทำงานย้อนกลับจากที่ได้รับในแง่ของและที่เหลือK2= …

2
การตีความแบบรวมของแคลคูลัสแลมบ์ดา
ตามPeter Selinger , แลมบ์ดาแคลคูลัสเป็นพีชคณิต (PDF) ในช่วงต้นของบทความนี้เขาพูดว่า: การตีความ combinatory ของแคลคูลัสแลมบ์ดาเป็นที่รู้จักกันไม่สมบูรณ์เพราะมันไม่ได้ตอบสนองความξξξ -rule: ภายใต้การตีความ, M=NM=NM = Nไม่ได้หมายความถึงλx.M=λx.Nλx.M=λx.N\lambda x.M = \lambda x.N (Barendregt, 1984) คำถาม: การเทียบเคียงแบบนี้หมายถึงอะไร? เมื่อนิยามคำนิยามของความเท่าเทียมนี้แล้วอะไรคือตัวอย่างของนัยที่เกี่ยวข้อง?

1
คู่พื้นฐานของ combinator ที่สมบูรณ์แบบที่สุดสำหรับการแสดงผลแบบแบน
ในกระดาษของ Chris Okasaki " Flattening Combinators: Surviving Without วงเล็บ) " เขาแสดงให้เห็นว่ามีสอง combinators เพียงพอและจำเป็นสำหรับการเข้ารหัสนิพจน์ทัวริงที่สมบูรณ์โดยไม่จำเป็นต้องใช้ตัวดำเนินการหรือวงเล็บ เมื่อเทียบกับการเข้ารหัสของ combinatory ตรรกะของ John Trump ใน " Binary Lambda แคลคูลัสและ Combinatory Logic " ผ่านการเข้ารหัสคำนำหน้า S และ K combinators กับผู้ให้บริการแอปพลิเคชันเพียงต้องการ combinators สองตัวสำหรับการแสดงแบบแบนเพิ่มความหนาแน่นของรหัส ผลลัพธ์ของการกำหนดหมายเลข Goedel จะจับคู่ทุกจำนวนเต็มกับนิพจน์ระยะปิดที่มีรูปแบบที่ถูกต้องซึ่งแตกต่างจาก esolangs ที่มีความยาวแคลคูลัสและคำอธิบายน้อยที่สุดซึ่งตัวแทนที่เป็นที่ยอมรับทั่วไปมักอนุญาตให้คำอธิบายโปรแกรมที่ไม่ถูกต้อง อย่างไรก็ตามการเข้ารหัสของ Okasaki นั้นมีประโยชน์มากที่สุดในการทำแผนที่ทางเดียวจากคำศัพท์ lambda แคลคูลัสกับ bitstrings ไม่จำเป็นต้องเป็นวิธีอื่น ๆ เนื่องจาก combinators สองตัวที่ใช้ในการลดนี้ค่อนข้างซับซ้อนเมื่อใช้เป็นคำแนะนำในการทดแทนที่ใช้งานได้จริง …

1
คำศัพท์เชิงตรรกะที่รวมกันมีขนาดใหญ่กว่าเสมอหรือไม่?
ดังนั้นจึงมีอัลกอริทึมในการแปลงคำแคลคูลัสแลมบ์ดาเป็นตรรกะเชิง combinatory โดยใช้ SK combinators มันสร้างสิ่งต่าง ๆ ที่ระเบิดในขนาด ฉันต้องการทราบเพิ่มเติมเกี่ยวกับการระเบิดขนาดนี้ ฉันไม่สามารถนึกอัลกอริทึมที่ดีกว่าได้ ฉันเคยได้ยินภาษาที่ใช้งานได้ซึ่งถูกคอมไพล์แล้วกับ combinators ดังนั้นจึงดูเหมือนว่าจะต้องมีอัลกอริทึมที่ดีกว่า ฉันค้นหาบทความของเดวิดเทอร์เนอร์ในหัวข้อและโดยทั่วไปเขาเพียงบอกว่าจะใช้การเพิ่มประสิทธิภาพไม่กี่และพวกเขาทำให้เกิด "การปรับปรุงที่สำคัญ" "การปรับปรุงที่สำคัญ" หมายความว่าขนาดลดลงเหลือเพียงการเพิ่มพหุนามหรือไม่? มีวิธีที่รู้จักกันในการแปลงคำแลมบ์ดาเป็นตรรกะเชิงการรวมกันที่มีขนาดเพิ่มขึ้นเพียงพหุนาม (หรือน้อยกว่า) หรือไม่? หากอัลกอริทึมดังกล่าวมีอยู่จริงหรือไม่?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.