# Théorème de Herbrand

En logique, le théorème de Herbrand, publié en 1930 par Jacques Herbrand, établit un lien entre la logique du premier ordre et la logique propositionnelle (qui peut-être vu comme la logique d'ordre zéro). La validité (ou prouvabilité) d’une formule du premier ordre se ramène à la validité (ou prouvabilité) d'un ensemble fini de formules propositionnelles.
Alors qu'il est possible de déterminer algorithmiquement si une formule propositionnelle est démontrable ou pas, on sait — depuis les travaux de Gödel, Tarski, Church, Turing et autres — que la même question pour les formules du premier ordre est indécidable. Le théorème de Herbrand montre qu’elle est cependant semi-décidable : bien qu’il n’existe pas d’algorithme qui détermine si une formule donnée est prouvable ou pas, il existe une procédure qui résout partiellement la question en répondant « oui » si et seulement si la formule donnée est prouvable (pour certaines formules non prouvables, le calcul ne s'arrête pas).

## Formules prénexes et formules universelles

Une formule du calcul des prédicats est prénexe si tous les quantificateurs qu'elle contient se trouvent au début de la formule. Toute formule admet une formule prénexe équivalente. Par exemple, la formule $(\exists x\;P(x))\to (\exists y\;Q(y))$ est équivalente successivement à $\lnot (\exists x\;P(x))\lor (\exists y\;Q(y))$, $(\forall x\;\lnot P(x))\lor (\exists y\;Q(y))$, et enfin $\forall x\;\exists y\;\lnot P(x)\lor Q(y)$ (où $\to$, $\lnot$, $\lor$, $\exists$, $\forall$ désignent respectivement l'implication, la négation, la disjonction, le quantificateur existentiel et le quantificateur universel, et $P$ et $Q$ sont des prédicats unaires).
Une formule prénexe est universelle si elle ne possède que des quantificateurs universels (symbole $\forall$). Il est possible d'associer à une formule quelconque une formule universelle en appliquant une transformation appelée skolémisation. Elle consiste à introduire de nouveaux symboles de fonction pour chaque quantificateur existentiel (symbole $\exists$). Par exemple, la forme skolémisée de $\forall x\;\exists y\;(\lnot P(x)\lor Q(y))$ est $\forall x\;\lnot P(x)\lor Q(f(x))$. Intuitivement, si pour chaque $x$, il existe $y$ tel qu'une propriété $R(x,y)$ soit vérifiée, alors on peut introduire une fonction $f(x)=y$ telle que, pour tout $x$, $R(x,f(x))$ est vérifiée. On montre que la formule initiale admet un modèle si et seulement si sa forme skolémisée en admet un. Autrement dit, la formule initiale est satisfiable si et seulement si sa forme skolémisée l'est. De même, la formule initiale est insatisfiable si et seulement si sa forme skolémisée l'est, et donc, par complétude, la négation de la formule initiale est prouvable si et seulement si la négation de sa forme skolémisée l'est.

## Le théorème de Herbrand

