คำถามติดแท็ก dependent-types

คุณลักษณะที่ทับซ้อนกันของทฤษฎีประเภทและระบบประเภท

1
เหตุใดประเภทการเรียกซ้ำจึงเป็นสิ่งจำเป็นสำหรับการพิสูจน์ในระบบชนิดที่ขึ้นต่อกัน
ฉันค่อนข้างใหม่ในการพิมพ์ทฤษฎีและการเขียนโปรแกรมขึ้นอยู่กับ ฉันกำลังศึกษาแคลคูลัสของการก่อสร้าง (CoC) และระบบบริสุทธิ์อื่น ๆ ฉันสนใจเป็นพิเศษที่จะใช้มันเพื่อเป็นสื่อกลางในการเก็บรักษาหลักฐานสำหรับการแปล ผมเข้าใจว่า(ร่วม) ประเภท recursive เป็นแทนได้ , คอมพิวเตอร์โดยใช้เป็นชนิดคอนสตรัคเท่านั้น ฉันได้อ่านแล้วว่าพวกเขาไม่สามารถใช้ในการสร้างหลักฐานโดยการเหนี่ยวนำ (ยกโทษให้ฉันฉันไม่สามารถหาที่ตอนนี้!) เช่นว่าฉันไม่สามารถพิสูจน์ได้ว่า0 ≠ 1ใน CoC ธรรมดา (แม้ว่าแน็ตสามารถพิมพ์ได้เช่นΠ ( N : ∗ ) . Π ( S : N → N ) . Π ( Z : N ) . N )ΠΠ\Pi0 ≠ 10≠10\neq 1ชัยนาทชัยนาท\texttt{Nat}Π ( N : …

2
คำจำกัดความที่สร้างสรรค์มาตรฐานของจำนวนเต็ม rationals และ reals?
จำนวนธรรมชาติถูกกำหนด inductively เป็น (ใช้ไวยากรณ์ Coq เป็นตัวอย่าง) Inductive nat: Set := | O: nat | S: nat -> nat. มีวิธีมาตรฐานในการกำหนดจำนวนเต็ม (และชุดอื่น ๆ เช่น rationals และ reals) อย่างสร้างสรรค์?

1
เหตุใด Coq จึงรวมเอาการแสดงออกมาเป็นภาษาหลัก
Coq รวมถึงการแสดงออกให้เป็นภาษาหลักของมัน เราสามารถแปลการแสดงออกให้กับแอพพลิเคชั่นเช่นนี้: let x : t = v in b ~> (\(x:t). b) v ฉันเข้าใจว่ามันไม่ได้ผลเสมอไปเพราะค่าvจะไม่สามารถใช้ได้เมื่อพิมพ์แบบตรวจbสอบ อย่างไรก็ตามเรื่องนี้สามารถแก้ไขได้อย่างง่ายดายโดยปลอกพิเศษ typechecking (\(x:t). b) vของการใช้งานของฟอร์ม สิ่งนี้ช่วยให้เราสามารถลบการแสดงออกในราคาพิเศษในขณะพิมพ์ เหตุใด Coq จึงรวมถึงให้รวมการแสดงออก? พวกเขามีข้อได้เปรียบอื่น ๆ (นอกเหนือจากไม่จำเป็นต้องใช้กรณีพิเศษ)?

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