funsplit และขั้วของ Pi-types


18

ในหัวข้อที่ผ่านมาใน AGDA รายชื่อที่ส่งคำถามของกฎหมายโผล่ขึ้นมาซึ่งในปีเตอร์แฮนค็อกทำกระตุ้นความคิดคำพูดη

ความเข้าใจของฉันคือกฎหมายมาพร้อมกับประเภทติดลบเช่น การเชื่อมต่อซึ่งกฎการแนะนำจะย้อนกลับได้ หากต้องการปิดใช้งานสำหรับฟังก์ชั่นแฮงค์แนะนำให้ใช้ตัวกำจัดแบบกำหนดเอง, funsplitแทนกฎแอปพลิเคชันทั่วไป ฉันต้องการที่จะเข้าใจคำพูดของแฮงค์ในแง่ของขั้วηη

ตัวอย่างเช่นมีสองงานนำเสนอ -type มีตัวแยกแยก Martin-Löfแบบดั้งเดิมในลักษณะบวก:Σ

Γ⊢ฉ:(a:A)(ข:Ba)→ค(a,ข)Γ⊢พี:Σa:A.BΓ⊢sพีล.ผมเสื้อฉพี:คพี

และมีเวอร์ชันลบ:

Γ⊢พี:Σa:A.BΓ⊢π0พี:AΓ⊢พี:Σa:A.BΓ⊢π1พี:B[π0พี/a]

การนำเสนอหลังนี้ทำให้ง่ายต่อการได้รับสำหรับคู่เช่น สำหรับคู่pใด ๆ(โดยที่ == หมายถึงความเท่าเทียมกันแบบกำหนดเงื่อนไข) ในแง่ของการพิสูจน์ความแตกต่างนี้ไม่สำคัญ: โดยสัญชาตญาณคุณสามารถใช้การคาดการณ์ด้วยการแบ่งหรือวิธีอื่น ๆ( π 0 p , π 1 p ) = = p pη(π0พี,π1พี)==พีพี

ตอนนี้Πประเภทมักจะ (และไม่มีข้อโต้แย้งฉันเชื่อว่า) ถูกลบ:

Γ⊢ฉ:Πa:A.BΓ⊢s:AΓ⊢ฉs:B[s/a]

ซึ่งให้เราηสำหรับฟังก์ชั่น: λx.ฉx==ฉ .

