Dans le chapitre 1 et l'annexe A du livre Hott , plusieurs familles de types primitifs sont présentées (types d'univers, types de fonctions dépendantes, types de paires dépendantes, types de coproduits, type vide, type d'unité, type de nombre naturel et types d'identité) pour former la base pour la théorie des types d'homotopie.
Cependant, il semble que, compte tenu des types d'univers et des types de fonctions dépendants, vous pouvez construire tous ces autres types "primitifs". Par exemple, le type Empty pourrait à la place être défini comme
ΠT:U.T
Je suppose que les autres types pourraient également être construits de manière similaire à la façon dont ils sont en CC pur , (c'est-à-dire simplement dériver le type de la partie inductive de la définition).
Beaucoup de ces types sont explicitement rendus redondants par les types inductifs / W qui sont introduits dans les chapitres 5 et 6. Mais les types inductifs / W semblent être une partie facultative de la théorie car il y a des questions ouvertes sur la façon dont ils interagissent avec HoTT (à au moins au moment où le livre est sorti).
Je suis donc très confus quant à la raison pour laquelle ces types supplémentaires sont présentés comme primitifs. Mon intuition est qu'une théorie fondamentale devrait être aussi minimale que possible, et redéfinir un type vide redondant comme primitif dans la théorie semble très arbitraire.
Ce choix a-t-il été fait
- pour quelques raisons métathéoriques que je ne connais pas?
- pour des raisons historiques, faire ressembler la théorie des types à des théories de type passées (qui n'essayaient pas nécessairement d'être fondamentales)?
- pour "l'utilisabilité" des interfaces informatiques?
- pour un avantage dans la recherche de preuves que je ne connais pas?
Similaire à: Spécification minimale de la théorie des types de Martin-Löf , /cs/82810/reducing-products-in-hott-to-church-scott-encodings/82891#82891
la source
Réponses:
Permettez-moi d'expliquer pourquoi l'encodage suggéré du type vide ne fonctionne pas. Nous devons être explicites sur les niveaux de l'univers et ne pas les balayer sous le tapis.
Quand les gens disent "le type vide", cela peut signifier deux choses:
Un seul type qui est vide par rapport à tous les types. Un tel type a la règle d'élimination: pour chaque n et le type de famille A : E → U n , il y a une carte e n , A : E → A .E n A:E→Un en,A:E→A
Une famille de types , un pour chaque niveau d'univers k , tels que E k est "le type vide de U k ". Un tel type doit satisfaire E k : U k , évidemment, et aussi: pour chaque type de famille A : E k → U k , il y a une carte e k , A : E k → A .Ek k Ek Uk Ek:Uk A:Ek→Uk ek,A:Ek→A
Sans aucune réserve, lorsque les gens disent "type vide", ils attendent la première signification ci-dessus.
Comment pouvons-nous obtenir ? Un premier essai pourrait être quelque chose comme E = Π ( T : U )E
mais c'est précisément le genre de balayage sous le tapis qui crée la confusion. Nous devons noter les niveaux universels explicites. Si nous écrivons quelque chose comme
E k = Π ( T : U k )
Un autre essai est mais maintenant vous devez expliquer ce que " Π n " est censé être. Vous pourriez être tenté de dire qu'il existe un type L de niveaux universels, et donc E = Π ( n : L )
Des univers imprédicatifs peuvent être arrangés. Cependant, un célèbre théorème de Thierry Coquand (si je ne me trompe pas), montre qu'avoir deux univers imprédicatifs, l'un contenu dans l'autre, conduit à une contradiction.
La morale de l'histoire est la suivante: axiomatisez directement le type vide et arrêtez de coder les choses.
la source
Vous posez plusieurs questions similaires mais distinctes.
Pourquoi le livre HoTT n'utilise-t-il pas les encodages Church pour les types de données?
Les codages d'église ne fonctionnent pas dans la théorie de type Martin-Löf, pour deux raisons.
Deuxièmement, même si vous avez défini des types de données comme les nombres naturels avec des codages Church, pour faire des preuves avec ces types, vous avez besoin de principes d'induction pour prouver les choses à leur sujet. Pour dériver les principes d'induction des encodages de Church, vous devez utiliser un argument basé sur la paramétricité de Reynolds, et la question de savoir comment intérioriser les principes de paramétricité dans la théorie des types n'est toujours pas entièrement résolue. (L'état de l'art est Nuyts, Vezzosi et Devriese's ICFP 2017 paper Parametric Quantifiers for Dependent Type Theory - notez que c'est bien après l'écriture du livre HoTT!)
Ensuite, vous demandez pourquoi la fondation n'est pas minimale. C'est en fait l'une des caractéristiques sociologiques distinctives des fondements de la théorie des types - les théoriciens des types considèrent avoir un petit ensemble de règles comme une commodité technique, sans grande signification fondamentale. Il est de loin, beaucoup plus important d'avoir le bon ensemble de règles, plutôt que le plus petit ensemble de règles.
Nous développons des théories de types à utiliser par les mathématiciens et les programmeurs, et il est très, très important que les preuves faites dans la théorie des types soient celles que les mathématiciens et les programmeurs considèrent comme étant faites de la bonne manière. En effet, les arguments que les mathématiciens considèrent généralement comme ayant un bon style sont généralement structurés en utilisant les principes algébriques et géométriques clés du domaine d'étude. Si vous devez utiliser des encodages complexes, une grande partie de la structure est perdue ou obscurcie.
C'est pourquoi même les présentations théoriques de type de la logique classique propositionnelle donnent invariablement tous les connecteurs logiques, même si elles sont formellement équivalentes à une logique avec juste NAND. Bien sûr, tous les connecteurs booléens peuvent être encodés avec NAND, mais cet encodage obscurcit la structure de la logique.
la source