Estoy interesado en obtener una comprensión realmente sólida de la escritura dependiente. He leído la mayor parte de TaPL y he leído (si no está completamente absorbido) 'Tipos dependientes' en ATTaPL . También he leído y hojeado un montón de artículos sobre mecanografía dependiente.
Muchas discusiones de teoría de tipos parecen centrarse en agregar características incrementales a los sistemas de tipos anteriores, no "¿cuál es la próxima gran generalización del sistema de tipos X?". Los tipos dependientes parecen ser la próxima gran generalización del Sistema F, pero aún no he encontrado el lenguaje intuitivo, canónico y de tipo dependiente. Las muchas referencias al cálculo de construcciones (inductivas) me hacen pensar que CoC es ese lenguaje, pero las explicaciones del lenguaje que he visto no me parecen muy claras o intuitivas.
Estoy esperando / adivinando que dicho lenguaje tendría características como: (y por favor avíseme si algo en particular resulta confuso o poco realista)
- Abstracción generalizada (puede tener funciones de cualquier dominio en la jerarquía de tipos a otra, tipo -> término, término-> tipo '' 'etc.)
- Tiene una jerarquía infinita de escritura (términos: tipos: tipos ': tipos' ': ...)
- Un número mínimo de elementos básicos. Me imagino que el lenguaje solo afirma un elemento único para cada nivel. Por ejemplo, podría afirmar que ((): Unidad: Tipo: Tipo ': ...). Otros elementos se construyen a partir de estos elementos.
- Los tipos de suma y producto son derivables.
También estoy buscando una explicación de ese lenguaje que idealmente discutiría:
- La relación entre abstracción y cuantificación en ese lenguaje. Si no están unificados, explique por qué no están unificados.
- La jerarquía de tipos infinitos explícitamente
Estoy haciendo esta pregunta porque quiero aprender la teoría del tipo dependiente, pero también porque quiero elaborar una guía que, suponiendo un poco de experiencia en CS, enseñe el uso y la comprensión de los asistentes de prueba y los idiomas mecanografiados de forma dependiente.