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!