Relation entre la décidabilité de la vérification de type, la décidabilité de la typabilité et une forte normalisation


8

Yo! C'est probablement une question stupide, mais je ne l'ai jamais vu écrit explicitement si, par exemple, la décidabilité de la vérification de type est équivalente à la propriété de normalisation forte. Par conséquent, je pose cette question pour clarifier toutes les relations possibles entre la vérification de type, la typabilité et une forte normalisation.

Laissez-moi vous expliquer ma motivation. Pour les théories de type (je suis intentionnellement vague ici, mais je m'intéresse principalement aux théories de type dépendantes), une forte normalisation est utilisée pour prouver la décidabilité de la vérification de type. De l'autre côté, tous les systèmes typés que je connais qui ont l'une de ces propriétés ont également l'autre. Cependant, je n'ai jamais vu explicitement déclaré qu'une forte normalisation est équivalente à la décidabilité de la vérification de type.

De façon analogue, pour prouver la typabilité, une règle habituellement (peut-être toujours), réduit un terme à une forme normale. Cependant, il est connu que la typabilité n'est pas vraie pour les théories de type dépendantes, alors qu'une forte normalisation peut tenir.

Par décidabilité de la vérification de type, je veux dire que pour tout type donné , contexte et terme non typé , il est possible de décider en un nombre fini d'étapes si est vrai ou non.AΓaΓa:A

Par décidabilité de la typabilité, je veux dire que pour tout terme donné non typé , il est possible de décider en un nombre fini d'étapes s'il existe un contexte et un type tels que est vrai.aΓAΓa:A

1) Est-il vrai que la décidabilité de la vérification de type équivaut à ce que chaque terme soit fortement normalisable?

2) Plus généralement, quelle est la relation entre la décidabilité de la vérification de type, la typabilité et une forte normalisation? Lequel implique l'autre?

Merci d'avance.

ÉDITER

Étant donné l'insatisfaction concernant le niveau de généralité de ma question (que je n'étais pas au courant), je voudrais la limiter uniquement à Pure Type Systems. Bien sûr, des commentaires ou contre-exemples supplémentaires concernant d'autres théories de type seront d'une grande utilité.


4
Sans aucune restriction? Et si nous prenons le système de types trivial où chaque terme a chaque type? C'est trivialement décidable mais pas normalisant. Je crains qu'en général, à moins que davantage de contraintes ne soient imposées au système de types, il pourrait n'y avoir aucune relation entre les notions que vous citez.
chi

@chi je suis désolé. Je ne connaissais pas le niveau de généralité de la définition d'un système typé. Je pensais à quelque chose comme un fragment de théorie de type Martin-Löf (extensionnel) avec des univers. Je pense donc que Pure Typed Systems serait la bonne limite dans ma question.
user40276

Que voulez-vous dire que le report d'expansion a été réglé? Le lien n'est plus disponible. D'après ce que je comprends jusqu'à présent, il est connu que cela est vrai pour une sous-classe de PTS (semi-complet je pense) mais c'est toujours une conjecture ouverte pour le cas général.
Saroupille

Réponses:


12

Je donnerai une réponse plus ciblée et technique à celle de Martin. Si nous nous intéressons aux théories de type dépendantes, aucune des deux directions n'est évidente, mais les deux sont généralement supposées tenir. Cependant la direction DecidableLa normalisation est ouverte, je crois, même pour des systèmes relativement bien compris, bien que nous ayons des résultats partiels. Cette question explore certains des mêmes problèmes.

Plus techniquement: un bon cadre technique pour ces questions est le réglage de Pure Type Systems dans lequel la normalisation n'implique décidabilité la vérification de type. Le résultat est du folklore, mais non trivial, car il faut trouver une stratégie pour savoir quand appliquer la règle de conversion. La stratégie évidente consiste à normaliser les types inférés avant toutes les applications de la règle d'application. Il y a des subtilités même ici, où l'exactitude d'une stratégie naturelle (plus efficace) appelée report de l'expansion était ouverte depuis un certain temps, mais a été réglée depuis.

Il existe des systèmes de types normalisants mais indécidables, notamment le système avec des types d'intersection qui saisit exactement les termes de normalisation, et doit donc être indécidable (car sinon il pourrait être utilisé pour identifier les termes de normalisation). Il serait tentant de dire ici que le système est défectueux dans le sens où il n'est pas dirigé par type , c'est-à-dire que les termes ne contiennent pas suffisamment d'informations pour déterminer le type.

Maintenant l'inverse, qui suggérerait que les systèmes non normalisateurs sont indécidables, est loin d'être évident: il a même été ouvert pendant un certain temps pour le célèbre Type:Typesystème de Martin-Löf! Ce cas a été résolu en donnant un exemple de combinateur de boucle, qui permet d'écrire des calculs arbitraires.

Cependant, le problème général reste ouvert pour les systèmes généraux de type pur, bien qu'il soit largement admis qu'il soit vrai, et certains résultats partiels ont été montrés dans ce sens, par exemple ici .


Merci pour votre réponse. Qu'en est-il de la décidabilité de la typabilité?
user40276

1
@ user40276 c'est une question assez différente. Avec les annotations sur les abstractions, la typabilité et l'inférence de type sont également difficiles. Sans annotations, les choses deviennent indécidables presque immédiatement, quelle que soit la résiliation, comme expliqué dans les réponses ici: cs.stackexchange.com/questions/12691/…
cody

4

(1) Faux. Exemple de compteur: Java, Scala, Haskell, ...

(2) Aucune relation générale ne tient, dépend vraiment des détails du système de langue / dactylographie. Il y a une exception: pour les langages sains et les systèmes de dactylographie, j'imagine que la décidabilité de l'inférence de type (que je suppose être ce que vous entendez par "typabilité") implique trivialement la vérification de type. Mais je ne serais pas surpris si l'on pouvait concocter un système fou où même cette implication ne tient pas.


Merci pour votre réponse. La typabilité fait référence au processus de recherche d'un type tel qu'un terme lui appartient et non à tous ces types.
user40276

Quel est le lien avec le concept conventionnel d'inférence de type?
Martin Berger

Un exemple spécifique où l'inférence de type décidable n'implique pas de vérification de type décidable: le calcul lambda polymorphe de rang 2. Il existe des algorithmes d'inférence pour ce langage, mais ils ne sont pas stables sous l'ajout de signatures de type. Autrement dit, nous n'avons pas que Γ⊢a: A implique Γ⊢ (a :: A): A où j'utilise :: pour la formulation du langage objet de "a a type A". Ainsi, même si nous pouvons déduire A pour un, nous ne pouvons pas toujours vérifier un contre A.
wren romano

@wrenromano Intéressant. Le système F a une inférence et une vérification indécidables, et le calcul lambda polymorphe de rang 2 est un sous-système (en quelque sorte). Avez-vous une référence pour ce phénomène?
Martin Berger

Désolé. Mon commentaire est faux comme je l'ai écrit, il devrait être: "La typabilité se réfère au processus de recherche d'un type tel que le terme donné lui appartient et pas à tous ces types". La décidabilité de l'inférence de type implique la décidabilité de la typabilité. Je suis presque sûr que l'affirmation réciproque ne tient pas, mais je ne connais pas de contre-exemple.
user40276
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.