เป็นที่ทราบกันดีว่าการอนุมานของ Hindley-Milner (การพิมพ์ -calculus พร้อม polymorphism) นั้นมีการอนุมานประเภทที่สามารถตัดสินใจได้: คุณสามารถสร้างชนิดหลักการสำหรับโปรแกรมใด ๆ โดยไม่มีคำอธิบายประกอบใด ๆ
การเพิ่มประเภทของสไตล์ Haskell ดูเหมือนจะรักษาความสามารถในการถอดรหัสได้ แต่การเพิ่มเติมเพิ่มเติมทำให้การอนุมานโดยไม่มีการเพิ่มความคิดเห็นไม่สามารถอธิบายได้ (ตระกูลตระกูล, GADTs, ชนิดพึ่งพา, ประเภท Rank, N, Systemเป็นต้น)
ฉันสงสัยว่า: อะไรคือระบบพิมพ์ที่แข็งแกร่งที่สุดที่มีการอนุมานได้อย่างสมบูรณ์? มันจะอยู่ที่ไหนสักแห่งระหว่าง Hindley-Milner (decidable อย่างสมบูรณ์) และ dependent-types (undecidable สมบูรณ์) มีแง่มุมของ DT ที่สามารถเพิ่มซึ่งรักษาความสามารถในการตัดสินใจอนุมานได้หรือไม่? มีงานวิจัยใดที่ทำเพื่อดูว่าสามารถผลักดันสิ่งนี้ได้ไกลแค่ไหน?
ฉันรู้ว่าไม่มีระบบที่แข็งแกร่งที่สุดเพียงระบบเดียวที่มีความเป็นไปได้ที่จะเกิดการเปลี่ยนแปลงเล็ก ๆ น้อย ๆ ที่ไม่สิ้นสุดและเพิ่มขึ้นซึ่งสามารถเพิ่มเข้าไปในการอนุมาน HM แต่มีแนวโน้มว่าผู้สมัครที่ใช้งานได้ไม่กี่คนของระบบที่ถูกค้นพบ
แก้ไข: เนื่องจากไม่มีระบบที่ "แข็งแกร่งที่สุด" ฉันจะยอมรับคำตอบที่แสดงถึงระบบที่น่าทึ่งซึ่งขยาย Hindley Milner ด้วยการอนุมานที่แน่นอน ตัวอย่างอาจเป็นประเภทสภาพคล่องอันดับ 2 เป็นต้น