Podtypy i typy zależne są pojęciami ortogonalnymi.
Podtypowanie jest zazwyczaj wyposażone w pojęcie subsumcji, przy czym wyrażenie jednego typu może pojawić się w miejscu, w którym oczekiwany jest nadtyp.
Podpisywanie jest bardziej podatne na rozstrzygnięcie i jest łatwiejsze do zarządzania w trakcie wdrażania.
Zależne pisanie jest znacznie bardziej wyraziste. Ale jeśli kiedykolwiek zechcesz uznać grupę za monoidę, potrzebujesz pojęcia subsumpcji, aby zapomnieć o dodatkowej strukturze. Często, na przykład podczas korzystania z Coq, generowany jest trywialny obowiązek dowodu, aby poradzić sobie z tego rodzaju przymusem, więc w praktyce podtypowanie może niczego nie dodawać. Co ważniejsze, to sposoby pakowania różnych teorii, aby można je było ponownie wykorzystać, na przykład ponowne wykorzystanie teorii monoidów w rozmowach o grupach. Klasy typów w Coq to najnowsza innowacja do robienia takich rzeczy. Moduły są starszym podejściem.
Jeśli zrobisz szybkie wyszukiwanie w Google „podtypów zależnych”, znajdziesz mnóstwo pracy nad dodaniem podtypów do typów zależnych, głównie z około 2000 roku. Wyobrażam sobie, że meta-teoria jest naprawdę trudna, więc żadne podtypowanie typów zależnych nie pojawia się w asystenci dowodu.