Logique - Cours et autres pour MPSI 2

publicité
Logique :
Introduction :
Étude de la logique.
Définition : Formalisation du raisonnement mathématique.
Historiquement, on attribue les débuts de la logique à Aristote (syllogismes).
Puis Leibniz.
Au début du Xxème siècle, il y a une refondation des mathématiques.
Boole, Hilbert, de Morgan, Russel.
1950 : Connexion entre la logique et l'informatique.
I) Calcul propositionnel : 1) Définition : Une proposition est une phrase non ambigüe à laquelle on peut donner une valeur de vérité.
« 2 est pair »
«  est rationnel »
« Il fait beau »
Une proposition peut dépendre de paramètres.
1
x∈ℝ , « sin x≥ »
2
Définition : Une variable propositionnelle est une variable qui peut être remplacée par une proposition.
Notation :
p, q …
=> Calcul sur les propositions.
Exemple de calcul : p et (q ou r)
2) Syntaxe : a) Connecteurs usuels :
Connecteur logique
Négation
Conjonction
Ou exclusif
Implication
Équivalence
Non et
Non ou
Nom
non
et
nor
=>
<=>
n and
nor
Notations
non p, p , ¬ p
p+q,p and q, p∧q , p.q
p xor q, p (+) q
p => q
p <=> q
non (p et q)
non (p ou q)
L'arité d'un connecteur : nombre de ses paramètres.
Ou, et : connecteurs binaires.
Non : connecteur unaire.
=> ternaire.
Définition : Une proposition logique (formule) est une formule syntaxiquement correcte construite à l'aide de variables propositionnelles et de connecteurs.
Remarque : La parenthèsage est important.
Par ordre décroissant : ¬ , ∧ , ∨ , => , <=>
Exemple : ¬ p∨q∧r=¬ p∨ q∧r n'est pas ambigüe.
V : ensemble des variables propositionnelles.
P : ensemble des propositions.
Définition : Un littéral est soit une variable propositionnelle, soit la négation d'une variable propositionnelle.
b) En Ocaml :
Définition : Une proposition logique est :
– Une variable propositionnelle.
– La négation d'une proposition.
– La conjonction de deux propositions.
– La disjonction de 2 propositions.
– 2 constantes V et F.
En informatique, on dispose de V ={ p1 ,... , p n }
On définit en Caml, un type proposition.
On utilise un type récursif.
Type proposition = Var of char
|
Non of propositionnel
|
Et of proposition*proposition
|
Ou of proposition*proposition
|
V
|
F
;;
Exemple :  p∧q ∨r
let p1 = Ou(Et(Var 'p', Non(Var 'q')),Var 'r');;
II) Sémantique des propositions logiques : 1) Évaluation booléenne : Définition : Un booléen est un élément d'un ensemble de cardinal 2.
On note B l'ensemble des booléens.
Définition : Une distribution de vérité (ou environnement) est une application de V dans B.
∣
V  B={0,1}
p 1
Exemple : V = {p,q,r}  :
q 0
r 1
∗
Si Card V =n∈ℕ , il y a 2n distributions de vérité sur V.
On les présentent dans une table de vérité. V = {p,q,r}
P Q R
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
En Caml,  est représenté par un tableau de booléens.  est défini sur V.
Problème : Prolonger  à P l'ensemble des propositions logiques => on effectue un prolongement par induction.
Définition de  : P  B : – Si P est une valeur propositionnelle :   P =  P 
– Si P est la négation d'une proposition Q.   P =1−   Q
– Si P est une conjonction de deux propositions Q et R.   P =   Q×   R .
– Si P est une disjonction de deux propositions Q et R.
  P =   Q   R−   Q   R
Justification de la terminaison : Nombre strictement décroissant de connecteurs.
Connecteurs usuels :
p∧q
p q p
p∨q
p => q P <=> q p xor q p nand q p nor q
1 1
0
1
1
1
1
0
0
0
1 0
0
0
1
0
0
1
1
0
0 1
1
0
1
1
0
1
1
0
0 0
1
0
0
1
1
0
1
1
2) Propositions logiquement équivalentes : Définition : Deux propositions logiques P et Q sont logiquement équivalentes ssi, pour toute distribution de vérité  ,   P =   Q , et on note : P≡Q .
On distingue P≡Q et P ⇔ Q (le premier est une relation, le second un connecteur).
Exemple :  P⇒ Q≡ P∨Q
Problème : Pour construire P, combine de connecteurs ?
On utilise un système complet { ¬ , ∧ , ∨ } (ou parfois { ¬ , ∧ , ∨ , ⇒ } ).
 .
