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