วิทยาศาสตร์คอมพิวเตอร์เชิงทฤษฎี

คำถาม & คำตอบสำหรับนักวิทยาศาสตร์คอมพิวเตอร์เชิงทฤษฎีและนักวิจัยในสาขาที่เกี่ยวข้อง

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 …

1
สัญชาตญาณของตรรกะเชิงเส้นคืออะไร?
ฉันพยายามเข้าใจตรรกะเชิงเส้นเพื่อทำความเข้าใจระบบเชิงเส้นที่ดีขึ้น แต่เมื่อฉันอ่านกฎที่ฉันไม่ได้รับสัญชาติญาณที่อยู่เบื้องหลังมันเป็นฉันได้ทำในตรรกะกิริยา - หมายความเป็นสิ่งจำเป็นในขณะที่คริปเกกรอบเป็นสิ่งจำเป็นสำหรับโลกสามารถเข้าถึงได้ทุก [ ◊เป็นเป็นไปได้อนุโลม บังคับ] แต่ฉันไม่สามารถหาคำอธิบายใด ๆ ใช้งานง่ายสำหรับคู่และคู่ร่วม / หย่า (ถ้ามี) สอดคล้องกับ∧และ∨□A◻A\Box AAAAAAA◊A◊A\Diamond AAAA∧∧\land∨∨\lor

1
Entscheidungsproblem vs. Unvollständigkeitssatz (คำถามอ่อน)
เทอมแรกถูกใช้โดยฮิลแบร์ตในการทำงานของเขาในปี 1928 แต่ในงานต่อมาของGödelสิ่งเดียวกันนี้เรียกว่าUnvollständigkeitssatz ("ทฤษฎีบทที่ไม่สมบูรณ์") สำหรับนักวิจัยเยอรมัน CS วันนี้ดูเหมือนว่าUnvollständigkeitssatzเป็นใช้กันอย่างแพร่หลายและEntscheidungsproblem ( "ปัญหาการตัดสินใจ") ยังคงเข้าใจ แต่ไม่จำเป็นต้องเกี่ยวข้องกับการดา Halteproblem (ซึ่งน่าจะเป็นเรื่องปกติมากขึ้นหลังจากที่ทำงานในทัวริงออโต) ในทางตรงกันข้ามสำหรับนักวิจัย CS ภาษาอังกฤษEntscheidungsproblemมักเป็นคำเดียวที่พวกเขาคุ้นเคย หมายเหตุ : คำพูดไม่เหมือนกันและอาจเป็นที่ถกเถียงกันอยู่ว่าคำถามของฮิลแบร์ตเกี่ยวกับการตัดสินใจได้รับคำตอบในแง่ลบในบางกรณีโดยคำแถลงของGödelเกี่ยวกับความไม่สมบูรณ์ดังนั้นความไม่สมบูรณ์จึงทำลายการตัดสินใจโดยทั่วไป ที่น่าสนใจเมื่อมองไปที่เยอรมันวิกิพีเดียมีรายการไม่Entscheidungsproblemแต่มีหนึ่งสำหรับGödelscherUnvollständigkeitssatzและรายการเกี่ยวกับฮิลแบร์ตใช้GödelscherUnvollständigkeitssatz เมื่อมองไปที่วิกิพีเดียภาษาอังกฤษคนหนึ่งได้อย่างง่ายดายพบรายการสำหรับEntscheidungsproblem ทำไมEntscheidungsproblemจึงไม่ใช้ในภาษาเยอรมันอีกต่อไป?

