introduction à la logique
introduction à la logique
introduction à la logique
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Logique<br />
Il est apparu dès l'antiquité <strong>la</strong> nécessité de développer <strong>la</strong> <strong>logique</strong>, et sa formalisation<br />
commence avec Artistote qui <strong>la</strong> develope pour contrer les sophistes et<br />
l'utilisation qu'ils font du <strong>la</strong>ngage.<br />
L'un des premiers exemples est le suivant :<br />
Socrate est un homme et Tous les hommes sont mortels donc Socrate est<br />
mortel.<br />
Toutefois, on se rend vite compte qu'il faut un formalisme très précis pour éviter<br />
des dérives :<br />
Tous ce qui est rare est cher et un cheval bon marché, c'est rare donc un<br />
cheval bon marché est cher. Le problème vient ici du fait que les termes sont mal<br />
dénit.<br />
1. Table de vérité<br />
On nommera assertion un énoncé qui ne fait pas intervenir de variables et qui<br />
peut prendre les valeures VRAI ou FAUX. Par exemple 2 ∈ R (VRAI), i ∈ C<br />
(VRAI), i ∈ Z (FAUX), tous les hommes sont mortels (VRAI), ...<br />
Par contre, x ∈ R n'est pas une assertion, car l'énoncé x ∈ R dépend de <strong>la</strong><br />
variable x.<br />
On peut alors se demander si une assertion est vrai ou fausse.<br />
Donnons nous deux assertions A et B. On peut alors leurs associer de nouvelles<br />
assertions : nonA , A et B, A ou B, A ⇒ B (implique) , A ⇔ B (équivaut à).<br />
1.1. L'opérateur non : négation <strong>logique</strong>. On prend simplement le contraire<br />
A<br />
V RAI<br />
F AUX<br />
nonA<br />
F AUX<br />
V RAI<br />
1.2. L'opérateur ou. Pour que l'assertion soit vraie, il faut que l'une ou l'autre<br />
des assertions soit vrai, mais pas forcément les deux.<br />
Exemple : Être ou ne pas être, les deux n'étant pas incompatible 1 .<br />
A B A ⇒ B<br />
V RAI V RAI V RAI<br />
V RAI F AUX V RAI<br />
F AUX V RAI V RAI<br />
F AUX F AUX F AUX<br />
Par exemple (1 ≥ 0)ou(0 ≥ 1) est vrai. Mais (0 ≥ 1)ou(1 ≥ 2) est faux.<br />
1. cf. toutefois le chat de Schrödinger<br />
1
1.3. L'opérateur et. Pour que l'assertion soit vraie, il faut que les deux soient<br />
vraies : une g<strong>la</strong>ce à <strong>la</strong> vanille et au citron.<br />
Exemple : Du pain et des jeux : c'est ce dont le public romain avait besoin selon<br />
Juvénal, il faut les deux.<br />
A B A ⇒ B<br />
V RAI V RAI V RAI<br />
V RAI F AUX F AUX<br />
F AUX V RAI F AUX<br />
F AUX F AUX F AUX<br />
Par exemple (1 ≥ 0)et(0 ≥ 1) est faux (car au moins l'un est faux).<br />
On montre, à l'aide de table de vérité, que non(AetB) = (nonA)ou(nonB). On<br />
en déduit alors que (AetB) = non((nonA)ou(nonB)).<br />
1.4. L'opérateur ⇒. Par dénition, on a (A ⇒ B) = non(Aet nonB).<br />
Exemple : Je pense donc je suis (ce n'est pas une équivalence en général).<br />
A B A ⇒ B (nonA)ouB<br />
V RAI V RAI V RAI V RAI<br />
V RAI F AUX F AUX F AUX<br />
F AUX V RAI V RAI V RAI<br />
F AUX F AUX V RAI V RAI<br />
Le fait que le vrai implique le vrai est vrai (2 première ligne) est ce qui nous<br />
importe le plus. Par contre, le fait que le faux implique n'importe quoi (3ème et<br />
4ème lignes) est vrai peut être déroutant. Toutefois, on peut s'en convaincre en<br />
regardant l'exemple de Russel suivant : si 2 + 2 = 5 alors je suis l'archevêque de<br />
Canterbury (trouver <strong>la</strong> preuve !).<br />
Regardons le principe de contraposition qui dit que si A ⇒ B est vrai si et<br />
seulement si non(B ⇒ nonA) est vrai (c'est une conséquence formelle de <strong>la</strong> table<br />
de vérité).<br />
1.5. L'opérateur ⇔. C'est <strong>la</strong> conjonction de A ⇒ B et de B ⇒ A. Par dénition<br />
on a donc (A ⇔ B) = ((A ⇒ B)et(B ⇒ A)).<br />
On a donc <strong>la</strong> table de vérité suivante<br />
A B A et B A ou B A ⇒ B A ⇔ B<br />
V RAI V RAI V RAI V RAI V RAI V RAI<br />
V RAI F AUX F AUX V RAI F AUX F AUX<br />
F AUX V RAI F AUX V RAI V RAI F AUX<br />
F AUX F AUX F AUX F AUX V RAI V RAI
En regardant toutes les dénitions des opérateurs introduits ci-dessus, on voit que<br />
tout les connecteurs peuvent se ramener à non et à ou. Ceci est très important<br />
en électronique.<br />
On peut démontrer énormément de règles diérentes. Nous allons en donner<br />
quelques unes.<br />
i) (AouB)ouC = Aou(BouC)<br />
ii) Aet(BetC) = (AetB)etC<br />
iii) (Aou(BetC)) = (AouB)et(AouC)<br />
iv) (Aet(BouC)) = (AetB)ou(AetC).<br />
v) non(AouB) = (nonA)et(nonB).<br />
1.6. Des assertions qui sont toujours vraies. On peut construire des assertions<br />
qui sont toujours vraies, par exemple :<br />
i) Aou(nonA), c'est le principe du tiers exclus : une chose ou son contraire est<br />
forcément vraie ;<br />
ii) non(Aet(nonA)), principe de non-contradiction : une chose ne peut pas être<br />
fausse en même temps que son contraire)<br />
iii) ((A ⇒ B)et(B ⇒ B)) ⇒ (A ⇒ B), transitivité de l'implication, Socrate est<br />
un homme et tous les hommes sont mortels donc Socrate est mortel.<br />
2. Quantificateur<br />
Nous passons maintenant aux prédicats qui sont des énoncés qui dépendent d'une<br />
ou plusieurs variables. Par exemple, x est un entier pair, (x ∈ C).<br />
On dispose de deux qanticateurs ∀ et ∃ qui permettent de remp<strong>la</strong>cer les variables<br />
par des valeurs prisent dans des ensembles.<br />
Par exemple, si A(x) est une assertion dépendant de <strong>la</strong> variable x, on peut écrire<br />
∀x ∈ E A(x)<br />
qui signie : pour tout élément x pris dans E, l'assertion A(x) est vraie.<br />
Ainsi, on pourrait considérer les exemples suivants<br />
∀x ∈ Z, x est un entier pair (cette assertion est fausse)<br />
∀x ∈ R, x ∈ C (vraie).<br />
Revenant à un prédicat abstrait A(x), on peut aussi écrire<br />
∃x ∈ E A(x)<br />
qui signie : il existe un élément de l'ensemble E tel que <strong>la</strong> re<strong>la</strong>tion A(x) soit<br />
vraie.<br />
Exemples :<br />
∃x ∈ Z, x est un entier pair (vraie)
∃x ∈ C, x ∈ Z (vraie).<br />
Utilisant des quanticateurs sur des prédicats, on obtient ainsi des assertions,<br />
qu'on peut connecter : non(∀x ∈ Zxest un entier pair), (vraie).<br />
On montre alors les équivalences suivantes :<br />
i) non(∀x, A(x)) équivaut à ∃x, nonA(x) (appliqué à <strong>la</strong> situation précédente,<br />
on voit que ce<strong>la</strong> veux dire qu'il existe des entiers qui ne sont pas pair).<br />
ii) non(∃x, A(x)) et ∀x, nonA(x).<br />
iii) non(∀x(P (x) ⇒ Q(x))) équivaut à ∃x(P (x)et non(Q(x))) (très utile ! !).<br />
3. Type de démonstration<br />
3.1. Démonstration directe. A ⇒ B.<br />
n est impair ⇒ n 2 est impair.<br />
3.2. Démonstration par contraposée. nonB ⇒ nonA.<br />
cf. l'exemple de Russel : comme je ne suis pas l'archevêque de Canterbury, alors<br />
2 + 2 ≠ 5.<br />
S'il pleut, le sol est mouillé ! Donc si le sol n'est pas mouillé, il ne pleut pas.<br />
n 2 est pair ⇒ n est pair.<br />
3.3. Démonstration par l'absurde. On suppose que que B est vraie et on<br />
essaie d'aboutir à nonA. On a alors A et nonA qui est toujours faux, ce qui<br />
contredit le principe de non-contradiction.<br />
√<br />
2 est irrationel, qui fut l'un des premiers exemples de démonstration par l'absurde<br />
et qui date de l'antiquité grecque. On suppose que √ 2 = p/q avec p et q<br />
premiers entre eux (par de diviseurs communs), ... 2 , on nit par montrer que p<br />
et q ont forcément un facteur commun, ce qui est absurde.<br />
3.4. Disjonction des cas. Dans un énoncé dépendant de paramètres, on regarde<br />
les diérentes valeurs des paramètres et on conclut selon les cas.<br />
Si on veut résoudre le système, pour m ∈ R<br />
{<br />
mx + y = 1<br />
x + my = m 2<br />
qui équivaut à {<br />
y = 1 − mx<br />
x(1 − m 2 ) = m(m − 1)<br />
Si m ∉ {−1, 1} alors x = m(m−1)<br />
1−m 2 donc y = ...<br />
Si m = −1 alors x.0 = 2 donc il n'y a pas de solution.<br />
2. remplissez !
Si m = 1 alors <strong>la</strong> dernière `équation équivaut à 0 = 0 donc on peut prendre x<br />
quelconque et y = 1 − x.<br />
3.5. Démonstration par récurrence. On a une hypothèse P (n) qui dépend<br />
d'un entier et on souhaite <strong>la</strong> montrer pour tous les entiers : si P (0) est vraie et<br />
que pour tout n ≥ 0 on a P (n) ⇒ P (n + 1) alors P (n) est vraie pour tout n ≥ 0.<br />
Il faut faire bien attention aux étapes, et on compare ce procédé à <strong>la</strong> montée d'un<br />
échelle. Pour pouvoir monter tout en haut, il sut de savoir monter sur le premier<br />
barreau (qui possède un statut particulier) puis, étant sur un certain barreau, de<br />
savoir passer au suivant.<br />
3.5.1. Premier exemple. Considérons <strong>la</strong> propriété P (n) armant que pour tout<br />
entier n on a 1 + 3 + 5 + 7 + · · · + (2n + 1) = (n + 1) 2 .<br />
Cette propriété est vraie pour n = 0 ! Supposons maintenant qu'elle est vraie au<br />
rang n. Alors au rang n + 1 on a<br />
1+2+3+· · ·+(2n+1)+(2n+3) H.R. 3<br />
= (n+1) 2 +2n+3 = n 2 +4n+4 = (n+2) 2 .<br />
3.5.2. Un contre-exemple. Considérons l'hypothèse P (n) armant que n = n+1.<br />
Par récurrence, supposons le résultat vrai au rang n et démontrons le au rang<br />
n + 1 :<br />
n + 2 = (n + 1) + 1 H.R.<br />
= n + 1.<br />
Donc <strong>la</strong> propriété serait vraie... si on avait initialisé <strong>la</strong> récurrence !<br />
3.5.3. La suite de Fibonacci. Suite de Fibonacci : on considère <strong>la</strong> suite u n dénie<br />
par u 0 = 0, u 1 = 1 et pour tout n ≥ 1 on a<br />
On souhaite montrer que<br />
c'est un calcul direct car<br />
u n = 1 √<br />
5<br />
((<br />
1 + 1 + √ 5<br />
2<br />
u n+1 = u n−1 + u n .<br />
1 + √ ) n (<br />
5<br />
−<br />
2<br />
= 3 + √ 5<br />
2<br />
=<br />
(<br />
1 − √ ) n )<br />
5<br />
2<br />
1 + √ ) 2<br />
5<br />
.<br />
2<br />
On voit que le seul problème est en fait de trouver <strong>la</strong> formule de récurrence !