Los subtipos y los tipos dependientes son conceptos ortogonales.
El subtipo generalmente está equipado con una noción de subsunción, por lo que una expresión de un tipo puede aparecer en el lugar donde se espera un supertipo.
La subtipificación es más probable que sea decidible y es más simple de administrar en la implementación.
La escritura dependiente es mucho más expresiva. Pero si alguna vez quiere considerar que un grupo también es un monoide, entonces necesita una noción de subsunción para olvidar la estructura adicional. A menudo, como cuando se usa Coq, se genera una obligación de prueba trivial para lidiar con este tipo de coerción, por lo que en la práctica el subtipo puede no agregar nada. Lo que es más importante es tener formas de agrupar varias teorías para hacerlas reutilizables, como reutilizar la teoría de los monoides cuando se habla de grupos. Las clases de tipos en Coq son una innovación reciente para hacer tales cosas. Los módulos son un enfoque más antiguo.
Si realiza una búsqueda rápida en Google de "subtipos de tipos dependientes", encontrará un montón de trabajo agregando subtipos a tipos dependientes, principalmente a partir del año 2000. Me imagino que la metateoría es realmente desafiante, por lo que no aparece ningún subtipo de tipos dependientes en asistentes de prueba.