Formes Normales
2019-2020
Plan
• Langage propositionnelle
• Formes normales
• Capacité expressive du langage propositionnel
• Nombre de formules non équivalentes
• Puissance expressive des connecteurs
Langage propositionnel
Remarquons que, même le langage propositionnel le plus simple, construit sur une seule variable propositionnelle p, comporte une infinité de formules:
• P, ¬P, ¬(¬P),…
Question 1 :
Existe-il dans un langage fini un nombre infini de formules non équivalentes?
Question 2 :
Existe-il un ensemble de connecteurs minimals pour exprimer
toute formule du langage propositionnel?
Formes Normales
Forme normale :
• La normalisation d'une formule logique.
Deux formes normales :
• Forme Normale Disjonctive (FND)
• Forme Normale Conjonctive (FNC)
L’utilisation des FND et FNC :
• L’étude des équivalences de formules d’un langage L(p1,p2,…,pn) (FND, FNC)
• La résolution des problèmes par le problème SAT (FNC)
• etc.
Forme Normale Disjonctive (FND)
Defi︎nition :
1. Une formule en FND : une disjonction de zéro ou plus clauses conjonctives.
C1 ∨ C2 … ∨ Cn
2. Une clause conjonctive Ci : une conjonction de zéro ou plus littéraux.
Ci = l1 ∧ l2 … ∧ lm
3. Un littéral : soit une variable propositionnelle, soit la négation d'une variable propositionnelle.
lj = xt ou lj = ¬xt
Exemple :
• (¬p ∧ q ∧ ¬r) ∨ (p ∧ ¬q ∧ ¬r) ∨(p ∧ q ∧ r)
• (p∧q)∨¬r
• p∧q
• p∨q
• p
- Oui, elles sont en FND
• ¬(p∨q)
• p∨(q∧(r∨s))
- Non, elles ne sont pas en FND
Théorème : Pour toute formule il existe une formule équivalente en FND.
Formule normale disjonctive (FND)
p q r A
0 0 0
0
0 0
0
0 1 1
1 1
1 1 1 1
0 0
0
0 1 1
1 1
0 0
0
0 0 1
1 1
Etant donné une table de
vérité, on peut lui associer une formule.
Exemple :
Considérons le langage L(p,q,r) construit sur 3 variables p, q, r.
Etant donné une table de
vérité, construire une formule
correspondant à cette table.
Formule normale disjonctive (FND)
On procède de la manière suivante :
1.On choisit la première ligne où A est censée prendre la valeur 1 : Ligne (3) : 1,0,1, on écrit p ∧ ¬q ∧ r.
2.On réitère maintenant le procédé pour toutes les lignes où A prend la valeur 1 :
Ligne (5) : 0,1,1, on écrit ¬p ∧ q ∧ r.
Ligne (8) : 0,1,1, on écrit ¬p ∧ ¬q ∧ ¬r.
3.On forme enfin la disjonction des formules obtenues en 1 , 2 : A = (p ∧ ¬q ∧ r) ∨ (¬p ∧ q ∧ r) ∨(¬p ∧ ¬q ∧ ¬r)
Toute formule est équivalente à la FND construite ainsi, et deux FNDs
distinctes ne peuvent pas être équivalentes.
Nombre de formules non équivalentes
Exemple
Considérons L(p), la table de vérité d'une formule est donnée par une colonne de 2 chiffres,
chacun d'eux étant égal à 0 ou 1.
Il y a donc 2^2 = 4 formules : A1 = p ∧ ¬p = F
A2 = p A3 = ¬p
A1 = p ∨ ¬p = T
p A1
0 0
0 1
A2 A3 A4
0 1 1
1 0 1
Nombre de formules non équivalentes
Exemple
Considérons L(p,q,r), la table de vérité d'une formule est donnée par une colonne de 8 chiffres,
chacun d'eux étant égal à 0 ou 1.
Il y a donc 2^8 = 256 formules dans le langage L(p,q,r).
Dans le cas général d'un langage construit sur n variables
propositionnelles, on a 2^(2^n) formules non équivalentes.
p q r A
0 0 0
0
0 0
0
0 1 1
1 1
1 1 1 1
0 0
0
0 1 1
1 1
*
*
*
*
*
*
*
*
Capacité expressive des connecteurs
Est-ce que { ¬, ∧, ∨, →, ↔ } est un ensemble de
connecteurs minimal pour exprimer toute formule propositionnelle?
p ∧ q = ¬(¬ p ∨ ¬ q) p → q = ¬ p ∨ q
p ↔ q = (p → q) ∧ (q → p)
Il s'ensuit qu'on peut construire toute formule
contenant { ¬, ∧, ∨, →, ↔ } en utilisant seulement
{ ¬, ∨ }.
Capacité expressive des connecteurs
Des transformations similaires peuvent être montrées pour { ¬, ∧ }, { ¬,
→ }.
Propositions 1 : {¬, ∨}, {¬, ∧}, {¬, →} sont les uniques sous-ensembles minimaux de capables d'exprimer toute formule.
Proposition 2 : Connecteurs {↓} et {nand} permettent aussi d'exprimer
toute formule.
Application du connecteur ou exclusif
On définit le connecteur ou exclusif (XOR), p⊕q, par la condition que p⊕q est vraie si une et une seule des proposition p et q est vraie :
p ⊕ q = (p ∧ ¬q) ∨ (¬p ∧ q)
Alice veut envoyer cette image à Bob
Problème : Images cryptées
Exemple : Images Cryptées
⊕
=
=
⊕ Alice
Bob
C A B
B A C
Exemple : Images Cryptées
Une image digitalisée peut être décrite comme une suite de pixels (des points
lumineux), chaque pixel ayant une couleur représenté par un nombre entier entre 0 et 255 (0:noir, 255:blanc). Ces nombres sont codés en binaire sur 8 bits (par ex.:
01110011=115). On peut «additionner» deux bits à l'aide de l‘opérateur XOR.
Ainsi, si les pixels de l'image originale C sont 01110011 et les pixels de l'image-clef A sont 10100101, l'«addition» des deux sera:
L'image originale C 0 1 1 1 0 0 1 1 L’image-clef A 1 0 1 0 0 1 0 1 L'image brouillée B 1 1 0 1 0 1 1 0
Si l'on «additionne» l'image brouillée et l'image-clef, on retrouve l'image originale : L'image brouillée B 1 1 0 1 0 1 1 0
L’image-clef A 1 0 1 0 0 1 0 1 L'image originale C 0 1 1 1 0 0 1 1