Logique propositionnelle

Introduction

Florent Capelli

07 Janvier 2025

Présentation

https://florent.capelli.me/enseignements/systemes_logiques/

Organisation de l’année

Deux grandes parties :

  1. Logique propositionnelle (séances 1-4)
  2. Logique du premier ordre (séances 5-10)

Évaluation :

  • CC1 le 05/02 (logique propositionnelle).
  • CC2 le 05/03 (logique premier ordre).
  • Examen en fin de semestre.

Pas de cours le 22/01 (rattrapé en deux fois, les 12/02 et 19/03).

Logique(s)

Qu’est-ce que la logique ?

Formaliser les raisonnements valides.

Domaine faisant historiquement partie de la philosophie mais devenu par la suite

  • un outil des mathématiques
  • un sujet d’études des mathématiques
  • un outil de l’informatique

Bien Raisonner

Sophisme :

  • Les carnivores ont des dents.
  • Le loup a des dents.
  • Donc le loup est carnivore.

  1. Est-ce que la conclusion est vraie ?
  2. Est-ce que le raisonnement est valide ?
  • Remplacer loup par vache.
  • Même raisonnement, conclusion fausse.

Comment formaliser ce raisonnement (et mettre le sophisme à jour) ? Cette symmétrie ?

Bien Raisonner II

Exemple par Pierre Marquis (note du cours de l’an dernier) :

Le revenu moyen des agriculteurs a progressé de 25% depuis l’an dernier. Donc la situation des agriculteurs s’est améliorée en un an.

  • Revenu 2023 : Adélaïde (900k€), Bernard (200k€), Camille (100k€). Le revenu moyen est de 400k€.
  • Revenu 2024 : Adélaïde (500k€), Bernard et Camille ont cessé leur activité tant le marché était mauvais. Le revenu moyen est de 500 k€, il a progressé de 25% en un an…

Pourquoi étudier la logique en Master Informatique ?

  1. Liens étroits avec de nombreux domaines :
    • circuits logiques
    • intelligence artificielle
    • base de données
    • génie logiciel
    • programmation logique
    • vérification
  2. Outil de modélisation important :
    • modéliser le comportement d’un code pour en prouver la correction.
    • modéliser un problème pour le résoudre avec des outils appropriés.

Des logiques

Il existe de nombreux systèmes logiques différents permettant de modéliser différentes choses :

  • logique propositionnelle (séance 1-4)
  • logique du premier ordre (séance 5-10)
  • logique modale : modéliser les connaissances, le temps etc.
  • logique floue : modéliser les connaissances incertaines.
  • logique intuitioniste : logique où les théorèmes ont des preuves constructives.

Logique propositionnelle

Motivations

  • Le fragment le plus simple de la logique mathématique classique
  • Marque le début de l’algébrisation de la logique (1847) : travaux de Georges Boole et d’Auguste de Morgan
  • Raisonner = calculer
  • La logique classique des propositions constitue le socle de très nombreuses logiques développées en intelligence artificielle

Notion de proposition

Logique propositionnelle étudie les liens logiques entre des propositions :

  • une proposition peut prendre une valeur de vérité vrai ou faux
  • en français, cela correspond à un fait énoncé de façon déclarative :
    • “Il fait beau”.
    • “Camille programme en C”.
    • “Daniel aime SAT”.

Proposition et modélisation

Le contenu des propositions atomique n’importe pas au niveau logique.

  • p: il pleut
  • q: j’ai mon parapluie

“Quand il pleut, je prends mon parapluie” peut se modéliser par la formule p ⇒ q.

  • p: il pleut
  • q: il y a du soleil

“Quand il pleut, il y a du soleil” se modélise par la même formule p ⇒ q.

La logique propositionnelle fait abstraction du sens des propositions atomiques.

Proposition et modélisation II

On peut choisir des propositions “complexes” comme étant atomiques dans la modélisation. Cela dépend du niveau de précision dont on a besoin.

“Il pleut et le magasin est fermé”.

C’est soit une seule proposition atomique, soit la conjonction de deux propositions atomiques (“il pleut”, “le magasin est fermé”).

Formules propositionnelles

Soit X un ensemble infini de propositions atomiques, on construit l’ensemble des formules propositionnelles inductivement :

  • pour tout p ∈ X, p est une formule propositionnelle.
  • si F1, F2 sont deux formules propositionnelles, alors :
    • Conjonction: F1 ∧ F2 est une formule propositionnelle (on lira “F1 ET F2”)
    • Disjonction: F1 ∨ F2 est une formule propositionnelle (on lira “F1 OU F2”)
    • Négation: ¬F1 est une formule propositionnelle (on lira “NON F1”).

Exemples

x, y, z sont des propositions atomiques :

  • x ∧ y
  • (xy) ∨ (xz)
  • (x∧(yx)) ∧ z
  • ¬(xy) ∨ ¬(xz)

Interprétation

Les formules sont la syntaxe de la logique. On définit maintenant sa sémantique :

  • Une interprétation ω (ou monde) est une application des propositions atomiques dans {0, 1} (0 pour “faux”, 1 pour “vrai”).
  • La sémantique F⟧(ω) d’une formule F est définie inductivement :
    • si F est une proposition atomique, alors F⟧(ω) = ω(F)
    • si F = F1 ∧ F2 est une proposition atomique, alors F⟧(ω) = min (⟦F1⟧(ω),⟦F2⟧(ω))
    • si F = F1 ∨ F2 est une proposition atomique, alors F⟧(ω) = max (⟦F1⟧(ω),⟦F2⟧(ω))
    • si F = ¬F1 est une proposition atomique, alors F⟧(ω) = 1 − ⟦F1⟧(ω).