อย่างไรก็ตามในเมลดังกล่าวแฮงค์เรียกใช้ตัวกำจัดfunsplit (การเขียนโปรแกรมในทฤษฎีประเภท ML, [http://www.cse.chalmers.se/research/group/logic/book/], หน้า 51) มันอธิบายไว้ในกรอบตรรกะโดย:

f∈Π(A,B)C(v)Set[v∈Π(A,B)]d(y)∈C(λ(y))[y(x)∈B(x)[x∈A]]funsplit(f,d)∈C(f)

น่าสนใจ Nordstrom และคณะ กระตุ้นความหมายนี้โดยบอกว่า "[นี่] ทางเลือกที่ไม่ใช่แบบฟอร์มบัญญัติขึ้นอยู่กับหลักการของการเหนี่ยวนำโครงสร้าง" มีกลิ่นที่แข็งแกร่งของ positivity คำสั่งนี้คือฟังก์ชั่นจะได้รับการ 'กำหนด' โดยคอนสตรัคของพวกเขา\λ

อย่างไรก็ตามฉันไม่สามารถตอกย้ำการนำเสนอที่น่าพอใจของกฎนั้นในการหักตามธรรมชาติ การใช้ (ab) ของเฟรมเวิร์กแบบลอจิคัลเพื่อแนะนำสำคัญมากที่นี่y

ดังนั้นfunsplitเป็นการนำเสนอในเชิงบวกของ -type? เรามีบางอย่างที่คล้ายกันในแคลคูลัส (ไม่ขึ้นกับ) ตามลำดับหรือไม่? มันจะมีลักษณะเป็นอย่างไรΠ

มันเป็นเรื่องธรรมดา / อยากรู้อยากเห็นสำหรับนักทฤษฎีพิสูจน์ในสนาม?

คำตอบ:


12

การนำเสนอการกำจัดการทำงานโดยใช้นั้นแน่นอนที่สุดไม่ใช่การเกิดขึ้นตามปกติในการรักษาทฤษฎีประเภทส่วนใหญ่ อย่างไรก็ตามฉันเชื่อว่ารูปแบบนี้เป็นการนำเสนอแบบ "บวก" ของการกำจัดประเภทการทำงาน ปัญหาที่นี่คือที่ที่คุณต้องการรูปแบบของการอุดมศึกษาสั่งจับคู่รูปแบบให้ดูเช่นเดลมิลเลอร์funspliเสื้อ

อนุญาตให้ฉันกำหนดกฎของคุณใหม่ในแบบที่ชัดเจนสำหรับฉัน:

Γ⊢ฉ:Πx:A.BΓ,Z:Πx:A.B⊢ค:Sอีเสื้อΓ,[x:A]F(x):B⊢อี:ค{λx:A.F(x)/Z}ม.aเสื้อคชั่วโมง ฉ Wผมเสื้อชั่วโมง λx:A.F(x)⇒อี:ค{ฉ/Z}

ที่ไหนเป็นอภิตัวแปรประเภทในบริบทx:B x : AFBx:A

กฎการเขียนซ้ำจะกลายเป็น:

match λx:A.t with λx:A.F(x)⇒e→e{t{u/x}/F(u)}

สิ่งนี้อนุญาตให้คุณกำหนดแอปพลิเคชันเป็น:

app(t,u)=match t with λx:A.F(x)⇒F(u)

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

แต่มีสถานที่ที่แตกต่างในเชิงบวก / ลบคือปัจจุบันในวรรณคดี: สูตรของภาคความสัมพันธ์เชิงตรรกะ สองคำจำกัดความที่เป็นไปได้ (ในกรณี unary) คือ

[[Πx:A.B]]={เสื้อ|∀ยู∈[[A]],เสื้อยู∈[[B]]x↦ยู}

และ

[[Πx:A.B]]={เสื้อ|เสื้อ→* * * *λx.เสื้อ',∀ยู∈[[A]],เสื้อ'{ยู/x}∈[[B]]x↦ยู}

รุ่นที่สองเป็นเรื่องธรรมดาที่น้อยลง แต่สามารถพบได้เช่นในDowek และเวอร์เนอร์


1
สิ่งนี้ดูเหมือนว่าจะเกี่ยวข้องกับไวยากรณ์บทคัดย่อที่สูงกว่าซึ่งใช้กันอย่างแพร่หลายใน Logical Framework โดยเฉพาะอย่างยิ่งที่นี่น่าจะเป็นฟังก์ชั่นเมตา F
— วันที่

13

นี่คือมุมมองที่แตกต่างกันเล็กน้อยในคำตอบของ Fredrik โดยทั่วไปแล้วกรณีที่การเข้ารหัสประเภทคริสตจักรที่ไม่เอาใจใส่จะเป็นไปตามกฎหมายเกี่ยวข้อง แต่จะไม่เป็นไปตามกฎหมายηβη

ดังนั้นนี่หมายความว่าเราสามารถกำหนดคู่ที่ต้องพึ่งพาดังนี้:

π 1 π 1 : ∃ x : X

∃x:X.Y[x]≜∀α:* * * *.(Πx:X.Y[x]→α)→α
ทีนี้โปรดทราบว่าสามารถกำหนดได้ง่าย: อย่างไรก็ตามคุณไม่สามารถกำหนดการฉายภาพที่สอง - ลองดู! คุณสามารถกำหนดตัวกำจัดที่อ่อนแอสำหรับมันเท่านั้นซึ่งเป็นเหตุผลที่ฉันเขียนมันด้วยการมีอยู่π1เธ2 : Π P : ( ∃ x : X
π1:∃x:X.Y[x]→X≜λพี:(∃x:X.Y[x]).พีX(λxY.x)
π2:Πพี:(∃x:X.Y[x]).Y[π1พี]

อย่างไรก็ตามการฉายภาพครั้งที่สองนั้นสามารถเกิดขึ้นได้และในโมเดลพารามิเตอร์คุณสามารถแสดงให้เห็นว่ามันมีพฤติกรรมที่เหมาะสมเช่นกัน (ดูร่างล่าสุดของฉันกับ Derek Dreyer เกี่ยวกับตัวแปรในแคลคูลัสของสิ่งก่อสร้างสำหรับเรื่องนี้) ดังนั้นฉันคิดว่าการฉายภาพโดยพื้นฐานแล้วต้องการคุณสมบัติการขยายที่แข็งแกร่งเพื่อให้เหมาะสมπ2

ในแง่ของแคลคูลัสตามลำดับตัวกำจัดจุดอ่อนมีกฎที่มีลักษณะดังนี้:

Γ,x:X,Y:Y[x],Γ'⊢อี':คΓ,พี:∃x:X.Y[x],Γ'⊢ล.อีเสื้อ(x,Y)=พีผมnอี':ค
นี่ที่นี่สภาพความเป็นอยู่ที่ดีโดยนัยบ่งบอกว่าไม่สามารถเกิดขึ้นได้ในหรือ . ถ้าเราผ่อนคลายเงื่อนไขนั้นเราจะได้รับกฎแยกซึ่งมีกฎซ้ายที่ดูเหมือน แทนที่นั้นทำให้ฉันนึกถึงกฎการกำจัด Girard / Schroeder-Heister อันยิ่งใหญ่เพื่อความเท่าเทียมกัน ฉันถามคำถามพีΓ'ค
Γ,x:X,Y:Y[x],[(x,Y)/พี]Γ'⊢อี':[(x,Y)/พี]คΓ,พี:∃x:X.Y[x],Γ'⊢ล.อีเสื้อ(x,Y)=พีผมnอี':ค
เกี่ยวกับกฎนี้ในขณะที่หลังและเดวิด Baelde และ Gopalan Nadathur ให้รุ่นรัฐของศิลปะในสถานีจ่ายน้ำเย็น 2012 กระดาษรวมหัก Modulo และ Logics ของจุดคงคำนิยาม ฉันคิดว่า Conor McBride ใช้เวลาคิดเกี่ยวกับความสัมพันธ์ระหว่างประเภทตัวตนกับความเสมอภาคของชโรเดอร์ - เฮสเตอร์ดังนั้นคุณอาจต้องการเห็นสิ่งที่เขาคิด

1
ฉันสนุกกับคำตอบเหล่านี้จริงๆ! ฉันรู้สึกว่ามีความคิดบางอย่างของ "วิปัสสนา" (ความสามารถในการรู้ว่าคำมีค่า) โดยนัยในคำตอบจาก Fredrik ที่เป็นปัญหาจริงของกทพ.: parametricity หมายถึงวิปัสสนานัยกทพ.
— ดี้

10

Richard Garner ได้เขียนบทความที่ดีเกี่ยวกับการประยุกต์ใช้ vs funsplit เกี่ยวกับความแข็งแกร่งของผลิตภัณฑ์ในทฤษฎีประเภทของ Martin-Löf (APAL 160 (2009)) ซึ่งกล่าวถึงลักษณะลำดับที่สูงขึ้นของกฎ funsplit (โดยอ้างอิงถึง Peter Schroeder-Heister's การขยายตัวทางธรรมชาติอย่างเป็นธรรมชาติ (JSL 49 (1984))

ริชาร์ดแสดงให้เห็นว่าในการปรากฏตัวของประเภท (และการก่อตัวและกฎการแนะนำสำหรับประเภท), funsplit interderivable กับกฎของโปรแกรมประยุกต์เหนือ + แคลคูลัสเชิงประพจน์คือสองกฎต่อไปนี้: Π

ม.:Π(A,B)η(ม.):ผมdΠ(A,B)(ม.,λx.ม.⋅x)(Π-Prop-η)
x:A⊢ฉ(x):B(x)η(λ(ฉ))=Rอีฉล.(λ(ฉ)):ผมdΠ(A,B)(λ(ฉ),λ(ฉ))(Π-Prop-ηซีเกทเทคโนโลยี)

นั่นคือถ้าคุณมี funsplit คุณสามารถกำหนดแอปพลิเคชันและดังกล่าวข้างต้นเพื่อให้ถือ น่าสนใจยิ่งขึ้นถ้าคุณมีแอปพลิเคชั่นและกฎกติกามารยาทเชิงประพจน์คุณสามารถกำหนด funsplit ได้η(Π-Prop-ηซีเกทเทคโนโลยี)

ยิ่งไปกว่านั้น funsplit มีความแข็งแกร่งกว่าการประยุกต์ใช้อย่างเคร่งครัด: กฎกติกาการทางกฎเกณฑ์เชิงประพจน์ไม่ชัดเจนในทฤษฎีที่มีการใช้งานเพียงอย่างเดียว - ดังนั้น funsplit จึงไม่สามารถระบุได้อย่างชัดเจน นี่เป็นเพราะกฎแอปพลิเคชั่นให้คุณมีความเฉื่อยน้อยกว่าซึ่งแตกต่างจาก funsplit (และกทพ.) พวกเขาไม่ได้บอกคุณว่าฟังก์ชั่นคืออะไร ฉันเชื่อว่าการโต้เถียงของริชาร์ดอาจเกิดขึ้นซ้ำได้สำหรับประเภทเช่นกันเพื่อแสดงผลลัพธ์เดียวกันสำหรับ vs การคาดการณ์Σsพีล.ผมเสื้อ

โปรดทราบว่าหากคุณมีกฎกติกามารยาทที่ชัดเจนคุณจะต้องมีกฎเกณฑ์อย่างแน่นอนเช่นกัน (กับ ) ดังนั้นฉันคิดว่าข้อความของคุณ "[... ] ซึ่งให้เราสำหรับฟังก์ชั่น" และ "[... ] งานนำเสนอหลังนี้ทำให้ง่ายต่อการได้รับสำหรับคู่" ผิด อย่างไรก็ตาม Agda ใช้งานสำหรับทั้งฟังก์ชั่นและคู่ (ถ้าถูกกำหนดเป็นเรคคอร์ด) แต่สิ่งนี้ไม่ได้ปฏิบัติตามเพียงแค่แอปพลิเคชันη(ม.)=Rอีฉล.(ม.)ηηηΣ

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