Soit F une formule universelle (ou un ensemble de telles formules), par exemple $\forall x,\forall y,P(x,y)$ où P est un prédicat, et soit a$_1$, …, a$_n$, … une suite de termes. Considérons les trois propriétés suivantes.
* F est cohérente, c’est‐à‐dire qu’on ne peut pas déduire une contradiction de l'hypothèse F ; autrement dit, ¬F n'est pas prouvable dans un système de déduction du calcul des prédicats — telle la déduction naturelle par exemple —, ce qu'on note $\not \vdash \lnot F$.
* F est satisfiable, c’est‐à‐dire qu’il existe un modèle dans lequel F est vraie, ce qu'on note $\not \vDash \lnot F$.
* Pour tout entier n, la formule $\bigwedge _{1\leqslant i,j\leqslant n}P(a_{i},a_{j})$ est satisfiable, ce qu’on note $\not \vDash \lnot Q(a_{1},...,a_{n})$ où Q(a$_1$, …, a$_n$) est cette proposition.
Le théorème de complétude de Gödel énonce l'équivalence entre 1) et 2). Par ailleurs, 2) entraîne 3) car tout modèle qui vérifie 2) permet de déduire des modèles qui vérifient 3). Le théorème de Herbrand énonce que, réciproquement, 3) entraîne 2) lorsque les a$_i$ décrivent un domaine particulier, le domaine de Herbrand. On constate que, dans la formulation de 3), les quantificateurs ont disparu dans les formules à satisfaire, et que les formules à prouver sont alors de simples propositions du calcul propositionnel.
De manière duale, en posant G = ¬F et R = ¬Q, on obtient l’équivalence des trois propriétés suivantes.
* G est prouvable, c’est‐à‐dire qu’il existe une démonstration de G dans un système de déduction du calcul propositionnel, ce qu'on note $\vdash G$.
* G est valide, c’est‐à‐dire que G est vraie dans tout modèle, ce qu'on note $\vDash G$.
* Il existe un entier n pour lequel R(a$_1$, …, a$_n$) est valide, ce qu’on note $\vDash R(a_{1},...,a_{n})$.
G est alors un théorème.
Si la formule du calcul des prédicats F n'est pas satisfiable (c’est‐à‐dire si G est un théorème), alors en vérifiant Q(a$_1$, …, a$_n$) pour n=1, puis n=2, etc., on finira par trouver un entier n tel que la formule propositionnelle Q(a$_1$, …, a$_n$) ne soit pas satisfiable, et réciproquement.
Par contre, si F est satisfiable (si G n'est pas un théorème), alors pour tout n la proposition Q(a$_1$, …, a$_n$) sera satisfiable et le processus de calcul ne se terminera pas, sauf dans le cas particulier où les termes a$_i$ sont en nombre fini.
Cela illustre le fait que l'ensemble des formules non satisfiables et l'ensemble des théorèmes sont récursivement énumérables, mais que le calcul des prédicats n'est pas décidable.

## Exemples

Le domaine de Herbrand du modèle est défini au moins par un élément constant (afin d'être non vide) et est constitué de tous les termes que l'on peut former à partir des constantes et des fonctions utilisées dans les formules considérées. On définit un modèle de Herbrand en attribuant la valeur vraie à certains prédicats définis sur ces termes.
Exemple 1 : On considère la formule $F=\forall x,P(x)\land \lnot P(a)$, où a est une constante. Le domaine de Herbrand est constitué du singleton $\{a\}$. On forme alors la formule $Q_{1}=P(a)\land \lnot P(a)$ qui est fausse, donc F est réfutable (sa négation est prouvable).
Exemple 2 : On considère la formule $F=\forall x,(P(x)\lor Q(x))\land \lnot P(a)\land \lnot Q(b)$. Le domaine de Herbrand est $\{a,b\}$. On forme alors $Q_{1}=(P(a)\lor Q(a))\land \lnot P(a)\land \lnot Q(b)$ qui est vraie dans un modèle où l'on donne la valeur vraie à $Q(a)$, puis on forme $Q_{2}=Q_{1}\land (P(b)\lor Q(b))\land \lnot P(a)\land \lnot Q(b)$ qui est vraie dans un modèle où l'on donne la valeur vraie à $\{Q(a),P(b)\}$. Ayant épuisé le domaine de Herbrand, le calcul se termine et F est satisfiable dans le modèle précédemment défini.
Exemple 3 : On considère la formule $F=\forall x,\forall y,P(x)\land \lnot P(f(y))$. Le domaine de Herbrand est constitué de $\{a,f(a),f^{2}(a),...,f^{n}(a),...\}$. On forme alors $Q_{1}=P(a)\land \lnot P(f(a))$ qui possède un modèle en attribuant la valeur vraie à P(a) mais fausse à P(f(a)). Puis, en prenant les deux premiers éléments du domaine a et f(a), on forme $Q_{2}=P(a)\land \lnot P(f(a))\land P(a)\land \lnot P(f(f(a)))\land P(f(a))\land \lnot P(f(a))\land P(f(a))\land \lnot P(f(f(a)))$ qui ne peut posséder de modèle à cause de la conjonction fausse $P(f(a))\land \lnot P(f(a))$. Donc F ne possède pas de modèle. F est réfutable et sa négation est prouvable.
Exemple 4 : On considère la formule $G=(\exists x,\forall y,P(x,y))\to (\forall y,\exists x,P(x,y))$ dont on veut montrer qu'il s'agit d'un théorème. Après avoir renommé les variables x et y dans la deuxième partie de G afin d'éviter d'avoir des variables liées de même nom, on obtient une forme prénexe équivalente à G :
    $(\exists x,\forall y,P(x,y))\to (\forall z,\exists t,P(t,z))$
    $\lnot (\exists x,\forall y,P(x,y))\lor (\forall z,\exists t,P(t,z))$
    $(\forall x,\exists y,\lnot P(x,y))\lor (\forall z,\exists t,P(t,z))$
    $\forall x,\exists y,\forall z,\exists t,\lnot P(x,y)\lor P(t,z)$
La formule prénexe F équivalente à ¬G est :
    $\exists x,\forall y,\exists z,\forall t,P(x,y)\land \lnot P(t,z)$
dont la forme skolémisée est :
    $\forall y,\forall t,P(a,y)\land \lnot P(t,f(y))$
La formation des formules Q$_1$ en prenant pour (y, t) le couple (a, a) puis de Q$_2$ en prenant (y, t) = (f(a), a) conduit à $P(a,a)\land \lnot P(a,f(a))\land P(a,f(a))\land \lnot P(a,f(f(a)))$ qui est fausse dans tout modèle. F est réfutable et G est un théorème.
Exemple 5 : On considère la formule $G=(\forall x,\exists y,P(x,y))\to (\exists y,\forall x,P(x,y))$. Par un procédé comparable à l'exemple précédent, on obtient pour forme prénexe équivalente à G : $\exists x,\forall y,\exists z,\forall t,\lnot P(x,y)\lor P(t,z)$. La formule prénexe F équivalente à $\lnot G$ est :
    $\forall x,\exists y,\forall z,\exists t,P(x,y)\land \lnot P(t,z)$
dont la forme skolémisée est :
    $\forall x,\forall z,P(x,f(x))\land \lnot P(g(x,z),z)$
Elle est satisfiable en donnant la valeur vraie à tout P(u, f(u)) et fausse à tout P(g(u, v), v), où u et v décrivent le domaine de Herbrand $\{a,f(a),g(a,a),f(f(a)),f(g(a,a)),g(a,f(a)),...\}$, et en donnant une valeur arbitraire aux autres prédicats. Cependant, le calcul successif des formules correspondantes Q$_1$, Q$_2$… ne se termine pas. F est satisfiable et donc G n'est pas un théorème, mais la démarche précédente ne permet pas de le montrer par un calcul en un nombre fini d'étapes.