Autres systèmes complet : { ¬ , ∧ } , le ∨ est inutile, en effet P∨Q≡ P∧Q
Ou encore {nand}.
Démontrons que { ¬ , ∧ } est un système complet :
Raisonnement par induction :
Hypothèse d'induction : Tout proposition logique s'exprime en utilisant uniquement ¬ et ∧ .
Cas de base : Une valeur propositionnelle p≡ p .
Sinon, on considère P∈P .
 . Par hypothèse d'induction, Q≡Q ∗ , Q* n'utilisant que
– Si P est une négation, alors P=Q
¬ et ∧ , alors P≡Q ∗ .
– Si P est une conjonction : P=Q∧R .
{
Q≡Q∗
∗
∗
∗ , alors P≡Q ∧R
R≡R
– Si P est une disjonction : P=Q∨R .
Q≡Q ∗
, alors P≡Q ∗∧R∗ .
R≡R ∗
Justification de la terminaison : Nombre de connecteurs de Q et R < nombre de connecteurs de P.
Or
{
En Caml :
type proposition = Var | Et | Ou
Définir une fonction supprime_ou :
let rec supprime_ou = function
Var 'p' → Var 'p'
|
Non p → Non (supprime_ou p)
3) Tautologie :
Définition : Une proposition logique est une tautologie si elle est vraie pour tout distribution de vérité. ∀  ,   P =1 .
Une antilogie est la négation d'une tautologie.
Définition : Une proposition est P est satisfiable s'il existe une distribution de vérité pour laquelle elle est vraie.
Problème : Il s'agit d'un problème NP­complet, c'est à dire une complexité exponentielle.
Si Card V = n => 2n lignes de la table de vérité à vérifier.
Exemple : fonction satisfiable en Caml.
Il s'agit de générer tous les tableaux de booléens.
4) Fonctions booléennes :
Définition : V ={ p1 , ... , p n } , P une proposition logique définie sur V.
La fonction booléenne de P est l'application :
∣
n
f | P : {0,1}  {0,1}
   p1  ,... ,   p n     P
Exemple : P= p∨q ∧r
P → fP correspond au fait de construire la table de vérité de P.
Problème : Réciproque.
On considère f :{0,1}n  {0 ,1}
P tel que f =f | P , f fonction boléenne de P ?
Théorème : L'application
III)
∣
P  F {0,1}n , {0 , 1}
est surjective.
Q  f |Q
Formes disjonctives et conjonctives : 1) Vocabulaire :
P= P1 ∨ P2 ∨...∨ P n est une disjonction.
P= P1 ∧ P2 ∧...∧ P n est une conjonction.
Un littéral est une variable propositionnelle ou sa négation.
Un mintermes est une conjonction de littéraux dans laquelle figure une et une seule fois chaque variable propositionnelle.
Un maxterme est une disjonction de littéraux dans laquelle figure une et une seule fois chaque variable propositionnelle.
Exemples : littéraux : q, r .Minterme : p∧q∧r Maxterme : p∨ q∨r
Définition : La forme normale disjonctive (FND) d'une proposition P est une proposition logiquement équivalente et construite comme disjonction de mintermes.
La forme normale conjonctive (FNC) de P est une conjonction de maxtermes logiquement équivalente à P.
Théorème : Existence et unicité de la FND et FNC.
Exemples : V ={ p , q , r }
P= p∨q ∧r : une forme conjonctive.
Q= p⇒ q⇒ r ∧q
Q≡ p∨q⇒ r ∧q
Q≡ p∨q∨ r ∧q
Q≡ p∧ q ∨ r ∧q FD
Q≡ p∨r ∧ p∨q ∧ q ∨r ∧ q ∨q
Q≡ p∨r ∧ p ∨q ∧ q ∨r  FC
Comment obtenir la FND ?
Il s'agit d'une disjonction de mintermes.
On recherche dans le tableau de vérité les 1 pour P, dans l'exemple précédent on obtient :
P≡ p∧ q∧ r ∨ p ∧ q ∧ r ∨ p ∧ q∧ r  .
Pour la FNC, on cherche la FND de P puis on utilise les lois de Morgan.
Téléchargement