Pour les systèmes sans types dépendants, comme le système de type Hindley-Milner, les types correspondent à des formules de logique intuitionniste. Là, nous savons que ses modèles sont des algèbres de Heyting, et en particulier, pour réfuter une formule, nous pouvons nous limiter à une algèbre de Heyting où chaque formule est représentée par un sous-ensemble ouvert de .
Par exemple, si nous voulons montrer que n'est pas habité, nous construisons un mappage partir de formules pour ouvrir des sous-ensembles de en définissant: \ begin {align} \ phi (\ alpha) & = (- \ infty, 0) \ end {align} Ensuite \ begin {align} \ phi (\ alpha \ rightarrow \ bot) & = \ mbox {int} ([ 0, \ infty)) \\ & = (0, \ infty) \\ \ phi (\ alpha \ lor (\ alpha \ rightarrow \ bot)) & = (- \ infty, 0) \ cup (0, \ infty ) \\ & = \ mathbb {R} \ setminus {0}. \ end {align} Cela montre que la formule originale ne peut pas être prouvable, car nous avons un modèle où ce n'est pas vrai, ou de manière équivalente (par isomorphisme de Curry-Howard) le type ne peut pas être habité.ϕ R ϕ ( α )ϕ ( α → ⊥ )
Une autre possibilité serait d'utiliser des trames Kriepke .
Existe-t-il des méthodes similaires pour les systèmes de types dépendants? Comme une généralisation des algèbres de Heyting ou des cadres Kripke?
Remarque: je ne demande pas de procédure de décision, je sais qu'il ne peut y en avoir. Je demande juste un mécanisme qui permette de constater l'improvisibilité d'une formule - pour convaincre quelqu'un qu'elle n'est pas prouvable.