Ainsi, il suffit de trouver une substitution s qui instancie le séquent donné G ¾® D en un que nous pouvons démontrer en LK0 sans coupure. Au lieu de deviner s, nous le calculons en nous laissant guider par l'expansion du tableau. Remarquons que les a-règles et les b-règles (voir figure 1) sont inchangées par notre connaissance ou notre ignorance de la substitution à appliquer aux formules sur le chemin courant. Le seul changement est dans la façon de clore des chemins, c'est-à-dire dans la façon d'utiliser la règle Ax : au lieu de clore un chemin G ¾® D en trouvant une formule qui soit à la fois dans G et D, nous devons trouver une formule F1 dans G et une formule F2 dans D telles que F1s = F2s pour une certaine substitution s. Lorsque F1 et F2 sont des formules atomiques, c'est simplement le problème de l'unification. Nous devons ensuite appliquer la substitution s que nous avons trouvée au reste de la preuve en cours de construction avant de continuer à clore d'autres chemins. Expliquons cela plus en détail.
(a-règles) (b-règles)
a a1 a2 +(XÙ Y) +X +Y -(XÚ Y) -X -Y -(XÞ Y) +X -Y +(¬ X) -X -(¬ X) +X
b b1 b2 -(XÙ Y) -X -Y +(XÚ Y) +X +Y +(XÞ Y) -X +Y
Figure 1: Règles de tableaux
prove
.
prove
prend deux arguments, une liste l de formules
signées (le chemin courant) et la substitution courante s.
prove
(l,s) retourne soit une nouvelle substitution
s' qui clôt tous les chemins obtenus par expansion à partir
de ls, ou un symbol spécial échec, qui
signifie qu'il n'existe aucune substitution vérifiant cette
propriété:prove
(F1::l',s) retourne échec,
retourner échec; sinon, soit s2 la
substitution retournée, alors si
prove
(F2::l',s2) retourne échec, retourner échec; sinon, ..., soit
sn égale
prove
(Fn-1::l',sn-1), et retourner
prove
(Fn::l',sn).
prove
(F1::...::Fn::l',s).
$ x· $ y· $ z· |
(P(f(y),z)Ù P(y,f(z)))Ú P(f(a),f(a)) |
Þ P(x,f(y))Ú P(f(x),y) |
+(P(f(y),z)Ù P(y,f(z)))Ú P(f(a),f(a)) |
Þ P(x,f(y))Ú P(f(x),y) |