Exercices de logique naїve en TD
Exercices de logique naїve en TD
2002 MM
Ceci est un recueil d’exercices de base, utilisés en TD, de problèmes qui peuvent aussi servir à rédiger
des énoncés de devoirs, et de notes d’ordre pédagogique, dépourvues de prétention didactique et
d’originalité; par contre et en revanche, il manque d’exemples : il faut les produire face à son public,
en n’oubliant jamais que les plus simples passent généralement pour simplistes et les autres pour
incompréhensibles!
Un étudiant arrivant en troisième année d’université n’est pas sans avoir déjà eu l’occasion de raison-
ner plusieurs fois, avec plus ou moins de bonheur; mais, le paradoxe le plus apparent de l’étude de
la logique est que l’on y est toujours en train de raisonner. Ceci suppose que l’on ait déjà une logique
présente à l’esprit, procédant du simple bon sens, légèrement instrumentalisé.
La logique naı̈ve dont il est question ici, et dont l’usage est recommandé en toute circonstance,
est justement une tentative d’instrumentalisation de ce bon sens si bien partagé ... où l’on pourra
reconnaı̂tre une présentation informelle d’un système de déduction fort bien qualifiée, par Gentzen
soi–même, de naturelle.
Les mots sont d’abord pris dans leur sens commun, mais l’usage répété et systématique de certains
d’entre eux ne manquera pas de préciser ce sens de façon utile pour la suite.
• La logique naı̈ve s’applique à démontrer des énoncés par le moyen de déductions, qui préservent
la vérité : un énoncé déduit à partir d’énoncés vrais, est lui–même vrai. On choisit donc tout d’abord
une collection d’énoncés de base A, B , ... (dont la nature dépend du domaine considéré) à partir
desquels on construira d’autres énoncés, par des opérations grammaticales. En dehors des énoncés
démontrés à la faveur de précédents exercices (qui sont des acquis définitifs) et des ressources propres
au domaine auquel on s’intéresse (qui sont des énoncés vrais dans le domaine en question), les
ressources disponibles à un moment donné d’une déduction sont des énoncés de deux ordres :
– des hypothèses posées temporairement;
– les énoncés que l’on en a déduit.
Une ressource peut être utilisée autant de fois que l’on veut, voire pas du tout.
Une déduction n’est une démonstration que lorsqu’elle ne dispose d’aucune hypothèse temporaire.
• Les déductions élémentaires qui sont proposées ici (sous une forme schématique pour des raisons
de commodité), montrent comment on peut utiliser des ressources disponibles, figurées au dessus
de la barre, pour en déduire une nouvelle, figurée dessous. Pris isolément, chacun des schémas en
question (sauf peut–être ceux d’entre eux qui disposent de ressources occultes) sera d’abord regardé
comme l’expression d’une trivialité; mais c’est leur ensemble, et l’usage cumulatif qu’on en fait, qui a
de l’intérêt et n’est pas toujours facile à maı̂triser : on passe encore du simpliste à l’incompréhensible,
comme d’habitude ...
2002
Voici la liste des opérations grammaticales qui permettent de construire de nouveaux énoncés à partir
d’énoncés déjà connus et des commentaires sur les schémas de déduction qui leur sont attachés.
Il ne faut évidemment pas utiliser les schémas sous cette forme dans une démonstration, mais les
rédiger, en un français (plus ou moins) digeste, et ce n’est pas la moindre affaire.
[[A]]
..
.
B A A⇒B
A⇒B B
• L′ absurde est un énoncé qui se présente dans tous les domaines! et qui est faux, absolument. Le
schéma qui lui est directement attaché signifie que l’on peut en déduire n’importe quel énoncé.
• Lorsque A et B sont des énoncés, leur conjonction A et B est un énoncé. Les trois schémas qui
sont directement attachés à la conjonction sont sans surprise.
• Lorsque A et B sont des énoncés, leur disjonction A ou B est un énoncé : cette disjonction ne
doit pas être comprise dans un sens exclusif mais comme le barbarisme post–moderne et/ou souvent
utilisé de nos jours. L’un des trois schémas qui lui sont attachés demande des explications :
[[A]] [[B]] il décrit le raisonnement par disjonction des cas : il permet, de déduire un
.. .. énoncé C d’une ressource de la forme A ou B . Il peut se rédiger en deux
. . temps, et se comprendre de la façon suivante :
A ou B C C — Si A (adjonction temporaire de l’hypothèse A), . . . et il faut déduire C :
C ce travail accompli, l’hypothèse A est éliminée des ressources, ainsi que les
énoncés dont la déduction dépend de cette hypothèse;
— Si B (adjonction temporaire de l’hypothèse B ), . . . et il faut déduire C : ce travail accompli,
l’hypothèse B est éliminée des ressources, ainsi que les énoncés dont la déduction dépend de cette
hypothèse.
Institut Galilée 2 MM
[[A]] il est essentiel au point qu’on l’appelle généralement la déduction, ce qui n’est pas peu
.. dire. Il peut se rédiger de la façon suivante :
. — Supposons A (adjonction temporaire de l’hypothèse A),. . . il faut alors déduire B .
B Lorsque ce travail est accompli, l’hypothèse A est éliminée des ressources, ainsi que les
A⇒B énoncés dont la déduction dépend de cette hypothèse; et l’on a bien déduit l’énoncé
A ⇒ B sans usage propre d’une ressource.
Ce raisonnement qui paraı̂t naturel à ceux qui l’ont assimilé, peut produire des résultats fort gracieux,
lorsqu’il tombe de mains moins habiles!
• Lorsque A est un énoncé, sa négation non A désigne l’énoncé A ⇒ L′ absurde.
De A et non A on peut évidemment déduire L′ absurde, par application du modus ponens.
A ou non A Le principe du tiers exclu, selon lequel cet énoncé est vrai, quel que soit l’énoncé
A, est nécessaire pour donner son caractère ”classique” à la logique. Même
lorsque ce principe est vérifié par les énoncés de bases, il n’est pas possible de l’étendre à tous
les autres, par application des schémas. Montrons comment le tiers exclu permet de justifier deux
schémas d’usage courant :
[[non A]] Le raisonnement par l’absurde, dont le schéma est présenté ici, est une consé-
.. quence du principe du tiers exclu. En effet, si l’on sait déduire L′ absurde sous
. l’hypothèse non A alors, on peut faire le raisonnement par cas suivant :
L′ absurde — Si A alors A !
A — Si non A alors on sait déduire L′ absurde, d’où l’on peut déduire n’importe
quel énoncé, en particulier A.
ATTENTION. Si après avoir temporairement posé l’hypothèse A on est capable de déduire L′ absurde,
on pourra en conclure A ⇒ L′ absurde, c’est–à–dire non A : ceci tient à la définition de la négation,
mais n’a rien à voir avec un quelconque raisonnement par l’absurde!
[[non A]] Enfin voici le schéma d’un raisonnement qui peut être utile pour démontrer un énoncé
.. de la forme A ou B , qui est encore une conséquence du principe du tiers exclu. En
. effet, si l’on sait déduire B sous l’hypothèse non A on peut faire le raisonnement par
B cas suivant :
A ou B — Si A alors on a aussi A ou B ;
— Si non A alors on sait déduire B , donc aussi A ou B .
MM 3 Institut Galilée
Les énoncés que l’on est couramment conduit à manipuler sont des prédicats, disons, des phrases, qui
expriment des relations entre des individus (dont la nature dépend du domaine considéré).
On utilise des variables x, y , ... pour désigner des individus de façon générique (par exemple, dans
l’expression ”soit x un entier ... ”); mais il peut aussi intervenir des individus particuliers (par exemple,
l’entier 1) ou bien calculés à partir d’autres (par exemple, les entiers de la forme (x + 1) × x). Nous
utiliserons des lettres comme t, u, ... pour désigner des individus de l’une quelconque des sortes
précédentes.
Pour insister sur le fait qu’un énoncé A dépend éventuellement de la variable x, nous utiliserons la
notation A[x] et, si t est l’expression d’un individu, A[t] s’obtiendra en remplaçant x par t partout où
il se trouve dans A.
Une quantification est une opération qui fait disparaı̂tre une variable : si Qx est un quantificateur sur
x, QxA[x] est un énoncé qui ne dépend plus de x. On dit de façon imagée que toute apparition de x
qui est à la portée d’un quantificateur Qx est muette ou liée.
ATTENTION. A proprement parler, on ne peut pas prétendre qu’un énoncé qui dépend de variables
soit vrai! Si nous insinuons tout de même que A[x] est vrai, c’est pour dire qu’on obtient toujours un
énoncé vrai lorsque l’on remplace x par un individu particulier.
∀xA[x] Ce schéma de spécialisation exprime qu’un énoncé vrai pour tout individu x l’est aussi
A[t] pour l’individu particulier désigné par t.
On se souviendra cependant que l’expression t ne doit pas dépendre d’une variable qui
deviendrait muette dans l’énoncé A[t].
• Lorsque A[x] est un énoncé dépendant éventuellement de la variable x alors ∃xA[x] est un énoncé
ne dépendant plus de la variable x et qui se lit, se comprend et même peut s’écrire il existe x tel que
A[x].
A[t] La signification de ce schéma est claire : connaissant un individu particulier t qui permet
∃xA[x] d’affirmer l’énoncé A[t], on est bien en droit d’en déduire ∃xA[x] !
On se souviendra cependant que l’expression t ne doit pas dépendre d’une variable qui
deviendrait muette dans l’énoncé A[t].
Institut Galilée 4 MM
REMARQUE. La restriction sur l’usage des expressions t dans deux des schémas ne peut se justifier ici
que par le fameux bon sens dont il a été question au début, mais on peut voir facilement qu’elle est
nécessaire, en observant un contre–exemple.
Considérons l’énoncé A[x] qui s’écrit ∀y(y = x), par exemple dans le domaine des entiers, t
l’expression x + y , alors A[t] est égal à ∀y(y = x + y). Si l’on ne tient pas compte du fait que t ne vérifie
pas la restriction relativement à A[x], on peut ”démontrer” l’énoncé ∃x∀y(y = x+y) ⇒ ∃x∀y(y = x)
de la manière suivante :
supposons ∃x∀y(y = x + y), si x est tel que ∀y(y = x + y) on peut en ”déduire” ∃x∀y(y = x), ce qui
permet de conclure.
Or, cette implication est fausse car on a bien m = 0 + m pour tout entier m mais, il n’existe pas d’entier
n tel que m = n pour tout m car, il y a plusieurs entiers!
L’INDUCTION.
On est souvent conduit, et spécialement en logique, à considérer des expressions appelées termes ou
formules, qui sont construites à partir de symboles dépendant du domaine considéré.
Chacun de ces symboles admet une arité, c’est–à–dire un entier naturel qui indique le nombre
d’arguments auxquels il s’applique :
– les symboles d’arité 0 désignent des individus, par exemple : les variables et les constantes de
toute nature;
– les autres, des relations ou des fonctions, et sont appelés opérateurs, par exemple : les opéra-
teurs arithmétiques et logiques, ...
Les expressions définies par un tel système, sont construites en appliquant un symbole à des expres-
sions déjà construites (le nombre de ces expressions doit être égal à l’arité du symbole).
Cette phrase bonne enfant cache trop bien la difficulté du sujet : la définition d’une classe d’objets
par induction (ou même par récurrence) et la récursivité, au sens informatique du terme, et le
type de raisonnements qui leur est attaché. L’expérience montre que nos étudiants en informatique,
sont généralement réfractaires à un tel feu, et qu’ils lui préfèrent les points de suspension (signe de
ponctuation qui tend à s’énoncer ”trois petits points”, ce qui est déjà très révélateur d’une déperdition
de sens!); or, il n’existe pas de langage de programmation comprenant lesdits points dans leur syntaxe
de façon active, sauf à les définir ... par exemple, dans le cas simple d’une liste (x1 , . . . , xn ), par la
récurrence suivante, sur l’entier naturel n :
– (x1 , . . . , x0 ) = (), c’est–à–dire, la liste vide, base de la construction de toute liste;
– (x1 , . . . , xn+1 ) = ((x1 , . . . , xn ), xn+1 ) obtenue par adjonction de xn+1 à la fin de la liste
(x1 , . . . , xn ).
MM 5 Institut Galilée
Sauf dans les cas simples et statiques, il est préférable d’utiliser des définitions inductives et de faire
des raisonnements par induction, quitte à paraı̂tre pesant. Il y a peu de questions en logique de base
que l’on puisse sérieusement traiter autrement, surtout dans le cadre d’une licence d’informatique (on
pourrait admettre plus facilement un certain laxisme devant un public mathématicien!).
Soit E un ensemble muni d’une relation d’ordre strict bien fondé, c’est–à–dire, sans suite décroissante
infinie (des algébristes évoqueraient Emil Artin ou Amalie Nœther), que l’on notera ≺.
Le Principe d’induction.
Soit E un ensemble muni d’une relation d’ordre strict bien fondé ≺ et soit P (x) l’énoncé d’une
propriété des éléments de E , alors :
Lorsque pour tout x ∈ E , on peut déduire P (x) de l’hypothèse d’induction
(HI) : pour tout y ∈ E , y ≺ x implique P (y),
on peut en conclure P (x) quel que soit x ∈ E .
*
* *
Dans ce qui suit, des rappels seront faits de temps en temps, mais l’essentiel devra être puisé dans le
cours lui–même!
Institut Galilée 6 MM
CALCUL DES PROPOSITIONS.
neg : E→E
conj : E×E →E
disj : E×E →E
impl : E×E →E
La propriété de lecture unique s’applique de la façon suivante :
Pour toute application f : P → E on peut construire une et une seule application f : F → E vérifiant
les cinq conditions suivantes :
f (p) = f (p)
pour toute variable propositionnelle p, et
Ceci est une construction par induction sur les formules et l’application f ainsi construite s’appelle
l’extension de f aux formules (relativement aux applications neg , conj , disj et impl en cause).
L’existence et l’unicité d’une telle extension s’exprime souvent en disant que F est un objet libre dans
sa catégorie.
MM 7 Institut Galilée
Exercice 2. Des formules et des arbres.
∗ Lorsque n 6= 0, où est–il naturel de poser un opérateur n–aire pour montrer qu’il
s’applique à ses arguments et pas à d’autres?
∗ A1 . . . An ∗ Pour n = 2, qui est un cas très courant, la place la plus courante de l’opérateur se
∗ trouve entre ses arguments; mais l’écriture A1 ∗ A2 est bien connue pour entraı̂ner
des ambiguı̈tés! et c’est la raison pour laquelle il est nécessaire de faire usage de
parenthèses lorsque l’on utilise cette notation en infixe.
Dans le cas général, cette position centrale n’existe plus mais quatre positions se présentent, qui sont
toutes excellentes : chacune d’elles, lorsqu’elle est systématiquement utilisée (c’est–à–dire pour tous
les symboles), conduit à une écriture des termes qui n’est pas ambiguë.
– Poser l’opérateur au dessus (resp. en dessous) de ses arguments donne la représentation ar-
borescente avec racine en haut (resp. en bas). Dans ces cas, le dessin de liens entre l’opérateur
et ses arguments, n’est pas indispensable mais facilite grandement la lecture.
a) Donner une construction, par induction sur les formules, de l’arbre (avec, par exemple, la racine
en haut) a(X) associé à une formule X .
b) Après avoir caractérisé les arbres obtenus par la construction précédente, donner une définition,
par induction sur les arbres, de la formule f (A) associée à un arbre A convenable.
– Poser l’opérateur devant (resp. derrière) ses arguments donne l’écriture polonaise préfixe (resp.
suffixe) : les qualités de l’écriture polonaise sont l’objet d’exercices classiques mais difficiles;
c) Donner une définition, par induction sur les formules, de la formule polonaise (par exemple
préfixe) p(X) associé à une formule X .
La caractérisation des formules polonaises est un peu délicate et ne sera pas tentée ici!
Exercice 3.
a) Donner une définition, par induction sur les formules, des applications à valeurs entières suiv-
antes :
• Dans certaines circonstances, il est judicieux d’adopter deux nouveaux symboles logiques primi-
tifs d’arité 0 : ⊤ (le vrai) et ⊥ (le faux). Ce sont des formules (non–atomiques!) qui interviennent dans
la construction générale des formules et pour lesquelles il faut ajouter les clauses δ(⊤) = 1 et δ(⊥) = 0
à la définition de l’extension d’une distribution de valeurs de vérité δ .
Il est aussi possible, mais c’est moins intéressant, de les définir par ⊤ = (p0 ∨ ¬p0 ) et ⊥ = (p0 ∧ ¬p0 ),
où p0 est une variable propositionnelle fixée.
• L’équivalence est le symbole abréviateur ↔ défini par (A ↔ B) = ((A → B) ∧ (B → A)).
L’équivalence, dont l’utilité est indéniable, est trop “composée” pour prétendre à un statut d’opérateur
logique primitif.
Institut Galilée 8 MM
Exercice 4. Tautologies.
Si l’on utilise les applications
neg : {0, 1} → {0, 1} définie par neg(x) = (1 − x)
conj : {0, 1} × {0, 1} → {0, 1} définie par conj(x, y) = xy
disj : {0, 1} × {0, 1} → {0, 1} définie par disj(x, y) = x(1 − y) + y = x + (1 − x)y
impl : {0, 1} × {0, 1} → {0, 1} définie par impl(x, y) = (1 − x) + xy
alors l’extension aux formules de toute distribution de valeurs de vérité δ : P → {0, 1} est celle qui a
été définie dans le cours.
On rappelle qu’une formule A est une tautologie lorsqu’elle est satisfaite par toute distribution de
valeurs de vérité, c’est–à–dire lorsque δ(A) = 1 pour toute δ .
a) Montrer, par un calcul direct utilisant la définition de δ à partir de δ , que les formules choisies
sont des tautologies. Il pourra être utile d’observer que la propriété x ∈ {0, 1} est équivalente à
x(1 − x) = 0, c’est–à–dire à x2 = x.
b) Montrer que les équivalences suivantes sont vraies, quelles que soient les formules A et B et la
distribution de valeurs de vérité δ :
δ((A → B)) = 1 ssi δ(A) ≤ δ(B)
δ((A ↔ B)) = 1 ssi δ(A) = δ(B)
La dernière propriété peut servir à revisiter les formules choisies qui sont des équivalences!
On dit souvent que deux formules A et B sont équivalentes lorsque (A ↔ B) est une tautologie,
c’est–à–dire lorsque δ(A) = δ(B) pour toute δ .
c) Montrer que la définition de δ est en accord avec la logique naı̈ve, c’est–à–dire que les équivalences
suivantes sont vraies, quelles que soient les formules A et B et la distribution de valeurs de vérité δ :
δ(¬A) = 1 ssi non δ(A) = 1 (ce qui peut aussi s’écrire δ(A) = 0 !)
δ((A ∧ B)) = 1 ssi δ(A) = 1 et δ(B) = 1
δ((A ∨ B)) = 1 ssi δ(A) = 1 ou δ(B) = 1
δ((A → B)) = 1 ssi δ(A) = 1 ⇒ δ(B) = 1
Utiliser cette ”traduction” pour montrer que les formules choisies sont des tautologies.
Exercice 5. Substitutions.
L’ensemble F des formules est naturellement muni des opérations :
neg : F → F définie par neg(A) = ¬A
conj : F × F → F définie par conj(A, B) = (A ∧ B)
disj : F × F → F définie par disj(A, B) = (A ∨ B)
impl : F × F → F définie par impl(A, B) = (A → B)
Soit maintenant s : P → F une application et désignons par s son extension aux formules.
a) Vérifier que pour toute formule A, la formule s(A) est obtenue en substituant s(p) à chaque
variable propositionnelle p apparaissant dans A : pour cette raison, on dit souvent qu’une application
du type de s est une substitution.
b) Soit δ une distribution de valeurs de vérité et considérons la nouvelle distribution de valeurs de
vérité δ ′ définie par δ ′ (p) = δ(s(p)).
Montrer, par induction sur les formules, que l’on a δ ′ (A) = δ(s(A)) pour toute formule A (pour
comprendre ce qui se passe, il pourra être intéressant de considérer la représentation arborescente
des formules).
En déduire qu’une substitution transforme une tautologie en une tautologie.
MM 9 Institut Galilée
Formules choisies
1. (A → A)
2. (A → (A ∧ A)) 5. ((A ∧ ⊤) ↔ A)
3. ((A ∧ B) → A) 6. ((A ∧ (B ∧ C)) ↔ ((A ∧ B) ∧ C))
4. ((A ∧ ⊥) ↔ ⊥) 7. ((A ∧ B) ↔ (B ∧ A))
14. (¬¬A ↔ A)
REMARQUE. Si A est une formule et p une variable propositionnelle, on dira souvent ”Soit A[p] une
formule dans laquelle p apparaı̂t éventuellement”. Cette expression ne dit rien sur A ! mais insiste sur
l’intérêt que l’on porte à p et introduit une notation suggestive : si X est une formule, on peut en effet
considérer la substitution définie par
X si q = p,
s(q) =
q sinon.
On note alors A[X] au lieu de s(A). Il est évidemment possible d’adapter cette notation au cas d’une
suite finie de variables.
Problème 6. Fonctions booléennes et formes normales disjonctives
Une fontion booléenne d’arité n est une application f : {0, 1}n → {0, 1} : une telle fonction
s’applique donc aux suites (x1 , . . . , xn ) formées de n valeurs 0 ou 1 et pour chacune de ces suites,
f (x1 , . . . , xn ) prend la valeur 0 ou la valeur 1.
Le but de cet exercice est de montrer qu’une fonction booléenne est la ”table de vérité” d’une formule :
comme conséquence on obtiendra le calcul simple d’une forme normale disjonctive d’une formule
dont on connaı̂t la table de vérité.
a) Commençons par un peu d’algèbre (booléenne, comme il se doit).
Une fonction booléenne f étant donnée, il y a deux cas à considérer :
Institut Galilée 10 MM
• si l’arité de f est 0, on a ou bien f () = 0 ou bien f () = 1 ;
• sinon, pour f : {0, 1}n+1 → {0, 1}, on définit les deux fonctions booléennes f0 et f1 : {0, 1}n →
{0, 1} par :
f0 (x1 , . . . , xn ) = f (x1 , . . . , xn , 0)
f1 (x1 , . . . , xn ) = f (x1 , . . . , xn , 1)
Vérifier que l’on a
f (x1 , . . . , xn , xn+1 ) = f0 (x1 , . . . , xn ) xn+1 + f1 (x1 , . . . , xn ) xn+1
(où, pour tout x ∈ {0, 1}, x désigne l’expression (1 − x), que l’on a vraiment intérêt à laisser telle
quelle) pour toute suite (x1 , . . . , xn , xn+1 ) ∈ {0, 1}n+1.
Appelons monôme booléen un produit y1 . . . yn dans
lequel chaque i, yi est ou bien xi ou bien xi (un tel
produit vaut 1 lorsque n = 0). x1 x2 x3 f (x1 , x2 , x3 )
Montrer que toute fonction booléenne est égale à une 0 0 0 1
somme de monômes booléens (éventuellement 0) : on
pourra commencer par étudier la fonction dont la table
1 0 0 0
est dressée ci–contre. 0 1 0 0
b) Maintenant, on associe une formule f˜ du calcul 1 1 0 1
des propositions à chaque fonction booléenne f , par
0 0 1 1
récurrence sur l’arité de f , de la façon suivante :
• si cette arité est 0 alors, on pose 1 0 1 0
f˜ = ⊥ lorsque f () = 0 et f˜ = ⊤ lorsque f () = 1 ; 0 1 1 0
n+1
• sinon, pour f : {0, 1} → {0, 1} on pose 1 1 1 0
f˜ = ((f˜0 ∧ ¬pn+1 ) ∨ (f˜1 ∧ pn+1 )).
(On a évidemment adopté ⊤ et ⊥ comme symboles primitifs.) Montrer que pour toute distribution de
valeurs de vérité δ et toute fonction booléenne f d’arité n, on a δ(f˜) = f (δ(p1 ), . . . , δ(pn )).
c) Soit A une formule dont on connaı̂t la table de vérité. Appliquer ce qui précède pour calculer une
forme normale disjonctive équivalente à A.
Rappels :
• Un littéral est une formule p ou ¬p où p est une variable propositionnelle.
• Une conjonction de littéraux est une conjonction l1 ∧. . .∧ln (où on néglige d’écrire les parenthèses)
où chaque li est un littéral (cette conjonction vaut ⊤ lorsque n = 0).
• Une forme normale disjonctive est une disjonction c1 ∨ . . . ∨ cn (où on néglige d’écrire les
parenthèses) où chaque ci est une conjonction de littéraux (cette disjonction vaut ⊥ lorsque n = 0).
a) Soit A[p] une formule dans laquelle p apparaı̂t éventuellement et considérons les deux formules
A0 = A[¬q] et A1 = A[q] obtenues par des substitutions.
Montrer que (A[p] → (A0 ∨ A1 )) est une tautologie.
b) Soit de plus B une formule dans laquelle p n’apparaı̂t pas et telle que (A[p] → B) soit une
tautologie.
Montrer que ((A0 ∨ A1 ) → B) est une tautologie.
Indication. Si δ est une distribution de valeurs de vérité qui satisfait, par exemple, A1 , considérer la
distribution de valeurs de vérité δ ′ qui coı̈ncide avec δ sauf éventuellement en p, où l’on a δ ′ (p) = δ(q).
MM 11 Institut Galilée
c) Pour énoncer le lemme , il est commode d’adopter l’usage des symboles logiques primitifs ⊤ et ⊥.
Montrer le lemme d’interpolation que voici :
Soient A et B des formules telles que (A → B) est une tautologie alors, il existe une formule C (dite
”interpolante entre A et B ”) qui vérifie les propriétés suivantes :
– (A → C) est une tautologie;
– (C → B) est une tautologie;
– toute variable propositionnelle apparaissant dans C apparaı̂t aussi dans A et dans B .
Lorsque A et B ont une variable commune, on peut faire un raisonnement par récurrence sur le
nombre de variables propositionnelles apparaissant dans A mais pas dans B , en appliquant le résultat
des questions précédentes.
Problème 8. Théorème de compacité.
Pour tout ensemble A de formules du calcul propositionnel, on pose les définitions suivantes :
• une distribution de valeurs de vérité δ satisfait A ssi δ(A) = 1 pour toute A ∈ A ;
• A est satisfaisable ssi il existe une distribution de valeurs de vérité δ qui satisfait A ;
• A est finiment satisfaisable ssi toute partie finie B ⊆ A est satisfaisable (ceci signifie bien que,
pour toute partie finie B ⊆ A, il y a une distribution de valeurs de vérité δB , qui dépend de B et qui
satisfait B ).
Le but de cet exercice est la démonstration du théorème de compacité dont voici l’énoncé :
Pour tout ensemble A de formules du calcul propositionnel, les deux propriétés suivantes sont
équivalentes :
1) A est satisfaisable,
2) A est finiment satisfaisable.
Il est clair que 1) implique 2); de même, 2) implique trivialement 1) lorsque A est fini (puisqu’alors,
toute partie de A est finie). Il reste à démontrer que 2) implique 1) lorsque l’on ne suppose pas que A
est fini.
Soit donc A un ensemble finiment satisfaisable.
a) Soit p une variable propositionnelle quelconque.
Montrer que l’un des deux ensembles A ∪ {p} ou A ∪ {¬p} est finiment satisfaisable.
Indication : En supposant que A ∪ {p} n’est pas finiment satisfaisable (c’est–à–dire, qu’il existe une
partie finie B ⊆ A ∪ {p} qui n’est pas satisfaisable) montrer que A ∪ {¬p} est finiment satisfaisable.
b) Soit P = {p1 , . . . , pn , . . .} une énumération de l’ensemble des variables propositionnelles.
On considère la suite (An )n∈N d’ensembles définie par la récurrence :
A0 = A
An ∪ {pn+1 } si An ∪ {pn+1 } est finiment satisfaisable,
An+1 =
An ∪ {¬pn+1 } sinon.
Montrer que chacun des An est finiment satisfaisable.
c) On définit, par récurrence, les ensembles ln de littéraux suivants :
l0 = ∅
ln ∪ {pn+1 } si pn+1 ∈ An+1 ,
ln+1 =
ln ∪ {¬pn+1 } sinon.
Montrer que ln ⊆ An pour tout n.
Institut Galilée 12 MM
d) On définit, par récurrence, la distribution de valeurs de vérité λ :
1 si pn ∈ An ,
n
λ(pn ) =
0 sinon.
Montrer que λ(A) = 1 pour toute A ∈ A et donc que A est satisfaisable.
On pourra considérer un entier n assez grand pour que toutes les variables apparaissant dans A soient
parmi {p1 , . . . , pn } et se souvenir que ln ∪ {A} ⊆ An .
MM 13 Institut Galilée
SYSTÈME LK (Calcul propositionnel classique).
Identité
p⊢p
Coupure
Γ ⊢ ∆; A A, Λ ⊢ Π
Γ, Λ ⊢ ∆; Π
Règles structurelles
Γ⊢∆ Γ⊢∆
(E d ) (E g )
Γ ⊢ σ(∆) σ(Γ) ⊢ ∆
pour toute permutation σ pour toute permutation σ
Γ ⊢ ∆; A; A A, A, Γ ⊢ ∆
(C d ) (C g )
Γ ⊢ ∆; A A, Γ ⊢ ∆
Γ⊢∆ Γ⊢∆
(A d ) (A g )
Γ ⊢ ∆; A A, Γ ⊢ ∆
Règles logiques
A, Γ ⊢ ∆ Γ ⊢ ∆; A
(¬ d ) (¬ g )
Γ ⊢ ∆; ¬A ¬A, Γ ⊢ ∆
Γ ⊢ ∆; A Λ ⊢ Π; B A, B, Γ ⊢ ∆
(∧ d ) (∧ g )
Γ, Λ ⊢ ∆; Π; (A ∧ B) (A ∧ B), Γ ⊢ ∆
Γ ⊢ ∆; A; B A, Γ ⊢ ∆ B, Λ ⊢ Π
(∨ d ) (∨ g )
Γ ⊢ ∆; (A ∨ B) (A ∨ B), Γ, Λ ⊢ ∆; Π
A, Γ ⊢ ∆; B Γ ⊢ ∆, A B, Λ ⊢ Π
(→ d ) (→ g )
Γ ⊢ ∆; (A → B) (A → B), Γ, Λ ⊢ ∆; Π
Institut Galilée 14 MM
CALCUL DES SÉQUENTS PROPOSITIONNEL : LK.
Exercice 10.
Construire une preuve du séquent ⊢ X pour chacune des formules choisies X .
Bien que ça ne soit pas très ”académique”, il est commode de penser à un
, ⊢ ; séquent S comme à une représentation un peu assouplie de l’une quelconque
∧ → ∨ des formules X ∈ Φ(S). La petite table ci–contre résume ces correspon-
dances, si on se souvient de plus qu’une négation ¬ signale le passage d’un
membre à l’autre du séquent. Notons au passage que l’utilisation du point virgule comme séparateur
dans le membre de droite des séquents, qui n’est pas traditionnelle, permet d’écrire la table ci–contre
et surtout, peut décourager les meilleurs esprits à faire des usages frauduleux de la coupure (que l’on
n’a pas à publier ici).
MM 15 Institut Galilée
Une conséquence simple de ce résultat est que l’ensemble des deux séquents ⊢ X et ⊢ Y , et le
séquent ⊢ (X ∧ Y ) peuvent se déduire l’un de l’autre.
b) Enoncer et démontrer les résultats analogues pour les connecteurs ∨ et →.
Exercice 13. Satisfaction des séquents.
On dit qu’une distribution de valeurs de vérité δ satisfait le séquent Γ ⊢ ∆ ssi lorsque δ satisfait toutes
les formules de Γ, alors δ satisfait aussi au moins une formule de ∆. Par exemple, un séquent de la
forme X ⊢ X est satisfait par toute distribution de valeurs de vérité, mais le séquent vide ⊢ ne l’est
par aucune.
a) Montrer que lorsque δ satisfait la ou les prémisses d’une règle du système LK alors elle satisfait
aussi sa conclusion (on n’oubliera pas le cas de la coupure).
REMARQUE. Ceci implique évidemment que si δ satisfait un ensemble Σ de séquents, alors elle
satisfait aussi tout séquent que l’on peut en déduire.
b) Transposer et démontrer les résultats d’inversibilité des règles logiques, en termes de satisfaction
d’ensembles de séquents.
Un système de décomposition pour LK
Γ′ , A, Γ′′ ⊢ ∆′ ; A; ∆′′
A, Γ ⊢ ∆′ ; ∆′′ Γ′ , Γ′′ ⊢ ∆; A
Le système de décomposition pour LK représente de façon graphique les résultats d’inversibilité des
règles démontrés dans les exercices précédents. L’application de l’une des règles fait disparaı̂tre
– ou bien un séquent (la première règle);
– ou bien un opérateur logique.
Institut Galilée 16 MM
Si donc on applique ces règles tant qu’il est possible, on transforme un séquent S en un ensemble,
que l’on notera Dec(S), de séquents atomiques, c’est–à–dire, constitués uniquement de variables
propositionnelles (il est clair que Dec(S) n’est pas défini de façon univoque car il peut dépendre de
l’ordre dans lequel on a appliqué les règles de décomposition).
Dans la pratique, on ajoute les règles suivantes, que l’on peut considérer, si l’on veut, comme des con-
tractions. Par contre, les règles de réduction sont écrites de façon à éviter l’application de tout échange,
afin d’écarter le risque fatal de rentrer dans une suite sans fin d’applications de cette opération.
”Contractions”
Γ ⊢ ∆; A; ∆′ ; A; ∆′′ Γ, A, Γ′ , A, Γ′′ ⊢ ∆
Γ ⊢ ∆; A; ∆′ ; ∆′′ Γ, Γ′ , A, Γ′′ ⊢ ∆
Exercice 15.
Soit X une formule.
a) Montrer, par induction sur les déductions, que si l’on peut déduire le séquent Γ ⊢ ∆ de ⊢ X alors
X, Γ ⊢ ∆ est prouvable.
b) Donner une justification de la méthode de résolution n’utilisant que la notion de prouvabilité (alors
que la justification précédente utilise aussi la notion de satisfaisabilité).
MM 17 Institut Galilée
Problème 16. Théorème de complétude.
Le but de ce problème est de redémontrer le Théorème de complétude pour le calcul des propositions :
Si A est une tautologie, alors ⊢ A est prouvable dans LK.
Posons d’abord une définition : soient A une formule et δ une distribution de valeurs de vérité, alors,
la formule Aδ est définie par :
si δ(A) = 1,
Aδ = A
n
¬A sinon.
a) Montrer, par induction sur la formule A, que le séquent pδ1 , . . . , pδm ⊢ Aδ est prouvable dans LK,
quelle que soit δ , lorsque les variables propositionnelles apparaissant dans A sont parmi p1 , . . . , pm .
Indication. On simplifiera sensiblement la démonstration en montrant que, pour tout opérateur
binaire ∗ ∈ {∧, ∨, →}, le séquent Aδ , B δ ⊢ (A ∗ B)δ est prouvable dans LK.
b) Soit A une tautologie dont les variables propositionnelles sont parmi p1 , . . . , pm .
Montrer que le séquent pδ1 , . . . , pδi ⊢ A est prouvable dans LK pour tout entier naturel i ≤ m, quelle
que soit δ . En déduire le théorème de complétude.
Le vrai et le faux
Lorsque l’on veut adopter ⊤ et ⊥ comme symboles logiques primitifs, il faut compléter LK par les
règles :
(⊤ d )
⊢⊤
(⊥ g )
⊥⊢
b) En déduire le lemme d’interpolation qui a déjà été démontré dans un exercice précédent par
d’autres moyens.
Institut Galilée 18 MM
Logique intuitionniste et système LJ.
A côté de la logique classique, objet principal du cours, se trouve la logique intuitionniste qui, elle,
n’exclut pas le tiers, c’est–à–dire dans laquelle la formule (A ∨ ¬A) n’est généralement pas prouvable.
La restriction essentielle qui distingue les séquents du système intuitionniste LJ de ceux du système LK
porte sur la forme des séquents Γ ⊢ A où le second membre A est réduit à une formule et une seule.
Les formules du calcul des propositions intuitionniste sont construites, à partir d’un ensemble de
variables propositionnelles et de la constante 0, par application des symboles binaires ∧, ∨ et →.
La négation intuitionniste est un symbole abréviateur défini par ¬A = (A → 0). L’introduction de
ce symbole permet de considérer une formule classique comme étant aussi une formule intuition-
niste : une formule intervenant dans les deux systèmes sera nécessairement classique mais, il y a
évidemment des formules intuitionnistes qui ne sont pas classiques!
L’introduction de 0 a pour rôle essentiel de simplifier l’écriture de la règle (∨ g) pour la disjonction à
gauche : on aura intérêt à regarder attentivement les règles relatives à la disjonction!
On admettra le Théorème d’élimination des coupures pour LJ (mais il est intéressant de regarder
comment se transposent les cas–clefs dont il a été question dans le cours au sujet de LK) :
Tout séquent prouvable dans LJ y admet une preuve n’utilisant aucune coupure.
MM 19 Institut Galilée
SYSTÈME LJ (Calcul propositionnel intuitionniste).
Identité
p⊢p
Coupure
Γ ⊢ A A, Λ ⊢ B
Γ, Λ ⊢ B
Règles structurelles
Γ⊢B
(A g )
A, Γ ⊢ B
A, A, Γ ⊢ B
(C g )
A, Γ ⊢ B
Γ⊢C
(E g )
σ(Γ) ⊢ C
pour toute permutation σ
Règles logiques
(0 g )
0⊢A
Γ⊢A Λ⊢B A, B, Γ ⊢ C
(∧ d ) (∧ g )
Γ, Λ ⊢ (A ∧ B) (A ∧ B), Γ ⊢ C
Γ⊢A
(∨B d )
Γ ⊢ (A ∨ B) A, Γ ⊢ C B, Λ ⊢ C
(∨ g )
Γ⊢B (A ∨ B), Γ, Λ ⊢ C
(A∨ d )
Γ ⊢ (A ∨ B)
A, Γ ⊢ B Γ ⊢ A B, Λ ⊢ C
(→ d ) (→ g )
Γ ⊢ (A → B) (A → B), Γ, Λ ⊢ C
Institut Galilée 20 MM
s
p = ¬¬p pour toute variable propositionnelle p
s
¬A = ¬ sA
s
(A ∧ B) = (sA ∧ s B)
s
(A ∨ B) = ¬¬(sA ∨ s B)
s
(A → B) = (sA → s B)
Montrer que sA est spéciale pour toute formule classique A.
c) Montrer que lorsque le séquent Γ ⊢ ∆ est prouvable dans LK alors ¬ s∆, Γ ⊢ 0 est prouvable dans
LJ. (Pour ∆ = B1 ; . . . ; Bn , on a posé ¬ s∆ = ¬ s B1 , . . . , ¬ s Bn .)
d) Montrer que ⊢ A est prouvable dans LK ssi ⊢ sA est prouvable dans LJ, quelle que soit la formule
classique A.
MM 21 Institut Galilée