1
ทำไมต้อง Reflexive Graphs สำหรับ Parametricity
มองไปที่รูปแบบของความแตกต่างพาราผมอยากรู้ว่าทำไม กราฟสะท้อนประเภทการใช้งานอย่างไร โดยเฉพาะอย่างยิ่งทำไมพวกเขาจึงไม่รวมองค์ประกอบเชิงสัมพันธ์? เมื่อดูที่แบบจำลองพวกเขาทั้งหมดดูเหมือนจะสนับสนุนความคิดตามธรรมชาติขององค์ประกอบสัมพันธ์: x ( R ; S) z⟺∃ y. x R y∧ ySZx(R;S)z⟺∃y.xRy∧ySz x(R;S)z \iff \exists y. xRy \wedge y S z เอกสารล่าสุดที่ใช้กราฟสะท้อนกลับดูเหมือนจะใช้สิ่งนี้เพื่อให้ได้รับและกระดาษเก่าเท่านั้นที่ฉันสามารถพบที่กล่าวถึงมันคือ "ตัวแปรเชิงสัมพันธ์และตัวแปรท้องถิ่น" โดย O'Hearn และ Tennent ผู้กล่าวว่า: เหตุผลหนึ่งที่ไม่ต้องการความสามารถในการเรียงตัวคือว่าเป็นที่ทราบกันดีว่าการแต่งเพลงไม่ได้ถูกรักษาไว้โดยความสัมพันธ์เชิงตรรกะในประเภทที่สูงกว่า และฉันก็ไม่แน่ใจว่าสิ่งนี้หมายถึงอะไรดังนั้นคำถามแรกของฉันคือสิ่งที่มีความหมายโดยนี้และหวังว่าการอ้างอิงที่ดีกว่าสำหรับคำถามนี้ สิ่งที่ฉันคิดว่านี่คือสิ่งที่ยกตัวอย่างเช่นเลขชี้กำลังไม่จำเป็นต้องรักษาองค์ประกอบความสัมพันธ์บนจมูก โดยเฉพาะอย่างยิ่งเราไม่สามารถแสดงS')) ซึ่งหมายความว่าเลขชี้กำลังไม่ขยายไปถึง functor ในหมวดหมู่ของความสัมพันธ์( R ; R') → ( เอส; S') ≡ ( ( R → …

1
อะไรคือชื่อของฟังก์ชั่น
ให้เป็นภาษาและฟังก์ชันบนพารามิเตอร์สองตัวที่มีคุณสมบัติซึ่งสำหรับและทั้งหมดจะคืนค่าองค์ประกอบของและถ้าหากทั้งและเป็นองค์ประกอบของ :F : Σ ⋆ × Σ ⋆ →การΣ ⋆ x Y ฉL x Y LLLLf:Σ⋆×Σ⋆→Σ⋆ฉ:Σ⋆×Σ⋆→Σ⋆f\colon {\Sigma^\star}\times\Sigma^\star\to\Sigma^\starxxxYYyฉฉfLLLxxxYYyLLL f( x ,y) ∈L⟺x ∈ L ∧y∈ ล.ฉ(x,Y)∈L⟺x∈L∧Y∈L.f(x,y)\in L \iff x\in L\wedge y\in L . คำถามหน้าที่ดังกล่าวมีชื่อในวรรณคดีหรือไม่ ต่อไปนี้เป็นข้อสังเกตที่น่าขบขัน ฟังก์ชั่นเหล่านี้ซึ่งฉันจะเรียกว่า " การลดการเชื่อมต่อ " สามารถสร้างขึ้นสำหรับปัญหาที่สมบูรณ์ของคลาสความซับซ้อนที่หลากหลาย ตัวอย่างเช่นสำหรับใช้ฟังก์ชั่นF ( ψ , φ ) = ψ ∧ φ Analogously …

1
Quantum-Gate ที่จับต้องได้มีลักษณะอย่างไร
ฉันอ่านหนังสือบทความและเอกสารเกี่ยวกับ Quantum-Computing ฉันพบว่าวัสดุทั้งหมดที่ผมเคยเห็นมีแทนการอธิบายประตูจากควอนตัมฟิสิกส์พื้นฐานในการนามธรรมพยายามอย่างหนักเพื่อหลีกเลี่ยงการพูดคุยเกี่ยวกับรายละเอียดการดำเนินงานของควอนตัมประตู ฉันถามตัวเองก่อน: ฉันกำลังค้นหาในพื้นที่ที่ผิดที่เกี่ยวข้องกับคณิตศาสตร์อย่างเป็นทางการเท่านั้นหรือไม่ แต่ฉันพบว่ากระดาษและหนังสือเหล่านั้นอธิบายไอออน - ออปติกสวิตช์แสงและแม้กระทั่งเลเซอร์ไฟเบอร์ในรายละเอียด เมื่อพูดถึงประตูควอนตัมที่พวกเขาอ้างว่าใช้ในการวิจัยจะแสดงเฉพาะเมทริกซ์สมการสูตรและส่วนประกอบกล่องดำเท่านั้น เราทุกคนรู้เกี่ยวกับหน่วยและการคำนวณเมทริกซ์ แต่ถ้าคุณพิมพ์ตัวดำเนินการ quantum-gate matrix บนกระดาษ A4 นั่นจะไม่เกิดผลอะไรเลยเมื่อโฟตอนหรืออิเล็กตรอนถูกโยนลงไป ดังนั้นไม่มีใครรู้ว่าประตูควอนตัมคืออะไรอย่างชัดเจนเพื่อที่ฉันจะได้รู้ว่า: Quantum Gate เป็นอุปกรณ์ที่ใช้สนามแม่เหล็กในการทำองค์ประกอบทางคณิตศาสตร์หรือไม่? Quantum Gate เป็นอุปกรณ์ที่ใช้ลำแสงเลเซอร์หรือไม่? Quantum Gate เป็นอุปกรณ์ที่ใช้ลวดโลหะหรือไม่ เมื่อนักวิทยาศาสตร์ทำการคูณอย่างมีความสุขโดยการสังเกตการณ์อิเล็กตรอนชนกันที่ประตูเมื่อ "คูณ" หรือไม่? ขอบคุณล่วงหน้า.

1
ลักษณะทั่วไปของทฤษฎีบทของ Dilworth สำหรับป้ายกำกับ DAG
antichainในDAG เป็นส่วนหนึ่ง⊆ Vของจุดที่ไม่สามารถเข้าถึงคู่คือไม่มีวี≠ วี' ∈ดังกล่าวว่าโวลต์สามารถเข้าถึงได้จากโวลต์'ในE จากทฤษฎีบทของดิลเวิร์ ธในทฤษฎีลำดับบางส่วนเป็นที่รู้กันว่าถ้า DAG ไม่มีแอนติเชนขนาดk ∈ Nจากนั้นมันสามารถย่อยสลายในสหภาพที่มีโซ่แยกส่วนk - 1มากที่สุดคือเส้นทางชี้นำ(V,E)(V,E)(V, E)A⊆VA⊆VA \subseteq Vv≠v′∈Av≠v′∈Av \neq v' \in Avvvv′v′v'EEEk∈Nk∈Nk \in \mathbb{N}k−1k−1k-1 vvvλ(v)λ(v)\lambda(v)ΣΣ\SigmaA⊆VA⊆VA \subseteq VΣΣ\SigmaAAAmina∈Σ|{v∈A∣λ(v)=a}|mina∈Σ|{v∈A∣λ(v)=a}|\min_{a \in \Sigma} |\{v \in A \mid \lambda(v) = a\}| k∈Nk∈Nk \in \mathbb{N}ฉันจะเดาได้อย่างไรเกี่ยวกับโครงสร้างของมัน ฉันสามารถย่อยสลายมันด้วยวิธีพิเศษได้ไหม? ฉันงงกับกรณีของ , แต่ก็สนใจในกรณีของชุดฉลาก จำกัด ทั่วไปΣ={a,b}Σ={a,b}\Sigma = \{a, b\} เพื่อให้เห็นภาพนี้สำหรับ , บอกว่าไม่มี antichain …

1
vs
คือ ? หรือโดยทั่วไปแล้วหรือไม่ N P P P ⊆ P P P / P o L YNPPP=PPPNPPP=PPP\mathsf{NP^{PP}} = \mathsf{P^{PP}}NPPP⊆PPP/polyNPPP⊆PPP/poly\mathsf{NP^{PP}} \subseteq \mathsf{P^{PP}/poly}

1
การแจกแจงประเภททอพอโลยีของ DAG ที่ติดป้ายจุดสุดยอด
ให้เป็นผู้กำกับวัฏจักรกราฟและให้จะเป็นฟังก์ชั่นการติดฉลากการทำแผนที่จุดสุดยอดแต่ละป้ายกำกับในบาง จำกัด ตัวอักษรLกำลังเขียนการเรียงลำดับทอพอโลยีของเป็น bijectionจากเพื่อ (เช่นการสั่งซื้อของในลำดับ) เช่นว่าเมื่อใดก็ตามแล้ว (เช่นถ้ามีขอบจากถึงG=(V,E)G=(V,E)G = (V, E)λλ\lambdav∈Vv∈Vv \in Vλ(v)λ(v)\lambda(v)LLLn:=|V|n:=|V|n := |V|GGGσσ\sigma{1,…,n}{1,…,n}\{1, \ldots, n\}VVVVVV(v,v′)∈E(v,v′)∈E(v, v') \in Eσ−1(v)&lt;σ−1(v′)σ−1(v)&lt;σ−1(v′)\sigma^{-1}(v) < \sigma^{-1}(v')vvvv′v′v'จากนั้นเกิดขึ้นก่อนตามลำดับ) ฉลากของเป็นคำที่ใน nvvvv′v′v'σσ\sigmaσ(1)⋯σ(n)σ(1)⋯σ(n)\sigma(1) \cdots \sigma(n)LnLnL^n ให้ฉันต้องการแจกแจงฉลากของประเภททอพอโลยีของอย่างมีประสิทธิภาพ ความซับซ้อนของการระบุฉลากของทอพอโลยีแปลก ๆ คืออะไร? แน่นอนว่าอาจมีจำนวนมากแทนฉันต้องการศึกษาความซับซ้อนเป็นหน้าที่ของขนาดของผลลัพธ์หรือในแง่ของความล่าช้า โดยเฉพาะอย่างยิ่งการแจงนับสามารถดำเนินการได้ด้วยความล่าช้าแบบพหุนาม (หรือแม้กระทั่งความล่าช้าคงที่?)(G,λ)(G,λ)(G, \lambda)GGG ในกรณีที่จุดทั้งหมดของดำเนินการป้ายชื่อที่แตกต่างกัน (หรือเท่ากันจุดที่มีป้ายกำกับด้วยตัวเอง) ผมรู้ว่าป้ายที่สามารถแจกแจงคงตัดจำหน่ายเวลาโดยผลนี้บน การแจกแจงการขยายเชิงเส้นของ posets (ซึ่งเป็นสิ่งเดียวกันกับการแจกแจงการจัดเรียงทอพอโลยีประเภทของ DAG) อย่างไรก็ตามเมื่อจุดยอดถูกติดป้ายกำกับโดยพลการมันอาจเป็นกรณีที่จำนวนทอพอโลยีจำนวนมากมีป้ายชื่อเดียวกันดังนั้นคุณจึงไม่สามารถระบุประเภททอพอโลยีและคำนวณฉลากเพื่อรับวิธีที่มีประสิทธิภาพในการระบุฉลาก . ในคำศัพท์ poset, ป้าย DAGสามารถมองเห็นเป็นป้ายGGG{1,…,n}{1,…,n}\{1, \ldots, n\}GGG(G,λ)(G,λ)(G, \lambda) poset …

1
การตัดสินใจว่าการเปลี่ยนแปลงหนึ่งรายการจะลดความถาวรของเมทริกซ์ในลำดับชั้นพหุนามหรือไม่?
พิจารณาปัญหาดังต่อไปนี้ได้รับเมทริกซ์M∈{−m,…,0,…,m}n×nM∈{−m,…,0,…,m}n×nM\in\{-m,\dots,0,\dots,m\}^{n\times n} , ดัชนีi,j∈{1,…,n}i,j∈{1,…,n}i,j\in\{1,\dots,n\}และจำนวนเต็ม แทนที่M [ ฉัน, J ]โดยและเรียกใหม่เมทริกซ์M คือp e r ( M ) &gt; paaaM[i,j]M[i,j]M[i,j]aaaM^M^\hat Mper(M)&gt;per(M^)per(M)&gt;per(M^)per(M)>per(\hat M) ? ปัญหานี้อยู่ในลำดับชั้นพหุนามหรือไม่?
11 permanent 

1
กล่องที่เรียงแนวแกนที่เล็กที่สุดที่มีจุด
การป้อนข้อมูล: ชุดของคะแนนในและจำนวนเต็มnnnnR3R3\mathbb{R}^3k≤nk≤nk \le n เอาท์พุท: กล่องขอบเขตแนวแกนเสียงที่เล็กที่สุดที่มีอย่างน้อยของจุดเหล่านี้kkknnn ฉันสงสัยว่าขั้นตอนวิธีใดเป็นที่รู้จักสำหรับปัญหานี้หรือไม่ สิ่งที่ดีที่สุดที่ฉันนึกได้ก็คือเวลาอย่างอิสระดังนี้: กำลังเดรัจฉานเหนือขอบเขตบนและล่างที่เป็นไปได้ทั้งหมดสำหรับสองมิติ สำหรับความเป็นไปได้เราสามารถแก้ไขปัญหามิติในเวลาโดยใช้อัลกอริทึมหน้าต่างแบบเลื่อนO(n5)O(n5)O(n^5)O(n4)O(n4)O(n^4)111O(n)O(n)O(n)

1
วารสารทำหน้าที่ชุมชน TCS อย่างไร
ในอดีตวารสารเป็นวิธีการค้นพบทางวิทยาศาสตร์ / คณิตศาสตร์ที่สำคัญได้ถูกเผยแพร่และตรวจสอบ ในบางพื้นที่พวกเขายังคงอยู่ อย่างไรก็ตามในวิทยาการคอมพิวเตอร์ (เชิงทฤษฎี) นั้นมีบทบาทเกือบทั้งหมดโดยการประชุมและการเผยแพร่ทางเว็บแบบเปิด (เช่น arxiv หรือหน้าแรกส่วนตัว) ยังมีวารสาร TCS อยู่ (เช่น TOCและJACM ) แต่พวกเขาดูเหมือนจะเป็นหลักเผยแพร่เอกสารที่มีปรากฏอยู่แล้วในการจัดประชุมและมักจะมี preprint arXiv ดังนั้นฉันไม่เข้าใจว่าพวกเขากำลังเพิ่มคุณค่าอะไร วารสารมีจุดประสงค์อะไรใน TCS ฉันได้ยินข้อโต้แย้งสามประการเพื่อสนับสนุนวารสาร แต่ฉันไม่พบข้อโต้แย้งใด ๆ วารสารควรมีมาตรฐานที่สูงกว่าสำหรับการทบทวนมากกว่าการประชุม มันเป็นความจริงที่การทบทวนการประชุมอยู่ภายใต้แรงกดดันด้านเวลาที่มากขึ้น แต่ก็ยังคงเป็นกลุ่มผู้ตรวจสอบเดียวกัน (และระยะเวลาที่ผู้ตรวจสอบให้อ่านกระดาษมีความสัมพันธ์น้อยมากกับระยะเวลาที่พวกเขาใช้อ่านกระดาษจริง) ในฐานะผู้ตรวจทานฉันไม่ถือว่าการขอทบทวนวารสารโดยพื้นฐานแล้วต่างจากการทบทวนภายนอกสำหรับการประชุม สมุดรายวันมีคุณภาพสูงกว่ารุ่นประชุม นี่เป็นเรื่องจริง แต่มันเป็นสิ่งที่สงสัยเพราะคนส่วนใหญ่จะอ่านไม่ออก เมื่อฉันต้องการอ่านกระดาษฉันค้นหาและคลิกที่ลิงก์ที่มีแนวโน้มมากที่สุดซึ่งเกือบจะเป็นเวอร์ชัน arxiv เสมอ ดังนั้นจึงเป็นเรื่องยากมากสำหรับฉันที่จะอ่านวารสารฉบับแม้ว่ามันจะมีอยู่ วารสารสามารถให้สัญญาณคุณภาพเพิ่มเติมที่ด้านบนของเอกสารที่ปรากฏในการประชุมนี้ดูเหมือนว่าฟุ่มเฟือยและความพยายามมากสำหรับสัญญาณน้อยมาก ฉันส่งเฉพาะวารสาร TCS เมื่อได้รับเชิญ ฉันพบกระบวนการที่น่าเบื่อเพราะมันสร้างงานพิเศษและลากบนมานานหลายปี ดังนั้นฉันจึงไม่อยากจะส่งเป็นอย่างอื่น มีเหตุผลที่ดีสำหรับฉันที่จะส่งหรือไม่

1
การสร้างแบบสุ่ม "อนันต์" จากแหล่งที่มาคงที่
ฉันเพิ่งเจอกระดาษโดย Coudron และ Yuenในการขยายแบบแผนโดยใช้อุปกรณ์ควอนตัม ผลลัพธ์หลักของงานคือสามารถสร้างแบบสุ่ม "อนันต์" จากจำนวนแหล่งคงที่ (นั่นคือจำนวนบิตสุ่มที่สร้างขึ้นขึ้นอยู่กับจำนวนรอบของโปรโตคอลเท่านั้นและไม่ได้อยู่ในจำนวนแหล่งที่มา ) ไร้เดียงสาเสียงนี้สำหรับฉันเหมือนผลลัพธ์ที่ได้ทำให้การสุ่มตัวอย่างของอัลกอริทึมแบบสุ่มใด ๆ กับแหล่งควอนตัมและบอกเป็นนัยถึงการบรรจุคลาสความซับซ้อนแบบสุ่มในคลาสควอนตัม แต่ฉันไม่เข้าใจทฤษฎีข้อมูลควอนตัมและแน่ใจว่ามีรายละเอียดปลีกย่อยมากมายที่ฉันหายไป ไม่ต้องพูดถึงว่าถ้าการเรียกร้องดังกล่าวเป็นไปได้ผู้เขียนก็จะทำมัน ดังนั้นคำถามของฉันคือ: การมีอยู่ของ "การขยายตัวแบบสุ่มไม่มีที่สิ้นสุด" ตามที่อธิบายไว้ในบทความ (และงานที่เกี่ยวข้องทั้งหมด) แสดงถึงคำสั่ง derandomization บางอย่างสำหรับคลาสความซับซ้อนแบบสุ่มหรือไม่? และถ้าไม่ทำไมไม่ Update: ฉันถูกชี้ไปที่ภาพรวมระดับสูงที่ยอดเยี่ยมของพื้นที่และเอกสารข้างต้นโดย Scott Aaronson น่าเสียดายที่ฉันยังสับสนอยู่ :)

1
ประเภทที่ขึ้นอยู่กับประเภทที่เข้ารหัสของคริสตจักรใน PTS / CoC
ฉันกำลังทดลองกับระบบที่บริสุทธิ์ในก้อนแลมบ์ดาของ Barendregt โดยเฉพาะกับแคลคูลัสออฟคอนสตรัคชั่นที่ทรงพลังที่สุด ระบบนี้มีทุกประเภทและ* BOXสำหรับบันทึกด้านล่างฉันใช้ไวยากรณ์ที่เป็นรูปธรรมของMorteเครื่องมือhttps://github.com/Gabriel439/Haskell-Morte-Libraryซึ่งอยู่ใกล้กับแคลคูลัสแลมบ์ดาคลาสสิก ฉันเห็นว่าเราสามารถเลียนแบบประเภทอุปนัยโดยการเข้ารหัสเหมือนคริสตจักรบางอย่าง (aka Boehm-Berarducci isomorphism สำหรับประเภทข้อมูลพีชคณิต) สำหรับชนิดเช่นฉันใช้งานง่ายBool = ∀(t : *) -&gt; t -&gt; t -&gt; tด้วยการก่อสร้างงานและTrue = λ(t : *) -&gt; λ(x : t) -&gt; λ(y : t) -&gt; xFalse = λ(t : *) -&gt; λ(x : t) -&gt; λ(y : t) -&gt; y ฉันเห็นว่าประเภทของฟังก์ชั่นระดับคำBool …

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