Si un système de types peut attribuer un type à λ x . x x
, ou à la non-terminaison (λx . x x) (λ x . x x)
, alors ce système est-il incohérent en conséquence? Tous les types de ce système sont-ils habités? Pouvez-vous prouver faux?
Si un système de types peut attribuer un type à λ x . x x
, ou à la non-terminaison (λx . x x) (λ x . x x)
, alors ce système est-il incohérent en conséquence? Tous les types de ce système sont-ils habités? Pouvez-vous prouver faux?
Réponses:
Assurément, assigner un type à n'est pas suffisant pour l'incohérence: dans le système , on peut dériver
d'une manière assez simple (c'est un bon exercice!). Cependant, ne peut pas être bien typé dans ce système, en supposant une cohérence arithmétique de second ordre, car cela implique que tous ces termes bien typés se normalisent.
De plus, le système est cohérent. Cela résulte de la normalisation soit, comme on peut montrer que tout terme de type ∀ X . X ne peut pas avoir une forme normale, ou un argument beaucoup plus simple, dans lequel chaque type est attribué un ensemble, que ce soit ∅ ou { ∅ } et il peut être démontré que tous les types dérivables sont affectés { ∅ } , et ∀ X . X est affecté ∅ (et n'est donc pas dérivable).
Ce dernier argument peut être effectué en arithmétique de premier ordre. Le fait que peut être bien typé dans un système cohérent peut être considéré comme quelque peu dérangeant et est une conséquence de l' imprédicativité des systèmes . Il ne devrait pas être surprenant que certaines personnes remettent en question la fiabilité des systèmes logiques imprédicatifs. Cependant, aucune incohérence n'a été constatée jusqu'à présent dans de tels systèmes.
D'un autre côté, pour pouvoir affirmer de manière plus générale que ne peut pas être bien typé dans un système cohérent, vous devez avoir suffisamment de "structure logique" dans votre système de saisie pour pouvoir définir clairement la cohérence. Ensuite, vous devez montrer qu'un terme sans forme normale de tête (comme celui ci-dessus) peut avoir n'importe quel type, ce qui n'est pas évident non plus!
Plus de détails peuvent être trouvés dans ma réponse à une question connexe: /cstheory//a/31321/3984