อะไรคือบทบาทของ predicativity ในคำจำกัดความอุปนัยในทฤษฎีประเภท?


16

บ่อยครั้งที่เราต้องการกำหนดวัตถุตามกฎการอนุมาน กฎเหล่านั้นแสดงถึงฟังก์ชั่นการสร้างFซึ่งเมื่อมันเป็นเนื่องถัวเฉลี่ยจุดอย่างน้อยคงμ F เราใช้: = μ Fจะเป็น "นิยามอุปนัย" ของ ยิ่งกว่านั้น monotonicity ของFทำให้เราสามารถให้เหตุผลกับ "หลักการของการเหนี่ยวนำ" เพื่อกำหนดว่าเมื่อใดที่เซตประกอบด้วยA (เช่นเมื่อสมบัติครอบคลุมทั่วA )AยูFμFA=μFAFAA

ใน Coq ตรงนี้เพื่อเขียนนิยามของกับคำแนะนำอย่างชัดเจน ในขณะที่คำจำกัดความนี้หมายถึงฟังก์ชั่นเฉพาะF , ฟังก์ชั่นนั้นไม่จำเป็นต้องเป็นแบบโมโนโทนิก Coq จึงใช้การตรวจสอบวากยสัมพันธ์บางอย่างเพื่อรับประกัน "ความมีรูปแบบที่ดี" ของคำจำกัดความ สำหรับการประมาณค่าบางอย่างมันจะปฏิเสธการเกิดขึ้นของAในตำแหน่งลบในประเภทของคำแนะนำผมndยูเสื้อผมโวลต์อีAFA

(หากความเข้าใจของฉันถึงจุดนี้มีข้อบกพร่องโปรดแก้ไขฉัน!)

ก่อนคำถามบางคำถามในบริบทของ Coq:

1) ไม่ตรวจสอบประโยคใน Coq เพียงทำหน้าที่เพื่อให้มั่นใจว่านิยามของเป็นกริยา ? (ถ้าเป็นเช่นนั้นการไม่แสดงอารมณ์นั้นเป็นวิธีเดียวที่นิยามจะไม่ถูกต้องหรือไม่) หรือมันกำลังตรวจสอบความน่าเบื่อหน่ายหรือไม่? (ตามลําดับคือสิ่งที่ไม่สามารถพูดซ้ำได้สิ่งที่อาจฆ่ามัน)A

2) ไม่เช่นที่เกิดขึ้นในเชิงลบของจำเป็นต้องหมายความว่าความหมายก็คือ impredicative / ไม่ใช่ต่อเนื่อง? หรือ Coq ไม่สามารถตรวจสอบได้ว่ามีการกำหนดชัดเจนในกรณีนั้นหรือไม่?AA

และโดยทั่วไป:

3) ความสัมพันธ์ระหว่าง predicativity ของคำนิยามอุปนัยและ monotonicity ของฟังก์ชั่นการสร้างคำจำกัดความของอะไร? พวกเขาทั้งสองด้านของเหรียญเดียวกันหรือไม่ พวกเขาไม่เกี่ยวข้อง? อย่างไม่เป็นทางการอันไหนสำคัญกว่ากัน

คำตอบ:


14

ไม่ในกรณีนี้ predicativity และ monotonicity ไม่เกี่ยวข้องกัน

การตรวจสอบเชิงบวกใน Coq / Adga ทำหน้าที่ตรวจสอบให้แน่ใจว่าคุณได้รับจุดคงที่ที่น้อยที่สุดของสิ่งที่เป็นแบบโมโนโพนิคโดยประมาณ

ต่อไปนี้เป็นวิธีคิดประเภทอุปนัยในแง่ของโปรยและผู้ประกอบการโมโนโทน จำได้ว่า Knaster-Tarski ทฤษฎีบทบอกว่าบนตาข่ายสมบูรณ์ , ทุกเครือเดียวF : L Lมีจุดน้อยคงμ ( ) ต่อไปเราสามารถนึกถึงประเภทในทฤษฎีประเภทเป็นการสร้างขัดแตะภายใต้การพิสูจน์ได้ นั่นคือพิมพ์Sอยู่ด้านล่างTถ้าความจริงของSรายละเอียดของT ตอนนี้สิ่งที่เราต้องการจะทำคือการใช้ตัวดำเนินการแบบโมโนโทนL:LLμ()STSTในประเภทและใช้ Knaster-Tarski เพื่อตีความการแก้ไขจุดที่น้อยที่สุดของตัวดำเนินการนี้F ) μ(F)

