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)[xA]]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)ee{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.