Le chapitre précédent nous a permis d’introduire les bases de la logique du premier ordre. Nous avons principalement vu la structure des termes et des formules et comment utiliser ce langage pour modéliser des situations ou problèmes. La vérité d’une formule logique dépend du monde dans lequel on l’interprète. Nous revenons ici sur la notion d’interprétation de manière plus détaillée et définissons la notion de conséquence logique et d’équivalence. Nous étudierons ensuite quelques modèles particuliers.
Nous nous plaçons dans la suite dans un langage logique sur une signature (F,R) avec F l’ensemble des symboles de fonctions qui servent à construire les termes et R l’ensemble des symboles de prédicat qui permettent de construire les formules atomiques.
On utilise également la terminologie de modèle ou de structure pour parler de l’interprétation d’une signature.
Dans la définition ci-dessus, on peut regarder de plus près le cas des symboles d’arité 0.
Un symbole de fonction d’arité 0 est aussi appelé constante et un symbole de prédicat d’arité 0 est aussi appelé variable propsitionnelle.
Leur interprétation rentre dans le cas général. En effet l’ensemble D0 contient exactement un élément, à savoir le n-uplet () avec aucune valeur à l’intérieur.
Du point de vue informatique, on peut voir les différentes interprétations d’une même signature comme les différentes implémentations d’une même bibliothèque. L’implantation d’un symbole de prédicat est une fonction booléenne sur les termes.
On peut proposer une interprétation de cette signature. Il faut décider comment on va représenter un rationnel, on choisit de le faire en prenant un couple (p,q)∈ℤ×ℕ∖{0} formé d’un entier relatif en numérateur et d’un entier naturel non nul en dénominateur. Le domaine de l’interprétation est donc D =def ℤ×ℕ∖{0}. D’autres choix sont possibles comme d’imposer que la fraction soit réduite (pas de diviseur commun du dénominateur et du numérateur), ou encore avoir un entier relatif en dénominateur.
On pourra définir alors l’interprétation de chacun des symboles de notre signature :
|
|
Dans le cas propositionnel (sans quantificateur), il n’y a pas de symboles de fonctions et tous les symboles de prédicats sont d’arité 0, donc des variables propositionnelles. Une interprétation revient donc à fixer une valeur booléenne pour chacune de ces variables. S’il y a n variables propositionnelles alors il y a 2n interprétations possibles. On peut les énumérer toutes et calculer la valeur de vérité de la formule propositionnelle pour chacune de ces interprétations, on retrouve ainsi les tables de vérité.
Se donner une interprétation de la signature est une étape nécessaire mais pas suffisante pour pouvoir définir la valeur de vérité d’une formule quelconque. En effet celle-ci peut contenir des variables libres auxquelles il faut aussi attribuer une valeur. Dans la suite, on note X l’ensemble des variables qui apparaissent dans les termes et les formules.
Il ne faut pas confondre une substitution qui associe un terme syntaxique à une variable avec un environnement qui associe à une variable une valeur sémantique du domaine d’interprétation.
Pour faire une analogie informatique, la substitution est analogue à une opération de remplacement que l’on peut faire dans un éditeur, alors que l’environnement va correspondre à l’état de la mémoire pour chaque variable du programme au moment de son exécution.
Etant données une signature (F,R) et une interprétation I =def (D,(fI)f∈F,(RI)R∈R) de cette signature (que l’on supposera fixée dans la suite) on peut définir en fonction d’un environnement ρ, la valeur d’un terme et d’une formule.
valI(ρ,x)=ρ(x) valI(ρ,f(t1,…,tn))=fI(valI(ρ,t1),…,valI(ρ,tn)) |
|
On notera I,ρ⊨ A lorsque la formule A est vraie dans l’interprétation I et l’environnement ρ, c’est-à-dire lorsque valI(ρ, A)=V. Si la formule A est close, alors sa valeur dans une interprétation ne dépend pas de l’environnement et on écrira simplement I⊨ A pour indiquer que A est vraie dans l’interprétation I (et n’importe quel environnement).
Preuve: Ces propriétés sont une simple reformulation de la définition de la valeur d’une formule et du fait que I,ρ⊨ A est défini comme valI(ρ,A)=V □
Contrairement au cas de la logique propositionnelle, on ne peut pas en général calculer cette valeur de vérité car dans le cas des quantificateurs, il faut a priori raisonner sur l’ensemble des objets d∈D qui peut être infini.
On modélise une telle base de données en logique du premier ordre. On suppose que la signature est juste composée d’un ensemble de constantes pour représenter les individus, par exemple Alice, Bob, Charles, Denis, Eric, Fanny, Georges et Hélène et de deux symboles de relation binaire parent et fratrie ainsi qu’un symbole d’égalité binaire. La relation parent(x,y) exprime que x est le père ou la mère de y et fratrie(x,y) exprime que x et y sont dans la même fratrie.
Le modèle peut utiliser comme domaine l’ensemble des constantes
{Alice,Bob,Charles,Denis,Eric,Fanny,Georges,Hélène} |
ou bien une autre représentation comme des entiers par exemple, ou des caractères.
On va prendre ici D =def {A,B,C,D,E,F,G,H}. On interprète chaque constante par un élément de D. Il serait parfaitement légitime de choisir une interprétation qui associe le même élément du domaine à deux constantes différentes du langage (par exemple si un individu est connu sous deux identités différentes). Ici on choisit de représenter chaque constante du langage par un élément différent du domaine.
|
On a ensuite le choix sur l’interprétation des relations, par exemple :
|
On s’attend à ce que cette interprétation satisfasse les propriétés suivantes :
On vérifie que la définition de la valeur de vérité d’une formule est bien compatible avec l’opération de renommage des variables liées dans les formules. C’est-à-dire que si y∉VL(P) et P[x← y] est bien définie alors valI(ρ,(∀ x, P))=valI(ρ,(∀ y, P[x← y])) et valI(ρ,(∃ x, P))=valI(ρ,(∃ y, P[x← y]))
Preuve: La preuve se fait sans difficulté par récurrence sur la structure du terme puis de la formule. □
En particulier pour un terme clos ou une formule close, la valeur est indépendante de l’environnement et on écrira simplement valI(P) au lieu de valI(ρ,P). On omettra également l’indice I lorsque l’interprétation est implicite dans le contexte.
La propriété ci-dessous fait le lien entre substitution et environnement. On supose que l’on a une formule A qui contient une variable libre x et un terme t. Remplacer x par t dans A puis calculer la valeur de A[x← t] revient à d’abord évaluer le terme t en une valeur v puis calculer la valeur de A (qui contient la variable x) dans un environnement où x a la valeur v.
valI(ρ,P [x← t]) = valI(ρ+{x↦valI(ρ,t)},P) |
Preuve: La preuve se fait en montrant d’abord un résultat analogue pour les termes.
Soit u un terme, on a :
valI(ρ,u [x← t]) = valI(ρ+{x↦valI(ρ,t)},u) |
Ce premier résultat se montre par simple récurrence sur la structure du terme u, de la manière suivante :
valI(ρ,t) = valI(ρ+{x↦valI(ρ,t)},x)=(ρ+{x↦valI(ρ,t)})(x) |
valI(ρ,y) = valI(ρ+{x↦valI(ρ,t)},y) |
valI(ρ,c) = valI(ρ+{x↦valI(ρ,t)},c) |
valI(ρ,f(u1 [x← t],…,un [x← t])) = valI(ρ+{x↦valI(ρ,t)},f(u1,…,un)) |
|
On montre ensuite par récurrence sur la structure de la formule P que pour n’importe quel environnement ρ, on a
valI(ρ,P [x← t]) = valI(ρ+{x↦valI(ρ,t)},P) |
On ne montre ici que le cas des formules atomiques R(u1,…,un) et le cas d’une formule quantifiée ∀ x, A.
|
Pour calculer la valeur d’une formule ∀ z,B dans un environnement ρ′ quelconque, on fixe un élement d∈ D et on regarde la valeur de la formule B dans l’environnement ρ′+{z↦d}.
On se donne donc un environnement ρ et pour calculer valI(ρ,∀ z,(A[x← t])) on se donne d∈ D et on calcule
|
Donc pour tout d, valI(ρ+{z↦d},A[x← t]) est vrai si et seulement si valI((ρ+{x↦valI(ρ,t)})+{z↦d},A) est vrai. On en déduit que valI(ρ,∀ z,(A[x← t])) est vrai si et seulement si valI(ρ+{x↦valI(ρ,t)},∀ z,A) est vrai, qui est le résultat souhaité.
Le même raisonnement permet de conclure dans le cas d’un quantificateur existentiel. La seule subtilité dans la preuve est que l’hypothèse de récurrence est appliquée à l’environnement ρ+{z↦d} au lieu de ρ et donc que la propriété que l’on cherche à montrer par récurrence sur la formule P doit bien inclure cette possibilité de faire varier l’environnement.
□
La vérité d’une formule se définit par rapport à une interprétation qui fixe le sens des symboles de fonction et de prédicats et un environnnement qui détermine la valeur des variables libres. Lorsqu’on a juste une formule, elle peut être vraie dans toutes les interprétations et tous les environnements possibles, dans aucunes et aucuns environnement ou bien être vraie dans certaines interprétations et certains environnements et fausse dans d’autres. Si de plus la formule a des variables libres, sa vérité peut dépendre de l’environnement.
Une formule valide est a fortiori satisfiable mais le contraire est faux. Par contre la négation nous permet de passer de la validité à la satisfiabilité.
Preuve: La formule A est valide si et seulement si la formule A est vraie dans toute interprétation de la signature et tout environnement. Ceci est équivalent à dire que la formule ¬ A est fausse dans toute interprétation de la signature et tout environnement, ce qui est la définition de insatisfiable. □
La validité et l’insatisfiabilité qui sont des propriétés de toutes les interprétations ne changent pas lorsque l’on effectue une substitution dans une formule ou un ensemble de formules.
Les réciproques sont fausses. Si on prend une signature avec un prédicat unaire Q et une constante c. La formule Q(x)⇒ Q(c) n’est pas valide. En effet il suffit de prendre une interprétation avec deux éléments 0,1 on interprète la constante c par la valeur 0. On choisit d’avoir QI(1) vrai et QI(0) faux. Si Q(x)⇒ Q(c) était valide alors la formule serait vraie dans l’interprétation ainsi définie et avec un environnement dans lequel x a la valeur 1, ce qui n’est pas le cas. Maintenant si on substitue la variable x par la constante c on obtient la formule Q(c)⇒ Q(c) qui est évidemment valide.
On a le même comportement avec l’insatisfiabilité en choisissant comme formule P la formule Q(x)∧¬ Q(c). La formule P elle-même est satisfiable (prendre la même interprétation que précédemment). Par contre si on remplace x par la constante c on obtient la formule Q(c)∧¬ Q(c) qui est évidemment insatisfiable.
La satisfiabilité simple n’est pas préservée, au contraire on a que si P[x← t] est satisfiable alors P est satisfiable mais le contraire est faux comme le montre l’exemple précédent.
Lorsqu’on écrit une formule comme A∨ ¬ A, le symbole A peut correspondre à une variable mathématique qui représente n’importe quelle formule de la logique, ou au contraire le symbole A peut être une variable propositionnelle (symbole de prédicat d’arité 0), auquel cas on a exactement une formule syntaxique qui est différente d’autres formules de même format comme ⊥∨ ¬ ⊥. Nous allons montrer que l’ambiguité entre ces deux points de vue ne pose pas de problème, car on peut passer de l’un à l’autre sans difficulté.
Généralisons l’exemple de A∨ ¬ A et supposons que l’on a une formule P dans laquelle il y a une variable propositionnelle X. On suppose que P est valide et on veut montrer que si on remplace la variable X par n’importe quelle formule A alors la formule obtenue reste valide.
On commence par définir l’opération de remplacement d’une variable propositionnelle par une formule.
Preuve: Nous allons faire la preuve dans le cas de la validité. Le résultat découle du fait que dans une interprétation I et un environnement ρ quelconques, la valeur de P[X← Q] est égale à la valeur de P dans un environnement dans lequel la variable X a pour interprétation la valeur de Q. Ce résultat s’obtient facilement par récurrence sur la structure de P.
Maintenant si une formule est valide, elle est vraie tout le temps donc en particulier si on fixe une valeur pour une de ses variables (ici X). □
On peut généraliser la construction précédente pour remplacer un symbole de prédicat par une formule. Le symbole de prédicat est utilisé associé à des termes, ce qui nous permet d’utiliser des formules paramétrées par des variables qui pourront être instanciées dans le remplacement.
Soit une formule P qui est construite sur une signature qui comporte un symbole de relation n-aire R. Soit une formule Q et n variables x1,…,xn. On peut remplacer dans la formule P toutes les sous-formules atomiques de la forme R(t1,…,tn) par la formule Q[x1← t1,…,xn← tn]. On note le résultat de cette opération P[R(x1,…,xn)← Q].
Soit A la formule P(c)⇒∃ x,P(x) alors A[P(z)← z=z] est défini comme la formule :
(c=c)⇒∃ x,x=x |
La définition reprend exactement les lignes du remplacement d’une variable propositionnelle sauf dans le cas de base dans lequel il faut de plus remplacer les paramètres de la formule Q par les arguments du symbole de prédicat R.
Tout comme dans le cas d’une variable proositionnelle, la validité est préservée lorsqu’on remplace un symbole de prédicat par une formule arbitraire.
Si P est valide (resp. insatisfiable) alors il en est de même de la formule P[R(x1,…,xn)← Q].
Preuve: On se donne une interprétation quelconque I pour les symboles de la formule P[R(x1,…,xn)← Q] et un environnement ρ pour les variables libres. On doit montrer que dans cette interprétation la formule P[R(x1,…,xn)← P] est vraie (resp. fausse).
Tous les symboles et les variables qui apparaissent dans P apparaissent aussi dans P[R(x1,…,xn)← P] à l’exception peut-être de R. On construit une interprétation I′ qui est définie comme I pour tous les symboles sauf dans le cas de R pour lequel on pose RI′(d1,…,dn) est vrai si et seulement si valI(ρ+{x1↦ d1,…,xn↦ dn},Q) est vrai.
Pour n’importe quel environnement ρ, on a
valI′(ρ,P)=valI(ρ,P[R(x1,…,xn)← Q]) |
(cette propriété se montre par récurrence sur la structure de la formule P).
Si P est valide, on a valI′(ρ,P) est vrai. On en déduit que valI(ρ,P[R(x1,…,xn)← Q]) est vrai et comme cela vaut pour toutes les interprétations I, on en déduit la validité de la formule P[R(x1,…,xn)← Q]. □
Preuve: On traite ici le cas de formules closes pour ne pas avoir à introduire d’environnement mais la preuve est identique s’il y a des variables en introduisant l’environnement ρ en plus de l’interprétation I.
□
La relation de conséquence logique est stable par substitution et remplacement. On étend les notations P[x← t] et P[R(x1,…,xn)← Q] a un ensemble de formules E en appliquant la transformation à chacune des formules de l’ensemble.
Preuve: La preuve suit les lignes des preuves de préservation de la validité par substitution en utilisant le fait que pour n’importe quelle formule P, interprétation I et environnement ρ, on a (proposition 3
valI(ρ,P [x← t]) = valI(ρ+{x↦valI(ρ,t)},P) |
et (d’après la preuve de la proposition 3)
valI(ρ,P[R(x1,…,xn)← Q])=valI′(ρ,P) |
avec I′ définie comme I pour tous les symboles sauf R pour lequel on pose RI′(d1,…,dn) est vrai si et seulement si valI(ρ+{x1↦ d1,…,xn↦ dn},Q) est vrai. □
On en déduit facilement les mêmes propriétés pour l’équivalence. Soit P1,P2 deux formules telles que P1≡ P2. On a P1[x← t]≡ P2[x← t] et P1[R(x1,…,xn)← Q]≡ P2[R(x1,…,xn)← Q].
La propriété de conséquence logique se combine avec les connecteurs et les quantificateurs.
Preuve: La preuve se fait très facilement en utilisant la définition de ⊨. On fera attention à la négation et l’implication qui “changent le sens” de la relation. Au niveau des quanticateurs, la condition que la variable x n’est pas libre dans l’ensemble E est essentielle, comme le montre l’exemple suivant avec deux prédicats P(x) et Q(x). On a P(x), P(x)⇒ Q(x)⊨ Q(x) qui est trivialement vrai. Si maintenant on pouvait appliquer la règle avec E =def {P(x)}, A1 =def P(x)⇒ Q(x) et B1 =def Q(x), on en déduirait P(x), (∀ x,P(x)⇒ Q(x))⊨ ∀ x,Q(x). Il suffit de prendre un modèle avec deux éléments {0,1} avec P(0) et Q(0) vrai, P(1) et Q(1) faux. On a bien (pour x↦ 0), P(x) et ∀ x,P(x)⇒ Q(x) qui sont vrais mais ∀ x,Q(x) est faux. □
Les équivalences ci-dessous sont des propriétés de base de la logique qui pourront être utilisées sans justification.
Dans le cas propositionnel, on prouve les équivalences par exemple en montrant que les deux formules ont la même table de vérité.
L’ensemble des booléens avec les opérations de conjonction et de disjonction forme ce que l’on appelle une Algèbre de Boole.
P∧ Q ≡ Q ∧ P P∨ Q ≡ Q ∨ P (P∧ Q) ∧ R ≡ P∧ (Q ∧ R) (P∨ Q) ∨ R ≡ P∨ (Q ∨ R) |
P∧ ⊤ ≡ P P∨ ⊤ ≡ ⊤ P∨ ⊥ ≡ P P∧ ⊥ ≡ ⊥ |
Certains connecteurs peuvent se définir en fonction d’autres :
¬ P ≡ P ⇒ ⊥ P⇒ Q ≡ ¬ P ∨ Q P⇔ Q ≡ (P ⇒ Q) ∧ (Q ⇒ P) ≡ (P ∧ Q) ∨ (¬ P ∧ ¬ Q) |
Les lois de de Morgan établissent le comportement de la négation par rapport aux autres connecteurs :
|
|
|
En utilisant les lois de de Morgan et les formules équivalentes pour l’implication, on peut associer à toute formule, une formule équivalente dans laquelle les négations ne portent que sur les formules atomiques de la forme R(t1,…,tn) qui commencent par un symbole de prédicat et qui de plus ne contient pas le symbole ⇒.
D’autres équivalences de même nature ne sont pas vérifiées comme le montre l’exercice suivant.
On rappelle qu’une interprétation d’un langage est constituée d’un ensemble non vide, appelé le domaine et qui représente l’univers dans lequel les objets du langage sont interprétés et pour chaque symbole de fonction ou de prédicat, une fonction ou une relation sur le domaine qui explicite l’interprétation du symbole du langage correspondant. Un modèle d’une formule close (ou d’un ensemble de formules closes) est une interprétation du langage qui rend vraie la formule (ou toutes les formules de l’ensemble). On parle de modèle d’un langage comme un synonyme d’interprétation du langage.
Certaines propriétés comme la validité ou l’insatisfiabilité s’appuient sur le caractère vrai ou faux d’une formule dans toutes les interprétations, ce qui en général représente une infinité de situations. Par contre la satisfiabilité demande juste d’exhiber un seul modèle de la formule, il suffit alors de bien choisir. Nous allons dans ce chapitre étudier quelques classes d’interprétations qui peuvent être utiles.
On s’intéresse à un domaine fini particulier D={d1;…;dn}. On supposera que l’on a dans la signature du langage des termes sans variable libre {c1;…;cn} tels que val(ci)=di. On peut toujours se ramener à ce cas en introduisant dans le langage de nouvelles constantes {c1;…;cn} et en étendant l’interprétation des symboles de départ avec pour l’interprétation de ci la valeur di.
Dans une telle interprétation, pour toute formule P et toute variable libre x dans P, les deux formules suivantes sont vraies.
(∀ x, P) ⇔ (P[x← c1] ∧ … ∧ P[x← cn]) (∃ x, P) ⇔ (P[x← c1] ∨ … ∨ P[x← cn]) |
Si on applique cette technique à tous les quantificateurs d’une formule close on se retrouve avec une formule qui ne contient que des connecteurs propositionnels et qui ne contient plus de variables. On peut alors remplacer chaque sous-formule atomique R(t1,…,tp) par R(ci1,…,cip) si val(tk)=dik. On peut maintenant introduire une variable propositionnelle pour chaque sous-formule atomique (cela peut faire beaucoup de variables) et utiliser un solveur propositionnel pour calculer les propriétés de la formule.
On s’intéresse uniquement aux interprétations dans lesquelles le symbole d’égalité est interprété comme l’égalité sur le domaine. C’est-à-dire que l’on aura t=u vrai dans une interprétation I et un environnement ρ si et seulement si les termes t et u ont la même valeur dans le domaine, c’est-à-dire valI(ρ,t)=valI(ρ,u).
Montrer que (∀ x, x=c1∨… ∨ x=cn), (P(c1) ∧ … ∧ P(cn)) ⊨ ∀ x, P(x)
en déduire (∀ x, x=c1∨… ∨ x=cn), (∃ x, P(x)) ⊨ P(c1) ∨ … ∨ P(cn)
Pour établir qu’une formule est insatisfiable, il faut a priori raisonner sur tous les modèles et en particulier on peut choisir un domaine arbitraire pour l’interprétation. Le logicien Jacques Herbrand (1908-1931) a établi un résultat très important qui permet de restreindre la recherche à un seul domaine, appelé domaine de Herbrand, qui est le domaine des termes clos. A ce domaine est associé une interprétation des termes de manière dite syntaxique.
Dans cette partie, on introduit la notion de modèle de Herbrand et on va montrer que pour certaines formules (dites universelles), la satisfiabilité de la formule se ramène à l’existence d’un modèle de Herbrand dans laquelle la formule est vraie. On verra dans le chapitre 3 que l’on peut toujours ramener la question de la satisfiabilité d’une formule quelconque à la satisfiabilité d’une formule universelle. Les modèles de Herbrand seront donc un outil pour simplifier en général la recherche d’un modèle d’une formule.
Un langage du premier ordre est défini par une signature formée d’un ensemble F de symboles de fonctions (dont les constantes) et d’un ensemble R de symboles de prédicats.
On rappelle que les termes clos sont ceux formés sur la signature F qui ne contiennent pas de variable, on note T(F) l’ensemble des termes clos. S’il n’y a pas de constante dans l’ensemble F alors l’ensemble des termes clos est vide. On montre ce résultat par l’absurde en supposant que l’ensemble T(F) n’est pas vide et en regardant le terme clos de plus petite taille que l’on note t : comme il n’y a pas de constante, le terme t commence par un symbole de fonction qui a donc au moins un argument u, or le terme u est lui-même clos et sa taille est strictement plus petite que celle de t, d’où une contradiction.
Comme un domaine doit être un ensemble non vide, dans toute la suite de cette section, on supposera que la signature F contient au moins une constante et on l’ajoutera si nécessaire à la signature des formules que l’on souhaite traiter.
Le domaine de Herbrand est formé de termes clos qui sont représentés comme des arbres et donc deux termes syntaxiquement différents correspondent à deux éléments différents. Si on regarde les entiers avec la constante 0, la fonction successeur unaire S, la fonction binaire +, alors les termes clos 0+S(0), S(0)+0 et S(0) sont tous différents. L’interprétation de l’égalité dans les entiers ne correspondra pas à l’égalité du domaine mais à une relation d’équivalence qui identifiera les trois expressions précédentes.
Une fois que l’on connait le domaine il faut interpréter chaque symbole de la signature. Dans le cas des interprétations de Herbrand, c’est particulièrement simple car chaque symbole de fonction est interprété par lui même.
fH(t1,…,tn) |
| f(t1,…,tn) ti∈T(F) |
Preuve: La preuve se fait par simple récurrence sur la structure des termes. □
Dans une interprétation, il faut également définir l’interprétation des symboles de prédicat. Il faut donc associer à chaque symbole de prédicat R, l’ensemble des éléments du domaine qui rendent vraies la formule. Dans une interprétation de Herbrand, les éléments sont des termes clos. Interpréter le symbole de prédicat R revient donc à définir l’ensemble des n-uplets de termes clos (t1,…,tn) tels que R(t1,…,tn) est vrai.
Il y a en général une infinité de formules atomiques closes. Comme il n’y a qu’un nombre fini de symboles dans une formule, la base de Herbrand associée aux symboles d’une formule sera toujours finie ou dénombrable.
Un modèle de Herbrand fixe l’interprétation des termes mais pas celle des prédicats. Il y a autant de modèle de Herbrand que de manière d’assigner des valeurs de vérité aux formules atomiques closes.
Nous allons montrer maintenant le théorème de Herbrand qui nous permet d’établir la satisfiabilité d’une formule en ne cherchant des modèles que parmi les modèle de Herbrand.
Preuve: Si la formule est close et sans quantificateur, alors toutes les sous-formules atomiques sont dans la base de Herbrand, la formule se comporte donc comme une formule propositionnelle (en considérant les éléments de la base de herbrand comme des variables propositionnelles). S’il y a une interprétation de Herbrand qui rend vraie la formule, alors la formule est satisfiable. Si maintenant on a un modèle I de la formule alors on construit une interprétation de Herbrand en prenant comme valeur pour les objets de la base de Herbrand la valeur de la formule atomique (close) dans l’interprétation I. La valeur de la formule atomique R(t1,…,tn) est donc définie comme valI(R(t1,…,tn)). La valeur de la formule initiale est alors la même dans l’interprétation I et dans l’interprétation de Herbrand et est donc vraie. □
On vient de montrer que dans le cas de formules closes sans quantificateur, il suffit de s’intéresser aux interprétations de Herbrand. On peut généraliser ce résultat à des formules un peu plus complexes, à savoir les formules dites universelles.
∀ x1… xn,A |
Preuve: S’il existe une interprétation de Herbrand qui rend vraie la formule alors celle-ci est satisfiable.
Montrons le sens inverse. On suppose que la formule est vraie dans une interprétation I quelconque. On cherche à construire un modèle de Herbrand H qui rend vraie la formule. La valeur de la formule atomique R(t1,…,tn) dans la base de Herbrand est donc définie comme valI(R(t1,…,tn)).
Il suffit de montrer que pour tout terme t1,…,tn∈T(F) la valeur de A dans l’environnement ι =def {x1↦ t1,…,xn↦ tn} est vraie dans l’interprétation H. Or valH(ι,A)=valH(A[x1← t1;…,xn← tn]) en utilisant la propriété 3 et le fait que dans un modèle de Herbrand la valeur d’un terme clos est lui-même c’est-à-dire que valH(t)=t. Comme notre modèle de Herbrand a été choisi pour donner la même valeur aux formules atomiques que I et que A[x1← t1;…,xn← tn] est une formule propositionnelle close, on a valH(A[x1← t1;…,xn← tn])=valI(A[x1← t1;…,xn← tn])=valI({x1↦ valI(t1),…,xn↦ valI(tn)},A)=V car ∀ x1… xn,A est vraie dans le modèle I. □
Avant de montrer le théorème de Herbrand lui-même, on énonce un autre résultat important de la logique propositionnelle qui est le théorème dit de compacité.
Dire qu’un ensemble infini de formules E est satisfiable, c’est dire qu’il y a une interprétation qui rend vraie toutes les formules de E. Dire que tous les sous-ensembles finis de formules est satisfiable, c’est dire que pour chaque sous-ensemble fini G⊆ E, on a une interprétation qui satisfait les formules de G. La force de ce théorème est de dire que l’on peut “assembler” les interprétations locales pour construire une solution globale.
Une conséquence immédiate de ce théorème est que si un ensemble infini de formules propositionnelles est insatisfiable alors il existe un sous-ensemble fini de ces formules qui est insatisfiable.
Preuve: On montre d’abord que la satisfiabilité de la formule ∀ x1… xn,A se ramène à la satisfiabilité d’un ensemble dénombrable de formules closes {A[x1← t1,…,xn← tn] |t1,…,tn ∈ T(F)}. On utilise les mêmes arguments que précédemment, ∀ x1… xn,A est vraie dans une interprétation de Herbrand si pour tous les termes t1,…,tn∈T(F), A[x1← t1;…,xn← tn] est vraie dans ce modèle. Et donc en assemblant les éléments précédents, on a que ∀ x1… xn,A est satisfiable si et seulement si l’ensemble (fini ou dénombrable) de toutes les formules A[x1← t1;…,xn← tn] pour t1,…,tn∈T(F) est satisfiable.
On utilise ensuite le théorème de compacité pour conclure. □
On revient au problème de la satisfiabilité d’une formule close dans le calcul des prédicats. On remarque que le domaine de Herbrand qui nous intéresse est celui formé de la signature correspondant uniquement aux symboles qui apparaissent dans la formule A, auquel on ajoute éventuellement une constante.
Le théorème de Herbrand nous permet de ramener un problème sémantique général (existence d’un modèle) du premier ordre (avec quantificateurs) à un problème propositionnel que l’on va pouvoir traiter avec des outils de nature syntaxique. Même si le calcul propositionnel est décidable, cela ne donne pas une méthode de décision pour le calcul des prédicats. En effet l’ensemble des formules dont on doit prouver le caractère insatisfiable est infini en général. Si l’ensemble est insatisfiable, il y aura un sous-ensemble fini insatisfiable, et on pourra le trouver en énumérant tous les ensembles. Par contre si l’ensemble est satisfiable, alors n’importe quel sous-ensemble fini est satisfiable, et donc on ne trouvera pas de sous-ensemble insatisfiable mais on ne pourra pas conclure par une simple énumération.
Dans le chapitre 3, nous allons étudier des méthodes de transformation de formules qui nous permettront entre autres de nous ramener au cas des formules universelles et dans le chapitre 4, nous étudierons différentes techniques pour prouver la validité ou la satisfiabilité des formules en raisonnant uniquement sur leur forme syntaxique.