Je suis intéressé à obtenir une compréhension vraiment solide sur la dactylographie dépendante. J'ai lu la majeure partie de TaPL et lu (s'il n'est pas complètement assimilé ) "Types dépendants" dans ATTaPL . J'ai également lu et parcouru de nombreux articles sur la dactylographie dépendante.
De nombreuses discussions sur la théorie des types semblent porter sur l'ajout de fonctionnalités incrémentielles aux systèmes de types précédents, et non sur "quelle est la prochaine grande généralisation à partir du système de type X?". Les types dépendants semblent être la prochaine grande généralisation de System F, mais je n'ai pas encore trouvé le langage intuitif, canonique, typé de manière dépendante. Les nombreuses références au calcul de constructions (inductives) me font penser que CoC est ce langage, mais les explications du langage que j'ai vu ne me semblent pas très claires ni intuitives.
Je m'attends / suppose qu'un tel langage aurait des caractéristiques telles que: (et s'il vous plaît laissez-moi savoir si quelque chose en particulier ressort comme confus ou irréaliste)
- Abstraction généralisée (peut avoir des fonctions de n'importe quel domaine de la hiérarchie des types, en d'autres termes, type -> terme, terme -> type '' 'etc.)
- A une hiérarchie infinie de typage (termes: types: types ': types' ': ...)
- Un minimum d'éléments de base. J'imagine que le langage n'affirme qu'un seul élément pour chaque niveau. Par exemple, il pourrait affirmer que ((): Unité: Type: Type ': ...). D'autres éléments sont construits à partir de ces éléments.
- La somme et les types de produits sont dérivables.
Je cherche également une explication de cette langue qui, idéalement, traiterait:
- La relation entre abstraction et quantification dans cette langue. S'ils ne sont pas unifiés, expliquez pourquoi ils ne le sont pas.
- La hiérarchie des types infinis explicitement
Je pose cette question parce que je veux apprendre la théorie des types dépendants, mais aussi parce que je veux élaborer un guide qui, en supposant un peu d’expérience en CS, enseigne l’utilisation et la compréhension des assistants de preuve et des langages typés de manière dépendante.