L2/LD TP 4 Simplification de formules propositionnelles

publicité
L2/LD TP 4 Simplication de formules
propositionnelles
Objectif
L'objectif de ce TP est d'implanter en Caml des règles de simplication de formules
de la logique des propositions.
1 Introduction (rappels et compléments de cours)
Une formule propositionnelle est une
tautologie
si elle est vraie pour toute interprétation (va-
luation) de ses variables. On peut détecter qu'une formule est une tautologie en construisant sa
table de vérité, comme dans le TP 3. Cependant, cette méthode est souvent plus longue que
nécessaire. En eet, on peut conclure plus vite, en observant la formule et en la simpliant.
F ∨ ¬F , alors c'est une tautologie, quelle que soit la
F . Il est donc inutile d'interpréter F . Ce principe est à la base de certaines méthodes
Par exemple, si une formule est de la forme
sous-formule
syntaxiques.
Dans ce TP, on va implanter des simplications de formules issues d'axiomes bien connus de
l'algèbre de Boole. Quelques-uns de ces axiomes sont rappelés dans la gure 1, où
F
est une formule
quelconque.
¬Faux = Vrai
Faux ∨ F = F
Faux ∧ F = Faux
F ∨F =F
¬Vrai = Faux
∨ F = Vrai
Vrai ∧ F = F
F ∧F =F
(1)
(3)
(5)
(7)
Vrai
(2)
(4)
(6)
(8)
Fig. 1 Quelques axiomes de l'algèbre de Boole
2 Elimination des constantes
Ecrire la fonction
elimVraiFaux : pf -> pf
qui applique les 6 premières égalités de la -
gure 1 de gauche à droite pour éliminer toutes les constantes Vrai et Faux dans une formule
propositionnelle.
Par exemple, appliquer cette fonction à
P ∧ (Faux ∨ (Q ∧ Vrai))
doit donner
P ∧ Q.
3 Itempotence
Ecrire une fonction qui applique les égalités (7) et (8) à une formule quelconque et à toutes ses
sous-formules.
Tester cette fonction sur une formule qui contient au moins trois cas d'application de ces
égalités.
1
4 Forme normale négative
Une formule est dite en
forme normale négative
lorsque toutes les négations s'appliquent à un
atome.
1. Ecrire une fonction qui vérie qu'une formule est en forme normale négative.
2. Utiliser les axiomes (1), (2) et
¬¬F = F
(9)
¬(F ∧ G) = (¬F ) ∨ (¬G) (10)
¬(F ∨ G) = (¬F ) ∧ (¬G) (11)
pour dénir une fonction qui met toute formule en forme normale négative.
3. Tester ces deux fonctions sur la formule
P ∧ ¬(Faux ∨ ¬(¬Q ∧ Vrai)).
5 Composition de simplications
On peut composer les fonctions précédentes pour obtenir encore plus de simplications.
1. Ecrire une fonction qui compose idempotence et mise en forme normale négative.
2. Appliquer cette fonction à une formule pour laquelle le résultat est plus simple que si l'on
n'applique qu'une seule des deux fonctions.
6 Forme normale conjonctive
Une formule est dite en
forme normale conjonctive
si c'est une conjonction (et) de disjonctions
(de ou) d'atomes ou de leur négation.
Ecrire une fonction qui met toute formule propositionnelle en forme normale conjonctive.
Tester cette fonction sur des formules particulières bien choisies.
2
Téléchargement