4. Logique des propositions

publicité
Justification
•  La logique sert de fondement aux mathématiques car elle modélise le raisonnement.
•  Une partie de l’informatique scientifique vise à l’automatisation
du raisonnement et se fonde à ce titre sur la logique.
•  La logique a ainsi des applications directes dans les domaines
informatiques suivants :
4. Logique des propositions
• 
• 
• 
• 
• 
• 
• 
• 
• 
• 
• 
• 
conception de circuits électroniques
preuves de programme
sémantique des langages de programmation
théorie des types, inférence
modélisation des problèmes
systèmes experts
démonstration automatique
programmation logique (langage Prolog)
intelligence artificielle
bases de données
réseaux booléens
...
1!
2!
Algèbre de Boole
L’algèbre de Boole IB!
Une algèbre de Boole est la donnée :
•  d’un ensemble E
•  de 2 éléments distincts ⊥ et
dans E
•  de 2 opérations binaires . et +
•  d’une opération unaire
•  l’ensemble {0,1} muni des opérations suivantes est une
algèbre de Boole :
•  une addition (non usuelle)
•  la multiplication
⊥
tels que chacune des opérations . et + est :
idempotente
associative
commutative
distributive par rapport à l’autre
mathématicien et
logicien britannique
et que pour tout x et tout y de E :
(éléments neutres)
= x
⊥ = x
⊥ = ⊥
(éléments absorbants)
= x = ⊥
(complémentaire)
x = (x + y ) = x = (y . x )+ x
(1815-1864)
⊥
Exemple
.
+
.
+
.
+
.
⊥
•  x
x
•  x
x
•  x
x
•  x
⊥
⊥
•  on la noteI!B!
(absorption)
•  l’opération unaire
est appelée la complémentation
•  ⊥ est 0 et
est 1
•  une variable à valeur dans I!B! est dite booléenne. ⊥
• 
• 
• 
• 
+ 0 1
. 0 1
x x
0 0 1
0 0 0
0 1
1 1 1
1 0 1
1 0
Les parties d’un ensemble fini avec l’intersection et l’union.
3!
4!
Qu’est-ce que la logique ?
Fonctions booléennes à 2 variables
• 
• 
ensemble des fonctions de {0,1}2 dans {0,1}
opérateurs logiques principaux :
la conjonction notée ∧
la disjonction notée
la négation
∨
(fonction unaire) ce sont le produit, l’addition et le complémentaire de l’algèbre de BooleI!
B!
et aussi les AND, OR et NOT ou même les &&, || et ! informatiques. • 
• 
∧
¬
∨
and
→
x
←
y
↔
xor
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1 0
0
0
1
1
0
0
1
0
1
0
1
0
1
x y
0
0
0
0
1
nor
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
↔ ¬y
← ¬x
→
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
or
nand
•  La logique sert à étudier le raisonnement. On y fait la distinction
entre :
•  les symboles
•  la manipulation formelle de symboles : la syntaxe •  la signification : la sémantique. •  On crée des modèles logiques à partir :
•  de langages de symboles
•  d’ensembles de règles syntaxiques.
Exemples
•  un programme est une suite de symboles ; un langage de programmation est un
ensemble de règles pour agencer ces symboles. Un programme se plie ainsi à
une syntaxe. Ensuite, on lui applique une sémantique afin d’interpréter ce
qu’il fait.
•  du point de vue symbolique, 3+4 est un mot de 3 caractères ; du point de vue
syntaxique, 3+4 est une expression arithmétique. Sémantiquement, on y voit
une addition entre les entiers 3 et 4 qui pourra être ensuite évaluée à 7.
5!
6!
Calcul propositionnel : syntaxe
Calcul propositionnel : sémantique
•  On parle indifféremment de logique booléenne, de logique des propositions :
c’est la plus simple des logiques, appelée la logique d’ordre 0. Dans cette logique, les formules sont appelées des propositions.
•  Soit F une formule et I une application de l’ensemble V dans I!
B!.
On identifie les constantes booléennes 0 et 1 respectivement à Faux
et à Vrai. I est alors appelée une interprétation.
•  On définit le calcul propositionnel comme on définit le calcul arithmétique.
•  Les formules sont construites à l’aide de variables issues d’un ensemble V
dénombrable et des symboles {, , ¬, ∨, ∧, (, ), →,↔}.'
• 
est l’absurde,  est son contraire : ce qui est toujours vrai.'
•  Définition inductive de l’ensemble des formules F :
(B) tout élément de V ∪{, } est une formule de F
(I) si A ∈ F alors si A, B ∈ F alors ¬A ∈ F
(A
(A
(A
(A
∧ B
∨ B
→ B
↔ B
7!
) ∈
) ∈
) ∈
) ∈
F
F
F
F
•  La valeur de vérité de F est notée I(F) et ainsi définie :
(B) si F =  : I(F) = 1
si F =
: I(F) = 0 si F = v ∈ V : I(F) = I(v) ∈I!B!
(I) si F = ¬F’ : I(F) = I(F’)'
si F = F’ ∧ F" :
si F = F’ ∨ F" :
I(F) = I(F’) . I(F")
I(F) = I(F’) + I(F") '
si F = F’ → F",
si F = F’ ↔ F",
I(F) = I(F’) + I(F") '
I(F) = ( I(F’) + I(F") ) . ( I(F") + I(F’) )'
8!
Vocabulaire
Satisfiabilité
•  Une formule est F est valide si, pour toute interprétation I :
I(F) = 1
Théorème Le problème de la satisfiabilité en logique des
propositions est décidable.
 on dit que F est une tautologie'
•  Une formule F est satisfiable si il existe une interprétation I telle que :
I(F) = 1 '
 on dit que I satisfait F et on le note : I
F
•  Une formule F est insatisfiable si, pour toute interprétation I on a :
I(F) = 0
 on dit que F est une antilogie.
•  Une interprétation qui rend vrai un ensemble de formules est un modèle.
•  Autrement dit, il existe un algorithme qui prend en entrée une
formule donnée F et qui renvoie en sortie 0 ou 1 selon que la
formule est satisfiable ou pas.
•  Cet algorithme n’est pas efficace. Il consiste en l’énumération
exhaustive de toutes interprétations de F i.e. de toutes les valeurs
de vérité possibles pour les variables.
•  D’autres algorithmes qui ne se fondent plus sur l’interprétation
(donc purement syntaxiques) pourraient être plus efficaces. C’est
l’idée de la déduction naturelle, une manière de produire
automatiquement des formules valides.
9!
Equivalence
•  Soient F et F’ deux formules, F et F’ sont équivalentes et on note
F ≡ F’
si et seulement si, pour toute interprétation I, on a :
I (F) = I (F’)'
Exemple
10!
Quelques « identités remarquables »
Prenons 2 variables booléennes p et q. Voici quelques équivalences purement syntaxiques :
Elimination des flèches :
p ↔ q
≡ (p
p → q
→ q ) ∧ ( q → p )'
¬p ∨ q '
≡
une loi ou identité logique De Morgan* :
Au sujet de la négation :'
¬ ( p ∨ q)
≡ ( ¬p ) ∧ (¬q )'
  il y a 4 possibilités pour le couple ( p,q).'
  pour toutes les possibilités, les deux formules ont la même valeur
de vérité. Elles sont donc équivalentes.
*
¬ ( ¬ p)
≡ p
¬ ( p ∨ q)
≡ ( ¬p )
∧ (¬q )'
¬ ( p ∧ q)
≡ ( ¬p )
∨ (¬q )'
mathématicien et logicien britannique (1806-1871)
11!
12!
Quelques « identités remarquables » (suite)
Des équivalences célèbres
Les équivalences logiques sont à la base des techniques de
démonstration.
Prenons 3 variables booléennes p, q et r.
Au sujet de la disjonction :
L’implication et sa contraposée :
p ∨ q ≡ q ∨ p'
p ∨ (q ∨ r) ≡ (p ∨ q) ∨ r
p ∨
≡ p'
p ∨  ≡ '
( p → q ) ≡ ( (¬q) → (¬p) )'
en effet : ( p → q ) ≡
Au sujet de la conjonction :'
Deux raisonnements par l’absurde :
p ∧ q ≡ q ∧ p'
p ∧ (q ∧ r) ≡ (p ∧ q) ∧ r'
p ∧
≡
'
p ∧  ≡ p'
( ( ¬ p) →
en effet : ( ¬ p) →
∧ r)
∨ r)
≡ (p
≡ (p
≡ ( (¬( ¬ p ) ) ∨
∨ q) ∧ (p ∨ r)
∧ q) ∨ (p ∧ r)
en effet : ( p ∧ (¬q ) ) →
'
'
'
'
l’absurde
)
≡ p'
) ≡ p ∨
( ( p ∧ (¬q ) ) →
Distributivité de l’une par rapport à l’autre :'
p ∨ (q
p ∧ (q
(¬ p ∨ q ) ≡ q ∨ ( ¬ p ) ≡ ( ¬ q ) → ( ¬ p )
) ≡ ( p → q )
≡ ( ¬ ( p ∧ (¬q ) ) ∨
≡ (¬ p ) ∨ q ≡( p → q )'
'
13!
p
≡
'
(¬ p ) ∨ q ∨
≡
'
14!
Table de vérité
Diagrammes de Quine*
On effectue les calculs pour les 2 possibilités de chaque variable. On simplifie les
calculs au fur et à mesure que des valeurs de variables sont fixées.
Pour connaître la valeur de vérité d’une formule, on calcule de
proche en proche la valeur de vérité des sous-formules qui la
composent :
¬(x ∨ ( y → x)) ∧ y
y=0
y=1
¬(x ∨ ( 0 → x)) ∧ 0
¬(x ∨ ( 1 → x))
¬x ∧ ¬(x)
x y
y → x
x ∨ ( y → x)
¬(x ∨ ( y → x))
¬(x ∨ ( y → x)) ∧ y
0
0
1
1
0
0
0
1
0
0
1
1
1 0
1
1
0
0
1
1
1
1
0
0
¬x
x=0
x=1
¬0
¬1
0
1
0
L’ordre dans lequel on procède n’importe pas :
¬(x ∨ ( y → x))
∧ y
x=0
x=1
¬(0 ∨ ( y → 0))
∧ y
¬(1 ∨ ( y
¬( y → 0)
∧ y
¬(1)
∧ y
0
∧ y
y=0
y=1
¬( y → 0) ∧ 0
¬( 1 → 0) ∧ 1
→ 1)) ∧ y
y=0
y=1
0
0
¬(0)
0
1
* logicien américain, né en 1908.
15!
16!
Conséquence
Modus ponens
•  Un ensemble de formules {F1, F2, …, Fn} satisfait F et on note
{F1, F2, …, Fn}
⇒
I(F) = 1
•  On dit alors que F est une conséquence des {F1, F2, …, Fn}.
Théorème
{ F1, F2,..., Fn }
F
ssi
( F1 ∧ F2 ∧ … ∧ Fn
) → F
est une tautologie.
Exercice : la démonstration se fait par simple récurrence sur n.
17!
Déduction
• 
En informatique, on est très intéressé par la démonstration
automatique
• 
d’où la nécessité de formaliser le raisonnement, et plus
précisément la déduction
• 
Un raisonnement valide :
  S’il pleut, je ne sors pas.   Or je sors,
  donc il ne pleut pas.
•  Un raisonnement qui ne l’est pas :
  S’il pleut, je ne sors pas.   Or il ne pleut pas,
  donc je sors.
19!
q ?
•  on cherche à montrer si, pour toute interprétation I, on a :
si, pour toute interprétation I, on a :
( ∀i, I(Fi) = 1 )
Est-ce que {p → q , p}
F
( ( (p → q ) ∧ p )
→
q )
≡
'
•  on pourrait faire la table de vérité ...
on procède ici par identités remarquables :'
'( (
(p → q )∧p ) → q )
≡
≡
≡
≡
≡
≡
≡
≡
¬( (p → q )∧p )
∨ q
¬ ( (¬ p ∨ q ) ∧ p )
∨ q ¬ ( (¬ p ∧ p ) ∨ ( q ∧ p ) ) ∨ q ¬(
∨ ( q ∧ p ) ) ∨ q ¬( q ∧ p ) ∨ q ¬ q ∨ (¬ p) ∨ q (¬ p) ∨ 
'
•  Cette règle de déduction s’appelle le modus-ponens.'
18!
Téléchargement