Exemples

Pour l’interprétation ω = {x ↦ 1, y ↦ 1, z ↦ 0} :

  • x ∧ y⟧(ω) = 1
  • ⟦(xy) ∨ (xz)⟧(ω) = 1
  • ⟦(x∧(yx)) ∧ z⟧(ω) = 0
  • ⟦¬(xy) ∨ ¬(xz)⟧(ω) = 1

Satisfaction, modèle, table de vérité

  • On dit que ω satisfait (ou est un modèle de) F si F⟧(ω) = 1.
  • Si F⟧(ω) = 0, on dit que ω est un contre-modèle de F.

La valeur F⟧(ω) ne dépend que de la valeur d’ω des propositions atomiques qui apparaissent dans F (qu’on notera var(F)).

On peut donc écrire la table de vérité d’une formule F: la liste de toutes les interprétations ω de var(F) et la valeur de F⟧(ω).

Si var(F) contient 5 propositions atomiques, combien d’interprétations différentes existe-t-il ? Et si |var(F)| = n ?

Exemple

Table de vérité de (xy) ∨ (x∧¬z) :

x y z F⟧(ω)
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 1

Validité, satisfiabilité

Point vocabulaire :

  • une formule F est valide, notée  ⊨ F, si toute interprétation ω satisfait F. Ce sont des vérités logiques.
  • une formule F est contradictoire si aucune interprétation ω ne satisfait F.
  • une formule F est satisfiable si elle a au moins une interprétation ω qui la satisfait.

Conséquence logique

  • Une formule F est une conséquence logique d’une formule G, notée G ⊨ F, si toute interprétation qui satisfait G satisfait aussi F.
  • F et G sont logiquement équivalents si F ⊨ G et G ⊨ F.

A-t-on x ∧ y ⊨ x ∨ y ? Et x ∨ y ⊨ x ∧ y ?

Autres connecteurs logiques

On peut utiliser d’autres connecteurs logiques dans les formules :

  • Implication :
  • Ou exclusif , aka “xor”
  • NAND
  • Même des opérateurs “ternaires” : ExactementUn(F,G,H)

Sucre syntaxique :

  • F ⇒ G: ¬F ∨ G
  • F ⊕ G: (FG) ∧ (¬F∨¬G)
  • F NAND G: ¬(FG)
  • ExactementUn(F,G,H)?

Inclut dans la sémantique:

  • F ⇒ G⟧(ω) = max (1−⟦F⟧(ω),⟦G⟧(ω))
  • F ⊕ G⟧(ω) = |⟦F⟧(ω)−⟦G⟧(ω)|
  • F NAND G⟧(ω) = 1 − min (⟦F⟧(ω),⟦G⟧(ω))
  • ExactementUn(F,G,H)⟧(ω)?

Une parenthèse : l’implication

Intuitivement F ⇒ G : “si F est vrai, alors G est vrai aussi”.

Rien n’est exigé dans le cas où F est faux.

  • La sémantique de F ⇒ G sur une interprétation ω est donc:
    • si F⟧(ω) = 1 et G⟧(ω) = 1, alors F ⇒ g⟧(ω) = 1
    • si F⟧(ω) = 1 et G⟧(ω) = 0, alors F ⇒ G⟧(ω) = 0
    • si F⟧(ω) = 0, alors F ⇒ G⟧(ω) = 1 (quelque soit la valeur de G⟧(ω)).
  • Modélisation : permet de “forcer” des dépendances : (OptionCryptOptionSecure) ⇒ (libSSL)
  • On peut vérifier que F ⊨ G et  ⊨ F ⇒ G sont équivalents.

Fonctions booléennes et formules

Une formule booléenne F sur les propositions atomiques X définit une unique fonction booléenne {0, 1}X → {0, 1}.

  • une interprétation est un élément de {0, 1}X.
  • F nous dit si l’interprétation est satisfaisante soit F⟧(ω) = 1, ou pas, soit F⟧(ω) = 0.

Complétude de la logique propositionnelle :

Toute fonction booléenne peut être décrite par une formule.

Exemple

Trouver F qui a cette table de vérité :

x y z F⟧(ω)
0 0 0 1
0 1 0 1
1 0 0 1
* * * 0

x∧¬y∧¬z) ∨ (¬xy∧¬z) ∨ (x∧¬y∧¬z)

On peut toujours faire ça : lister les modèles et écrire une formule de la forme ωx(ω(x)⋅x)

C’est une Forme Normale Disjonctive.

Logiques propositionnelles

Syntaxe de la logique propositionnelle avec les connecteurs {∧,∨,¬}.

Choix arbitraire, d’autres choix seraient possibles {⇒,¬} par exemple

Quid de {∧, ∨ } ?

Défini une logique mais cette logique ne peut pas capturer toutes les fonctions booléennes (pourquoi ?).

Un ensemble de connecteur (avec une sémantique) est fonctionnellement complet si la logique propositionnelle qu’il définit permet d’exprimer toutes les fonctions booléennes.

Exemples

  • {⇒,¬}
  • {NAND} (aussi noté | et connu sous le nom Barre de Sheffer)
  • {NOR} (aussi noté et connu sous le nom de flèche de Pierce ou poignard de Quine).

Choix d’un système de connecteurs ne change pas l’expressivité du langage mais possiblement sa concision et la structure du langage obtenu.