Subtypisierung und abhängige Typen sind orthogonale Konzepte.
Die Untertypisierung ist in der Regel mit einem Subsumtionsbegriff ausgestattet, bei dem ein Ausdruck eines Typs an der Stelle erscheinen kann, an der ein Supertyp erwartet wird.
Subtypisierung ist mit größerer Wahrscheinlichkeit entscheidbar und in der Implementierung einfacher zu handhaben.
Abhängiges Tippen ist weitaus aussagekräftiger. Aber wenn Sie eine Gruppe jemals als Monoid betrachten wollen, dann brauchen Sie einen Subsumtionsbegriff, um die zusätzliche Struktur zu vergessen. Oft wird, wie bei der Verwendung von Coq, eine triviale Beweispflicht für die Bewältigung dieser Art von Zwang generiert, sodass in der Praxis durch die Subtypisierung möglicherweise nichts hinzugefügt wird. Was wichtiger ist, ist die Möglichkeit, verschiedene Theorien so zusammenzufassen, dass sie wiederverwendbar sind, z. B. die Wiederverwendung der Theorie der Monoide, wenn über Gruppen gesprochen wird. Typenklassen in Coq sind eine neue Innovation, um solche Dinge zu tun. Module sind ein älterer Ansatz.
Wenn Sie einen kurzen Blick auf "Subtypisierung abhängiger Typen" werfen, finden Sie eine Menge Arbeit, die abhängigen Typen Subtypisierung hinzufügt, hauptsächlich aus der Zeit um das Jahr 2000. Ich stelle mir vor, dass die Metatheorie wirklich herausfordernd ist, sodass in keine Subtypisierung abhängiger Typen vorkommt Beweisassistenten.