Arbres de preuve en logique propositionnelle
Arbres de preuve en logique propositionnelle
https://xkcd.com/246/
Le cours d’informatique de première année permet l’introduction d’un cadre rigoureux pour l’étude
syntaxique et sémantique des formules logiques. Ils ont notamment permis de considérer la notion de
vérité dans le calcul propositionnel et d’introduire la notion de satisfiabilité. Il en découle l’important
problème SAT, i.e. savoir décider si une formule donnée est satisfiable ou non.
Malheureusement, on se heurte vite à deux problèmes : d’une part, résoudre le problème SAT par
bruteforce semble assez peu efficace (complexité exponentielle), et d’autre part, on ne peut jusqu’ici
tirer profit de la méthode de démonstration utilisée en mathématiques. Ce chapitre vise à palier ces
problèmes, en introduisant le concept de systèmes de preuve.
54
3.1 Rappels : logique propositionnelle
Dans un premier temps, on rappelle des notions de logique propositionnelle vues en première année.
3.1.1 Syntaxe
Définition 3.1 : formules propositionnelles
Soit V un ensemble (fini ou dénombrable) de variables.
On définit l’ensemble des formules propositionnelles par induction :
• > (“vrai” ou “top”) est une formule propositionnelle ;
• ⊥ (“absurde” ou “bot”) est une formule propositionnelle ;
• si x ∈ V, x est une formule propositionnelle ;
• si ϕ et ψ sont des formules propositionnelles, alors :
• ¬ϕ (“non”, opération de négation) est une formule propositionnelle ;
• ϕ ∨ ψ (“ou”, opération de disjonction) est une formule propositionnelle ;
• ϕ ∧ ψ (“et”, opération de conjonction) est une formule propositionnelle ;
• ϕ → ψ (“implique”, opération d’implication) est une formule propositionnelle.
On se donne également le sucre syntaxique suivant : ϕ ↔ ψ désigne la formule
propositionnelle (ϕ → ψ) ∧ (ψ → ϕ).
La nature inductive des formules propositionnelles fait qu’elles admettent naturellement une structure
arborescente, qu’on peut obtenir facilement :
• les formules propositionnelles de base (>, ⊥, x pour x ∈ V) sont des feuilles ;
• les nœuds internes découlent de l’inductivité, et sont étiquetés par les opérateurs ¬ (d’arité 1) ou
∨, ∧, → (d’arité 2).
((a ∧ b) ∨ (c ∧ ¬d)) → (c ∨ d)
∨ ∨
∧ ∧ c d
a b c ¬
55
3.1.2 Sémantique
La sous-partie précédente ne définie qu’une sémantique, qui a priori n’a pas de sens particulier. Dans
cette sous-partie, on rappelle la sémantique associée à cette syntaxe, i.e. une définition formelle du vrai
associé à cette syntaxe.
Une valuation est donc une “configuration” des différentes variables selon un critère booléen : une variable
x ∈ V est soit vraie (on a alors ν(x) = 1), soit fausse (on a alors ν(x) = 0).
On étend par la définition suivante cette notion de vérité à n’importe quelle formule propositionnelle.
Pour toute formule propositionnelle ϕ sur V, ν(ϕ) est appelée valeur de vérité de ϕ par ν.
Notation
Par soucis de simplicité, on notera souvent ν(ϕ) au lieu de ν(ϕ) pour une formule ϕ quelconque.
56
Définition 3.6 : équivalence logique
Soit V un ensemble (fini ou dénombrable) de variables propositionnelles, soit ϕ et ψ deux formules
propositionnelles sur V.
On dit que ϕ et ψ sont logiquement équivalentes si pour toute valuation ν sur V, on a
ν(ϕ) = ν(ψ). Dans ce cas, on note ϕ ≡ ψ.
(∀ψ ∈ Γ, ν ⊨ ψ) ⇒ ν ⊨ ϕ
¬(ϕ ∧ ψ) ≡ ¬ϕ ∨ ¬ψ
¬(ϕ ∨ ψ) ≡ ¬ϕ ∧ ¬ψ
Exemple 3.3
Soit V un ensemble (fini ou dénombrable) de variables propositionnelles, soit ϕ et ψ deux formules
propositionnelles sur V. On a les équivalences suivantes :
ϕ → ψ ≡ ¬ϕ ∨ ψ
¬¬ϕ ≡ ϕ
Il faut bien comprendre que, dans les exemples précédents, même si les formules de gauche et de droite sont
logiquement équivalentes, elles sont syntaxiquement différentes, et sont donc des formules distinctes.
Ainsi, même si certaines formules peuvent nous sembler trivialement les mêmes sémantiquement, il est
a priori difficile pour un ordinateur de l’établir (complexité exponentielle : dresser la table de vérité).
En effet, un algorithme n’a aucune intuition sur la sémantique de ce qu’il manipule, mais va analyser
mécaniquement la syntaxe de la formule.
57
Un autre point commun entre ces deux méthodes est que l’on raisonne sur la sémantique des formules.
Dans la suite de ce chapitre, nous allons voir une nouvelle approche pour résoudre le problème SAT qui
utilise une analyse purement syntaxique des formules, tout en s’inspirant des principes de
démonstrations/preuves utilisés en mathématiques : les systèmes de preuve.
3.2.1 Définitions
Définition 3.8 : séquent
Un séquent, noté Γ ` ϕ, est la donnée d’un contexte Γ (qui est un ensemble de formules), et
d’un but ϕ (qui est une formule).
Notation
La virgule est souvent utilisée pour dénoter l’union dans le contexte d’un séquent : ainsi, l’ensemble
Γ ∪ {ϕ} sera noté Γ, ϕ.
Ainsi, dans un séquent, le contexte Γ peut être vu comme des hypothèses : un tel séquent est alors valide
si le but ϕ est une conséquence logique des formules de Γ ; autrement dit : si toutes les hypothèses de Γ
sont vraies, alors ϕ est vraie.
58
Définition 3.12 : arbre de preuve
Un arbre de preuve est un arbre tel que :
• chaque nœud de l’arbre est étiqueté par un séquent ;
• chaque nœud interne est également étiqueté du nom d’une des règles du système de preuve ;
• si un nœud interne est étiqueté par une règle ayant n prémisses, alors cette règle est applicable
au séquent de ce nœud, et ce nœud possède n fils étiquetés par les n prémisses générées par
cette règle.
Une branche d’un tel arbre de preuve est dite fermée si sa feuille est étiquetée par une règle ayant
0 prémisses.
Un arbre de preuve est dit terminé si toutes ses branches sont fermées.
Un arbre de preuve terminé est également appelé une dérivation.
Tout l’enjeu de ce chapitre est de mettre au point des règles afin d’obtenir un système de preuve ou les
séquents prouvables coïncident exactement avec les séquents valides.
59
À ces règles s’ajoutent quelques règles permettant de gérer les symboles > et ⊥, de simplifier un contexte
(règle (Af f )) si certaines hypothèses ne sont plus utiles, de fermer des branches dont le séquent est
trivialement valide (règle (Ax)).
Une dernière règle, cruciale au système, permet de faire des raisonnements par l’absurde (règle (Abs)).
Γ`ϕ
(Ax) (>) (Af f )
Γ, ϕ ` ϕ Γ`> Γ, ψ ` ϕ
Γ, ϕ ` ψ Γ`ϕ→ψ Γ`ϕ
(→i ) (→e )
Γ`ϕ→ψ Γ`ψ
Γ, ϕ ` ⊥ Γ ` ¬ϕ Γ ` ϕ
(¬i ) (¬e )
Γ ` ¬ϕ Γ`⊥
Γ ` ⊥ (⊥) Γ, ¬ϕ ` ⊥
(Abs)
Γ`ϕ Γ`ϕ
(Ax) (Ax)
p, p → q ` p → q p, p → q ` p
(→e )
p, p → q ` q
(Ax) (Ax)
p → q, q → r, p ` p → q p → q, q → r, p ` p
(Ax) (→e )
p → q, q → r, p ` q → r p → q, q → r, p ` q
(→e )
p → q, q → r, p ` r
(→i )
p → q, q → r ` p → r
Insistons désormais à nouveau sur la distinction entre syntaxe et sémantique : la règle (Ax) n’est applicable
que si le but ϕ apparaît dans Γ de manière rigoureusement identique d’un point de vue syntaxique,
et uniquement dans ce cas.
60
Exemple 3.6 : commutativité de la conjonction
Le séquent séquent ϕ ∧ ψ ` ψ ∧ ϕ, bien qu’il semble trivial sémantiquement, ne peut être prouvé
directement en appliquant la règle (Ax). . . Voici une manière correcte de le prouver :
(Ax) (Ax)
ϕ∧ψ `ϕ∧ψ ϕ∧ψ `ϕ∧ψ
(∧de ) (∧ge )
ϕ∧ψ `ψ ϕ∧ψ `ϕ
(∧i )
ϕ∧ψ `ψ∧ϕ
Exemple 3.7
Prouvons le séquent suivant : ¬ϕ ∨ ψ ` ϕ → ψ.
(Ax) (Ax)
ϕ, ¬ϕ ` ¬ϕ ϕ, ¬ϕ ` ϕ
(¬e )
ϕ, ¬ϕ ` ⊥
(Af f )
¬ϕ∨
ψ, ϕ, ¬ϕ ` ⊥
(Ax) (⊥) (Ax)
¬ϕ ∨ ψ, ϕ ` ¬ϕ ∨ ψ ¬ϕ ∨ ψ, ϕ, ¬ϕ ` ψ ¬ϕ ∨ ψ, ϕ, ψ ` ψ
(∨e )
¬ϕ ∨ ψ, ϕ ` ψ
(→i )
¬ϕ ∨ ψ ` ϕ → ψ
Exemple 3.8
Prouvons le séquent suivant : ϕ ` ¬¬ϕ.
(Ax) (Ax)
ϕ, ¬ϕ ` ¬ϕ ϕ, ¬ϕ ` ϕ
(¬e )
ϕ, ¬ϕ ` ⊥
(¬i )
ϕ ` ¬¬ϕ
(Ax) (Ax)
¬¬ϕ, ¬ϕ ` ¬¬ϕ ¬¬ϕ, ¬ϕ ` ¬ϕ
(¬e )
¬¬ϕ, ¬ϕ ` ⊥
(Abs)
¬¬ϕ ` ϕ
Finissons avec un exemple célèbre pour n’être prouvable qu’à l’aide de la règle (Abs). Le défaut de cette
règle est qu’elle est toujours applicable, mais qu’il faut trouver le moment pour l’appliquer sans quoi on
risque d’être bloqué, ou de tourner en rond.
On montre maintenant que la déduction naturelle est un système de preuve correct et complet, i.e. qu’un
séquent est valide si et seulement s’il est prouvable en déduction naturelle.
61
On commence par montrer qu’on ne peut prouver que des choses qui sont vraies !
On commence par montrer un lemme sur chaque règle de la déduction naturelle prise individuellement.
62
• (¬e ) : soit ν une valuation satisfaisant toutes les formules du contexte Γ. Par validité de la
première prémisse on a ν ⊨ ¬ϕ, et par validité de la seconde prémisse on a ν ⊨ ϕ. Cela est
impossible : il n’existe donc pas de telle valuation ν (Γ est incohérent). Autrement dit, on a
Γ ⊨ ⊥. La règle (¬e ) est donc correcte.
• (⊥) : par validité de la prémisse, on a Γ ⊨ ⊥, et il n’existe donc pas de valuation satisfaisant
toutes les formules de Γ (Γ est incohérent). Dans ce cas particulier, on a Γ ⊨ ϕ. La règle (⊥)
est donc correcte.
• (Abs) : soit ν une valuation satisfaisant toutes les formules du contexte Γ. Par l’absurde,
supposons que Γ ⊭ ϕ, i.e. considérons une valuation ν satisfaisant toutes les formules de Γ
et ne satisfaisant pas ϕ. Autrement dit, pour une telle valuation ν, on a ν ⊨ ¬ϕ. Or, par validité
de la prémisse, on a Γ, ¬ϕ ⊨ ⊥, donc ν ⊨ ⊥ : impossible. Ainsi, par l’absurde, on a bien Γ ⊨ ϕ.
La règle (Abs) est donc correcte. □
Preuve (du théorème 3.1). Soit Γ ` ϕ un séquent prouvable en déduction naturelle, i.e. qui est
l’étiquette de la racine d’une arbre de preuve terminé (notons le A).
Montrons que Γ ⊨ ϕ par induction structurelle sur A.
• Si la racine de A ne possède aucun fils, comme A est terminé, c’est qu’on a pu appliquer l’une
des règles (Ax) ou (>) à Γ ` ϕ. Or, d’après le lemme 3.2, ces règles sont valides, donc Γ ⊨ ϕ.
• Si la racine de A possède n ≥ 1 fils, c’est que la règle appliquée à Γ ` ϕ possède n prémisses.
De plus, comme A est terminé, ces n prémisses générées sont toutes prouvables (par les
sous-arbres respectifs de A). Ainsi, par hypothèse d’induction, ces n prémisses sont valides.
Or, d’après le lemme 3.2, la règle appliquée à la racine de A est correcte, donc Γ ⊨ ϕ.
Ainsi, la déduction naturelle est un système de preuve correct. □
Un résultat remarquable concernant la déduction naturelle est que la réciproque du théorème 3.1 est vraie,
i.e. que tout ce qui est vrai (en logique propositionnelle) peut être prouvé dans la déduction naturelle.
Preuve. Admis. □
63
Bien que la preuve de ce théorème ne soit pas à votre programme, une preuve constructive du
théorème 3.3 permettrait l’élaboration d’un algorithme qui calculerait automatiquement une preuve en
déduction naturelle de n’importe quel séquent valide pris en entrée (et qui échouerait sur les séquents
non valides, et uniquement ceux-ci). Malheureusement, concernant la déduction naturelle, les preuves
constructives de ce théorème sont toutes très compliquées, et mènent à des algorithmes très peu
efficaces (les preuves calculées automatiquement sont souvent très tordues et très longues).
Cependant, d’autres systèmes de preuve possèdent des preuves de complétudes bien plus simples, ce qui
donne alors des algorithmes de recherche de preuve automatiques bien moins complexes et beaucoup plus
efficaces. C’est le cas par exemple du calcul des séquents (cf. devoir maison) ; pour ce système de preuve,
la simplicité vient surtout du fait que toutes ses règles sont inversibles (cf. remarque 3.3).
Malheureusement, toutes les preuves ne sont pas constructives. C’est le cas par exemple lorsqu’on utilise
le tiers exclu.
À la fin de cette preuve, l’énoncé est bien démontré, mais on ne sait toujours pas quelles valeurs
de α et β conviennent.
Ainsi, puisque le tiers exclus pose problème, la formule p ∨ ¬p par exemple n’est pas considérée comme
valide en logique intuitionniste. Si l’on essaye de prouver cette formule en déduction naturelle, c’est
d’ailleurs assez compliqué (alors que la formule semble triviale), et on est obligé d’utiliser la règle (Abs).
La définition de la sémantique d’une telle logique est assez compliquée, et on ne la détaillera pas ici. On
énoncera simplement le théorème suivant.
64
Théorème 3.4 : déduction naturelle intuitionniste (HP)
Si l’on enlève la règle (Abs) de la déduction naturelle, on obtient un système de preuve correct et
complet pour la logique intuitionniste.
Preuve. Admis. □
Ce théorème illustre bien la modularité des systèmes de preuve : ici, le simple fait d’enlever une règle à
un système correct et complet pour une première logique permet d’obtenir un système correct et complet
pour une autre logique.
On finit cette petite parenthèse sur la logique intuitionniste en faisant un lien fort avec OCaml !
Considérons ici les formules de la logique propositionnelle n’utilisant que le connecteur logique →. On a
en fait une bijection très simple entre de telles formules et les types OCaml : les variables propositionnelles
peuvent être vus comme des types simples, et les → comme des -> typant des fonctions. On a alors le
théorème suivant.
Exemple 3.12
La formule (a → b) → c → a peut être vue comme le type OCaml ('a -> 'b) -> 'c -> 'a.
Preuve. Admis. □
Cette correspondance va même plus loin : à partir d’une fonction OCaml ayant pour type ϕ, on peut en
réalité construire la preuve de ϕ en déduction naturelle intuitionniste ! Ainsi, une fonction OCaml peut
être considérée comme une preuve de son propre type.
Attention
Nous utilisons le même symbole V que dans la partie 3.1, car c’est ce qui est usuel dans la littérature.
Mais dans cette partie, les variables de V ne sont pas de la même nature que dans la partie 3.1.
En effet, dans les parties précédentes, une variable x ∈ V était de type booléen (variable
propositionnelle), alors que dans cette partie une variable x ∈ V sera d’un autre type quelconque
(entier, réel, . . . ) : les éléments de V sont désormais des variables du premier ordre.
Nous reviendrons plus tard sur ce détail (cf. remarque 3.4).
La logique propositionnelle a le mérite d’être simple, mais n’est pas très expressive. On définit maintenant
une extension de cette logique : la logique du premier ordre. La grosse nouveauté dans cette logique
est la présence de quantificateurs dans la syntaxe. Cependant, nous n’aurons pas encore quantifier sur
des sous-ensembles, voire même sur différents ensembles. Pour cela, il faut aller plus loin dans l’extension
de l’expressivité : c’est la logique du second ordre. Mais cette dernière n’est pas au programme de
MPI.
65
3.3.1 Syntaxe
Définition 3.16 : signature
On appelle signature un triplet S = (C, F, R) de trois ensembles de symboles, où :
• C est l’ensemble des symboles de constantes ;
• F est l’ensemble des symboles de fonctions ;
• R est l’ensemble des symboles de relations (ou de prédicats).
À chaque symbole de F et R, on associe un entier > 0 appelé arité.
Lorsqu’on utilise le mot “prédicat” plutôt que le mot “relation”, on parle alors de “calcul des prédicats”
plutôt que de “logique du premier ordre”.
Notation
• Il est usuel de noter entre parenthèses l’arité de chaque symbole lors de la définition de F et R.
• Pour n ∈ N⋆ , on note Fn l’ensemble des symboles de F d’arité n.
Remarque 3.4
• Un symbole de constante peut être vu comme un symbole de fonction d’arité 0.
• Les symboles de relation d’arité 0 sont l’équivalent des variables propositionnelles de la
partie 3.1, à savoir des constantes de type booléen.
C=R F = {+(2), ×(2), −(1), ·−1 (1), | · |(1), sin(1), ln(1), . . . } R = {= (2), ≤ (2), . . . }
66
Remarque 3.5
On notera parfois T plutôt que T (S) s’il n’y a pas d’ambiguïté possible sur la signature S.
Exemple 3.14
Pour la signature de la théorie des groupes :
−1
• x ? y et x−1 ? y ? x−1 sont des termes ;
• e−1 ? e est un terme clos.
Remarque 3.6
• La taille d’un terme t est le nombre de symboles de fonction dans t.
• La hauteur d’un terme t est le nombre maximal de fonctions imbriquées dans t.
Nous allons bientôt définir la sémantique de la logique du premier ordre, mais donnons déjà quelques
intuitions. Les constantes de C seront évaluées dans un ensemble quelconque, disons par exemple R, et
dans ce cas les fonctions de Fn seront évaluées par des fonctions de Rn → R. Ainsi, les termes représentent
des valeurs de R : ce ne sont pas des booléens.
67
À l’inverse, les formules sont les objets syntaxiques qui vont être vus comme des booléens : les éléments de
base sont les formules atomiques, obtenues par relation entre des termes ; et ces formules de base peuvent
être combinées à l’aide des connecteurs logiques usuels. La nouveauté est que des variables du premier
ordre peuvent apparaître à l’intérieur des termes constituant la formule, et peuvent être quantifiées
existentiellement ou universellement.
Attention
Ne pas confondre terme et formule : les termes peuvent être vus comme des entiers ou des réels
selon le contexte, et les formules peuvent être vues comme des booléens.
Exemple 3.15
Considérons la signature de l’analyse réelle :
• sin(x) est un terme ;
• x = 3 est une formule ;
• ∀x (x > 0 → ∃y (y > 0 ∧ (x = y × y))) est une formule ;
• sin(x) ∧ x = 3 n’a pas de sens.
Attention
Si ϕ ∈ F O(S), alors dans l’arbre syntaxique de ϕ :
• certains sous-arbres sont des formules (appelées sous-formules de ϕ) ;
• certains sous-arbres sont des termes !
Exemple 3.16
ϕ1 = ∀x (x ? y = y ? x) FV(ϕ1 ) = {y} BV(ϕ1 ) = {x}
ϕ2 = ∀x∃y (y = 0) FV(ϕ2 ) = ∅ BV(ϕ2 ) = {x, y}
ϕ3 = ∀x∃y (x ? z = z ? y) ∧ (x = z ? z) FV(ϕ3 ) = {x, z} BV(ϕ3 ) = {x, y}
68
Attention
Comme le montre ce dernier exemple, on a pas forcément FV(ϕ) ∩ BV(ϕ) = ∅, même si en général
on préfère écrire des formules satisfaisant cette condition.
On peut toujours se ramener à une formule satisfaisant cette condition, grâce à la définition suivante.
Exemple 3.17
Les deux formules suivantes sont α-équivalentes :
∀x∃y (x ? z = z ? y) ∧ (x = z ? z)
∀a∃b (a ? z = z ? b) ∧ (x = z ? z)
Attention
Si jamais BV(ϕ) ∩ FV(t) 6= ∅, il ne faut pas oublier de faire l’α-renommage !
Exemple 3.18
Si ϕ : ∀y x = y et t : f (y), on a ϕ[x := t] : ∀z f (y) = z.
Attention, si on avait oublié de faire l’α-renommage, on aurait obtenu la formule ∀y f (y) = y, qui
n’exprime plus la même chose !
69
Définition 3.24 : modèle
Soit S = (C, F, R) une signature.
On appelle modèle de S l’ensemble M des données suivantes :
• EM : un ensemble non vide appelé domaine de M (ou ensemble de base de M) ;
• pour chaque symbole de constante c ∈ C, un élément cM ∈ EM ;
• pour chaque symbole de fonction f ∈ F d’arité n, une fonction fM : EM
n →E
M;
• pour chaque symbole de relation R ∈ R d’arité n, un sous-ensemble RM ⊆ EM
n .
Citation
Ce qu’il faut comprendre, d’abord, c’est les valeurs.
– Perceval, Kaamelott livre II, Perceval et le Contre-sirop
Exemple 3.19
Soit S la signature de l’arithmétique :
C = {0, 1} F = {+(2), ×(2)} R = {= (2)}
On peut prendre comme modèle M :
• EM = N, en interprétant les symboles avec leur sens habituel ;
• EM = Z (ou Q, R, C, . . . ), toujours en interprétant les symboles avec leur sens habituel ;
• Mais on peut également prendre :
• EM = N ;
• 0M = 12 ;
• 1M = 12 ;
• n +M m = 3n + 5m ;
• n ×M m = 42. . .
Bien sûr, dans ce cas, le choix des symboles n’était peut être pas judicieux. . .
70
Définition 3.27 : valeur de vérité
Soit M un modèle de S, et e un environnement.
On définit la valeur de vérité d’une formule ϕ, notée également ValM,e (ϕ), par induction
structurelle sur ϕ :
• ValM,e (⊥) = 0 ;
• ValM,e (>) = 1 ;
• ValM,e R(t1 , . . . , tn ) = 1 ssi ValM,e (t1 ), . . . , ValM,e (tn ) ∈ RM ;
• ValM,e (¬ϕ0 ) = 1 si et seulement si ValM,e (ϕ0 ) = 0 ;
• ValM,e (ϕ1 ∧ ϕ2 ) = 1 si et seulement si ValM,e (ϕ1 ) = 1 et ValM,e (ϕ2 ) = 1 ;
• ValM,e (ϕ1 ∨ ϕ2 ) = 1 si et seulement si ValM,e (ϕ1 ) = 1 ou ValM,e (ϕ2 ) = 1 ;
• ValM,e (ϕ1 → ϕ2 ) = 1 si et seulement si ValM,e (ϕ1 ) = 0 ou ValM,e (ϕ2 ) = 1 ;
• ValM,e (∀x ϕ0 ) = 1 si et seulement si pour tout a ∈ EM , ValM,e[x7→a] (ϕ0 ) = 1 ;
• ValM,e (∃x ϕ0 ) = 1 si et seulement s’il existe a ∈ EM , ValM,e[x7→a] (ϕ0 ) = 1.
M ⊨ ϕ si et seulement si M ⊨ ϕ
e
Les axiomes de la théorie de l’égalité forcent à interpréter = (2) comme l’égalité dans EM .
71
Exemple 3.21 : théorie des groupes
Voici les axiomes de la théorie des groupes :
• les axiomes de la théorie de l’égalité (cf. exemple 3.20) ;
• ∀x∀y∀z x ? (y ? z) = (x ? y) ? z
• ∀x e ? x = x ∧ x ? e = x
• ∀x x ? x−1 = e ∧ x−1 ? x = e
• ∀x∀y x ? y = y ? x
Il manque une dernière chose à l’arithmétique élémentaire : le principe de récurrence. Voici comment
le rajouter.
Soit S la signature de l’arithmétique élémentaire, ϕ ∈ F O(S), et x ∈ V. On note Recφ,x la clôture
universelle de la formule :
ϕ[x := 0] ∧ ∀y (ϕ[x := y] → ϕ[x := S(y)]) → ∀x ϕ
Et on note Rec = {Recφ,x | ϕ ∈ F O(S), x ∈ V}. C’est un ensemble infini d’axiomes, qu’on appelle un
schéma axiomatique.
72
Théorème 3.8 : déduction naturelle pour la logique du premier ordre
Rajouter les règles suivantes aux règles de la déduction naturelle permet d’obtenir un système de
preuve correct et complet :
Γ ` ϕ[x := t] Γ ` ∃x ϕ Γ, ϕ[x := y] ` ψ y ∈
/ F V (Γ ∪ {ϕ, ψ})
(∃i ) (∃e )
Γ ` ∃x ϕ Γ`ψ
Preuve. Admis. □
Voici enfin un dernier exemple de cette modularité : si l’on travaille dans la théorie de l’égalité, nous
pouvons à nouveau rajouter quelques règles pour adapter le système de preuve.
Γ ` ϕ[x := t] Γ ` t = u
(=i ) (=e )
Γ`t=t Γ ` ϕ[x := u]
Preuve. Admis. □
Remarque 3.8
On pourrait aussi travailler sans ces règles, mais avec les axiomes de l’égalité toujours présents
dans le contexte des séquents manipulés, mais cela sera beaucoup plus lourd et beaucoup plus
compliqué.
Exemple 3.24
Illustrons sur un exemple simple que renommer une variable liée ne change pas la sémantique d’une
formule :
(Ax)
∀x R(x) ` ∀x R(x)
(∀e )
∀x R(x) ` R(y)
(∀i )
∀x R(x) ` ∀y R(y)
73
Exemple 3.25
Voici un autre exemple sur le renommage de variables, cette fois-ci avec des quantificateurs
existentiels. Essayons de prouver le séquent suivant : ∃x R(x) ` ∃y R(y).
Commençons par essayer de s’inspirer de l’exemple 3.24 :
On est bloqué !
(Ax)
∃x R(x) ` ∃x R(x) ∃x R(x), R(y) ` R(x)
(∃e )
∃x R(x) ` R(x)
(∃i )
∃x R(x) ` ∃y R(y)
L’astuce avec les règles du symbole ∃ et de les utiliser dans l’ordre inverse :
(Ax)
∃x R(x), R(y) ` R(y)
(Ax) (∃i )
∃x R(x) ` ∃x R(x) ∃x R(x), R(y) ` ∃y R(y)
(∃e )
∃x R(x) ` ∃y R(y)
(T E)
Γ ` ϕ ∨ ¬ϕ
Preuve. Considérons un arbre de preuve terminé dont une branche est fermée par la règle (T E).
Cet arbre de preuve possède donc une feuille de la forme :
(T E)
Γ ` ϕ ∨ ¬ϕ
74
On peut remplacer cette feuille par l’arbre suivant :
(Ax)
¬(ϕ ∨ ¬ϕ), ϕ ` ϕ
(Ax) (∨gi )
¬(ϕ ∨ ¬ϕ), ϕ ` ¬(ϕ ∨ ¬ϕ) ¬(ϕ ∨ ¬ϕ), ϕ ` ϕ ∨ ¬ϕ
(¬e )
¬(ϕ ∨ ¬ϕ), ϕ ` ⊥
(¬i )
¬(ϕ ∨ ¬ϕ) ` ¬ϕ
(Ax) (∨di )
¬(ϕ ∨ ¬ϕ) ` ¬(ϕ ∨ ¬ϕ) ¬(ϕ ∨ ¬ϕ) ` ϕ ∨ ¬ϕ
(¬e )
¬(ϕ ∨ ¬ϕ) ` ⊥
(Abs)
` ϕ ∨ ¬ϕ
(Af f )
Γ ` ϕ ∨ ¬ϕ
Ainsi, en réitérant ce processus pour toutes les feuilles fermées par (T E), on peut obtenir un arbre
de preuve terminé n’utilisant pas cette règle : la règle (T E) est dérivable dans la déduction naturelle.
Réciproquement, considérons un arbre de preuve terminé utilisant la règle (Abs). Cet arbre de
preuve possède donc un nœud interne étiqueté par (Abs), dont le sous-arbre de preuve est de la
forme suivante (où Π est le reste de la preuve) :
Π
..
..
Γ, ¬ϕ ` ⊥
(Abs)
Γ`ϕ
On peut remplacer le sous-arbre de preuve enraciné en ce nœud par l’arbre de preuve suivant (qui
n’utilise pas (Abs) mais (T E)) :
Π
..
..
Γ, ¬ϕ ` ⊥
(T E) (Ax) (⊥)
Γ ` ϕ ∨ ¬ϕ Γ, ϕ ` ϕ Γ, ¬ϕ ` ϕ
(∨e )
Γ`ϕ
Ainsi, en réitérant ce processus pour tous les autres nœuds de Π et du reste de l’arbre étiquetés
par (Abs), on obtient un arbre de preuve terminé n’utilisant pas (Abs) mais utilisant (T E).
Finalement, (Abs) et (T E) sont bien équivalentes. □
Γ ` ¬¬ϕ
(¬¬e )
Γ`ϕ
Preuve. Considérons un arbre de preuve terminé utilisant la règle (¬¬e ). Cet arbre de preuve
possède donc un nœud interne étiqueté par (¬¬e ), dont le sous-arbre de preuve est de la forme
suivante (où Π est le reste de la preuve) :
Π..
..
Γ ` ¬¬ϕ
(¬¬e )
Γ`ϕ
On peut remplacer le sous-arbre de preuve enraciné en ce nœud par l’arbre de preuve suivant (qui
75
n’utilise pas (¬¬e ) mais (Abs)) :
Π..
..
Γ ` ¬¬ϕ
(Af f ) (Ax)
Γ, ¬ϕ ` ¬¬ϕ Γ, ¬ϕ ` ¬ϕ
(¬e )
Γ, ¬ϕ ` ⊥
(Abs)
Γ`ϕ
Ainsi, en réitérant ce processus pour tous les autres nœuds de Π et du reste de l’arbre étiquetés
par (¬¬e ), on obtient un arbre de preuve terminé n’utilisant pas (¬¬e ) mais utilisant (Abs).
La règle (¬¬e ) est dont dérivable dans la déduction naturelle.
Réciproquement, considérons un arbre de preuve terminé utilisant la règle (Abs). Cet arbre de
preuve possède donc un nœud interne étiqueté par (Abs), dont le sous-arbre de preuve est de la
forme suivante (où Π est le reste de la preuve) :
Π
..
..
Γ, ¬ϕ ` ⊥
(Abs)
Γ`ϕ
On peut remplacer le sous-arbre de preuve enraciné en ce nœud par l’arbre de preuve suivant (qui
n’utilise pas (Abs) mais (¬¬e )) :
Π
...
.
Γ, ¬ϕ ` ⊥
(¬i )
Γ ` ¬¬ϕ
(¬¬e )
Γ`ϕ
Ainsi, en réitérant ce processus pour tous les autres nœuds de Π et du reste de l’arbre étiquetés
par (Abs), on obtient un arbre de preuve terminé n’utilisant pas (Abs) mais utilisant (¬¬e ).
Finalement, (Abs) et (¬¬e ) sont bien équivalentes. □
Cette dernière partie nous montre donc bien qu’on aurait pu faire des choix de règles différents dans
la définition 3.15. Aux concours, rien ne garantie que ce seront précisément ces règles qui vous seront
introduites : il y aura peut être des variantes. Il faudra alors faire preuve d’adaptation, et prouver que
certaines règles alternatives sont dérivables dans notre système est un bon moyen de s’y préparer.
76