อย่างไรก็ตามประเภทในทฤษฎีประเภทไม่ได้เป็นเพียงโครงร่าง: มันเป็นหมวดหมู่ นั่นคือให้ทั้งสองประเภทและT , อาจมีการหลายวิธีสำหรับSจะต่ำกว่าTด้วยวิธีหนึ่งสำหรับการพิสูจน์แต่ละอีเมล์: S T ดังนั้นผู้ประกอบการประเภทFก็ต้องทำอะไรบางอย่างที่เหมาะสมกับบทพิสูจน์เหล่านี้ ทั่วไปที่เหมาะสมของ monotonicity เป็นfunctoriality นั่นคือเราต้องการให้Fมีโอเปอเรเตอร์ในประเภทและยังมีการดำเนินการเกี่ยวกับการพิสูจน์เช่นถ้าe : S Tแล้วF (STSTe:STFFe:ST )F(e):F(S)F(T)

ตอนนี้ functoriality ถูกเก็บรักษาไว้โดยผลรวมและผลิตภัณฑ์ (เช่น. ถ้าและGเป็น endofunctors ตามประเภทแล้วF + GและF × G (ทำหน้าที่เป็นพอยต์) เป็นหน้าที่ในประเภท (สมมติว่าเรามีผลรวมและผลิตภัณฑ์ในพีชคณิตของเรา ประเภท) อย่างไรก็ตามมันไม่ได้ถูกสงวนไว้โดยพื้นที่ฟังก์ชั่นเนื่องจาก bifunctor เลขชี้กำลังF GFGF+GF×GFGนั้นขัดแย้งกับอาร์กิวเมนต์ด้านซ้ายดังนั้นเมื่อคุณเขียนคำนิยามประเภทอุปนัยคุณจะกำหนด functor ให้ใช้จุดคงที่น้อยที่สุด เพื่อให้แน่ใจว่าเป็น functor แน่นอนคุณต้องตัดการเกิดขึ้นของพารามิเตอร์แบบเรียกซ้ำทางด้านซ้ายของช่องว่างของฟังก์ชัน --- ดังนั้นจึงต้องตรวจสอบด้านบวก

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

โดยทั่วไปแล้วการแสดงอารมณ์แบบ F บอกว่าหมวดหมู่ของประเภทและเงื่อนไขเป็นหมวดหมู่ที่สมบูรณ์ขนาดเล็ก (นั่นคือ homs และวัตถุมีทั้งชุดและขีด จำกัด ของไดอะแกรมขนาดเล็กทั้งหมด) คลาสสิกสิ่งนี้บังคับให้หมวดหมู่เป็น poset คอนสตรัคติวิสต์หลายคนสร้างสรรค์เพราะพวกเขาต้องการให้ทฤษฎีบทของพวกเขายึดถือมากกว่าระบบกว่าตรรกะเพียงคลาสสิกและเพื่อให้พวกเขาไม่ต้องการที่จะพิสูจน์ได้ว่าอะไรที่จะเป็นเท็จคลาสสิก ดังนั้นพวกเขาจึงมีความหลากหลายของ impredicative polymorphism

อย่างไรก็ตามความแตกต่างทำให้คุณสามารถพูดได้หลายเงื่อนไขว่าคลาสสิก "ใหญ่" ภายในกับทฤษฎีประเภทของคุณ - และ positivity เป็นหนึ่งในนั้น! ตัวดำเนินการชนิดคือ functorial ถ้าคุณสามารถสร้างคำ polymorphic:F

Fmap:α,β.(αβ)(F(α)F(β))

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

แก้ไข: คำถามที่คุณถามเกี่ยวกับความแตกต่างระหว่าง Prop และ Set เกิดขึ้นจากข้อเท็จจริงที่ว่านักพัฒนา Coq ต้องการอนุญาตให้คุณคิดถึงทฤษฎีบท Coq ในเงื่อนไข set-theoretic ที่ไร้เดียงสาถ้าคุณต้องการโดยไม่บังคับคุณทำเช่นนั้น ในทางเทคนิคแล้วพวกเขาแบ่ง Prop และ Set แล้วห้ามไม่ให้เซตขึ้นอยู่กับเนื้อหาการคำนวณของ Prop

ดังนั้นคุณสามารถตีความ Prop เป็นค่าความจริงใน ZFC ซึ่งเป็นบูลีนจริงและเท็จ ในโลกนี้การพิสูจน์ข้อเสนอทั้งหมดมีค่าเท่ากันและแน่นอนว่าคุณไม่ควรแยกหลักฐานการเสนอ ดังนั้นข้อห้ามในเซตขึ้นอยู่กับเนื้อหาการคำนวณของข้อพิสูจน์ของ Prop จึงสมเหตุสมผล นอกจากนี้โครงตาข่ายแบบบูลีนแบบ 2 องค์ประกอบนั้นเห็นได้ชัดว่าเป็นโครงข่ายแบบสมบูรณ์ดังนั้นจึงควรสนับสนุนการจัดทำดัชนีแบบไม่คิดค่าใช้จ่าย ข้อ จำกัด ของ predicativity ในเซตเกิดขึ้นจากข้อเท็จจริง (ดังกล่าวข้างต้น) ว่าการจัดทำดัชนีแบบ F นั้นเสื่อมโทรมในแบบจำลองเซตทฤษฎี

Coq มีโมเดลอื่น ๆ (มันเป็นตรรกะเชิงสร้างสรรค์!) แต่ประเด็นก็คือเมื่อวางหิ้งมันจะไม่พิสูจน์อะไรเลยว่านักคณิตศาสตร์คลาสสิกจะงงงวย


ขอบคุณสำหรับคำตอบของคุณ Neel คำนิยามของคุณของ "คำนิยามอุปนัย" ดูเหมือนจะสอดคล้องกับวิธี "initial -algebra" มากขึ้น: แทนที่จะใช้ฟังก์ชั่นแบบโมโนโทนิก (ซึ่งไม่พูดอะไรเลยในเรื่องการพิสูจน์และเนื้อหาในการคำนวณ) เรากังวลกับฟังก์ชั่น ดังนั้นแทนที่จะตรวจสอบความน่าเบื่อหน่าย Coq จึงตรวจสอบความเป็นหมอฟัน แต่ถ้า predicativity ไม่ได้อยู่ในคำถามทำไม Coq แยกแยะความแตกต่างระหว่างบวกเกิดขึ้นตรวจสอบสำหรับวัตถุที่กำหนดไว้ในP R o Pและผู้ที่อยู่ในเอสอีทีหรือT Y พีอี ? FPRโอพีSอีเสื้อTYพีอี
Scott Kilpatrick

ฉันไม่เข้าใจคำถามของคุณ: Coq เกลียดชังInductive Blah : Prop := Foo : (Blah -> Blah) -> Blahสิ่งอื่นใด
Neel Krishnaswami

1
อาบางทีฉันก็ผิดพลาดการตรวจสอบ positivity สำหรับการตรวจสอบอื่นที่เกี่ยวข้องกับความไม่แน่นอน พิจารณาเทียบกับInductive prop : Prop := prop_intro : Prop -> prop. Inductive set : Set := set_intro: Set -> set.ทำไมความแตกต่างถ้า predicativity ไม่เกี่ยวข้องกับคำนิยามอุปนัย?
Scott Kilpatrick

@ScottKilpatrick: แน่นอนว่าเป็นเช็คที่แตกต่างกันและเกี่ยวกับ (im) predicativity Impredicative แข็งแกร่ง Sigma-ประเภทช่วยให้การเข้ารหัสความขัดแย้งราร์ดดังนั้นประเภทข้อมูลที่จัดเก็บได้เป็นสมาชิกของจักรวาลบางพูดจะต้องอาศัยอยู่ในจักรวาลที่ใหญ่กว่าอย่างน้อยType@{i} Type@{i+1}
Blaisorblade

6

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

ความสัมพันธ์ระหว่าง impredicativity และคำจำกัดความอุปนัยมีการสำรวจในการสนทนานี้โดย Coquand มันกลับไปสู่ผลลัพธ์บางส่วนจากยุค 50 โดย G. Takeuti ที่คำจำกัดความที่เป็นประโยชน์สามารถลดลงเป็นคำจำกัดความอุปนัย หนังสือ

  • ทฤษฎีการพิสูจน์ของระบบย่อยของการวิเคราะห์ที่ไม่คาดคิด - เอกสารและตำราทางวิทยาศาสตร์กายภาพ 2 โดย W. Buchholz, K. Schutte

ให้การวิเคราะห์ที่ดีของหัวข้อหากคุณสามารถรับมือกับมันได้ สไลด์เหล่านี้ให้ภาพรวม


4

เพียงเพื่อให้การอธิบายที่ยอดเยี่ยมโดย Neil นั้นเป็นการแสดงออกถึงความรู้สึก "เบา": คำจำกัดความของชุดหรือคอลเลกชันโดยใช้การอ้างอิงกับตัวเอง ในแง่ที่ว่า:

Inductive Lam : Set :=
| Var : Nat -> Lam
| App : Lam -> Lam -> Lam
| Abs : (Lam -> Lam) -> Lam

เป็นคำจำกัดความที่ใช้ในการกำหนดประเภทของการเหนี่ยวนำลำโดยใช้ฟังก์ชั่นพื้นที่ (ลำ -> ลำ) ซึ่งหมายถึงการสะสม ในสถานการณ์นี้ impredicativity เป็นอันตราย : มันเป็นไปได้ที่จะใช้ทฤษฎีบทของคันทอร์เพื่อพิสูจน์ว่าเท็จ ในความเป็นจริงนี้เป็นยี่ห้อเดียวกันของ impredicativity ที่ลดทฤษฎีไร้เดียงสาไร้เดียงสาเป็นรากฐานที่สอดคล้องกันสำหรับคณิตศาสตร์ มันเป็นสิ่งต้องห้ามใน Coq อีกรูปแบบของ impredicativity จะได้รับอนุญาตเป็นคุณจะตระหนักถึง:

Definition Unit : Prop := forall X:Prop, X -> X

คำจำกัดความของหน่วยเป็นข้อเสนออ้างอิงถึงการรวบรวมข้อเสนอทั้งหมดที่เป็นสมาชิก อย่างไรก็ตามด้วยเหตุผลที่ค่อนข้างคลุมเครือสำหรับฉันการคาดคะเนนี้ไม่เป็นอันตรายเนื่องจากมีอยู่ใน ZFC (ในรูปแบบของความเข้าใจที่ไร้ขอบเขต ) ซึ่งไม่รู้ว่าไม่สอดคล้องกัน

โดยสรุปปรากฏเชิงลบของประเภทอุปนัยในคำจำกัดความเป็นรูปแบบของ impredicativity แต่ไม่ได้เป็นหนึ่งมักจะเรียกว่าเมื่อพูดถึง CoC เป็นกรอบ impredicative


ฉันเข้าใจว่าคุณกำลังพูดว่า ZFC มีความเข้าใจที่ไม่ จำกัด แต่เสียงที่ผิด - math.stackexchange.com/q/24507/79293 Chlipala พูดถึงสิ่งนี้เมื่อพูดถึง-impredicative-setในหนังสือของเขา: adam.chlipala.net/cpdt/html/Universes.htmlและกล่าวถึงข้อ จำกัด บางประการเกี่ยวกับการกำจัด แต่นี่ก็คลุมเครือกับฉันเช่นกัน
Blaisorblade

1
AxBxB

อ้าขอบคุณ! ฉันยังเห็นด้วยว่าการแสดงอารมณ์ข้างต้นตรงกับสิ่งใดใน ZFC (แม้ว่าการทำแผนที่ที่ฉันใช้นั้นอาจไร้เดียงสาเกินไป) คุณสามารถเพิ่มลิงค์ในคำตอบได้หรือไม่?
Blaisorblade

น่าเสียดายที่นี่ยากสำหรับ Google (หรือฉันไม่รู้คำหลักที่ถูกต้อง) มีอะไรที่เลวร้ายกว่าทั้ง Wikipedia และ nLab แยกแยะระหว่าง "ความเข้าใจที่ จำกัด " (ใน ZFC, en.wikipedia.org/wiki/Axiom_schema_of_specification ) และ "แยก / จำกัด ขอบเขต" (สิ่งที่คุณเชื่อมโยง) ดูncatlab.org/nlab/show/axiom+of+separation แต่คำศัพท์ทั้งหมดนี้ดูเหมือนว่าจะเกิดความเข้าใจผิดรอฉันมักจะให้เหตุผลว่า "การแยก ~ ความเข้าใจ" เช่นคุณและผู้เขียนmathforum.org/kb/message.jspa?messageID=4492130ก็เช่นกัน
Blaisorblade

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