I. Induction

Transcription

I. Induction
I. Induction
II. Calcul propositionnel : syntaxe et
sémantique
Induction
Bibliographie
Induction
I A. Arnold et I. Guessarian, Mathématiques pour l’informatique
Logique
I R. Lassaigne et M. de Rougemont, Logique et fondements de
l’informatique
I R. Cori et D. Lascar, Logique mathématique
I J. Stern, Fondements mathématiques de l’informatique
I M. Huth et M. Ryan, Logic in Computer Science : modelling and
reasoning about systems
Induction et Calcul propositionnel
2 / 34
Induction
Induction
L’induction
Un outil formel élégant très utile en informatique
I elle permet de faire des définitions ”récursives”
I
I
I
d’ensembles
de fonctions
elle propose une technique de preuve souvent plus élégante
que la récursion sur les entiers
I
mais la récursion sur les entiers est toujours possible
Induction et Calcul propositionnel
4 / 34
Induction
Définition inductives
La définition inductive d’une partie X d’un ensemble consiste
I en la donnée explicite de certains éléments de X (bases),
I en la donnée de moyens de construire de nouveaux
éléments de X à partir d’éléments déjà connus (étapes
inductives).
Induction et Calcul propositionnel
5 / 34
Induction
Définition inductives
Définition
Soit E un ensemble. Une définition inductive d’une partie X de E
consiste en la donnée
I d’un sous ensemble B de E,
I d’un ensemble K de fonctions (partielles) Φ : Ea(Φ) → E, où
a(Φ) ∈ N est l’arité de Φ.
X est défini comme étant le plus petit ensemble vérifiant les
assertions (B) et (I) suivantes
(B) B ⊆ X
(I) ∀Φ ∈ K, ∀x1 , . . . , xa(Φ) ∈ X, Φ(x1 , . . . , xa(Φ) ) ∈ X.
Induction et Calcul propositionnel
6 / 34
Induction
Définition inductives
L’ensemble ainsi défini est donc
X=
\
Y
Y∈F
où F = {Y ⊆ E | B ⊆ Y et Y vérifie (I)}.
I Cela justifie le terme ”le plus petit ensemble”.
Notation : nous pourrons noter une définition inductive sous la
forme
(B) x ∈ X (∀x ∈ B)
(I) x1 , . . . , xa(Φ) ∈ X =⇒ Φ(x1 , . . . , xa(Φ) ) ∈ X (∀Φ ∈ K).
Induction et Calcul propositionnel
7 / 34
Induction
Exemples
L’ensemble P ⊆ N des entiers pairs
(B) 0 ∈ P
(I) n ∈ P =⇒ n + 2 ∈ P
L’ensemble AB ⊆ (A ∪ {∅, ( , ) , ; })∗ des arbres binaires sur un
alphabet A
(B) ∅ ∈ AB
(I) ∀a ∈ A, g, d ∈ AB =⇒ (a; g; d) ∈ AB
Induction et Calcul propositionnel
8 / 34
Induction
Définition explicite
Théorème
Si X est défini inductivement par les conditions (B) et (I), tout
élément de X peut s’obtenir à partir de la base en appliquant un
nombre fini d’étapes inductives.
[
X=
Xn
n∈N
où
X0 = B
Xn+1 = Xn ∪ {Φ(x1 , . . . , xa(Φ) ) | x1 , . . . , xa(Φ) ∈ Xn et Φ ∈ K}
Remarque : tout élément de X peut être représenté
graphiquement par une structure arborescente.
Induction et Calcul propositionnel
9 / 34
Induction
Preuve par induction
Théorème
Soit X un ensemble défini inductivement par les conditions (B) et (I),
et soit P(x) un prédicat exprimant une propriété de l’élément x de X.
Si les conditions suivantes sont vérifiées :
I P(x) est vraie pour chaque x ∈ B,
I pour tout x1 , . . . , xa(Φ) ∈ X, si P(x1 ), . . . , P(xa(Φ) ) sont vraies
alors P(Φ(x1 , . . . , xa(Φ) )) est vraie, pour tout Φ ∈ K,
alors P(x) est vraie pour tout x ∈ X.
Induction et Calcul propositionnel
10 / 34
Induction
Exercice
On définit sur les arbres binaires AB
I le nombre de feuille f (x) d’un arbre x comme le nombre
d’occurrence du symbole ∅,
I le nombre de nœud n(x) d’un arbre x comme le nombre
d’occurrence des symboles de A.
Montrer que pour tout x ∈ AB
n(x) 6 2f (x) − 1
Induction et Calcul propositionnel
11 / 34
Induction
Définition non-ambiguë
Définition
La définition inductive d’un ensemble X par les conditions (B)
et (I) est dite non-ambiguë si
I pour tout x1 , . . . , xa(Φ) ∈ X et Φ ∈ K, Φ(x1 , . . . , xa(Φ) ) < B,
0
I et pour tout x1 , . . . , xa(Φ) , x 0 , . . . , x 0
1
a(Φ 0 ) ∈ X et Φ, Φ ∈ K,
0
0
Φ(x1 , . . . , xa(Φ) ) = Φ 0 (x10 , . . . , xa(Φ
0 ) ) implique Φ = Φ et
0
x1 = x10 , . . . , xa(Φ) = xa(Φ)
.
Exercice : donner des exemples de
I définition non-ambiguë
I définition ambiguë
Induction et Calcul propositionnel
12 / 34
Induction
Fonctions définies inductivement
Théorème
Soit X ⊆ E un ensemble défini inductivement par les conditions (B) et
(I) tel que X est non-ambiguë, soit F un ensemble quelconque, soit fB
une fonction de B → F et une famille de fonctions fΦ ∈ E2a(Φ) → F,
pour tout Φ ∈ K.
Il existe une unique fonction f ∈ X → F telle que
I pour tout x ∈ B,
f (x) = fB (x)
I
pour tout x1 , . . . , xa(Φ) ∈ X et Φ ∈ K,
f (Φ(x1 , . . . , xa(Φ) )) = fΦ (x1 , . . . , xa(Φ) , f (x1 ), . . . , f (xa(Φ) ))
Induction et Calcul propositionnel
13 / 34
Calcul propositionnel
Calcul propositionnel
Logique : motivations
Mathématiques
I comprendre la nature du raisonnement
I formaliser le raisonnement : en faire une théorie
mathématique, s’assurer la cohérence.
I mécaniser le raisonnement
Informatique : faire raisonner les machines
I intelligence artificielle
I vérification des programmes
Induction et Calcul propositionnel
15 / 34
Calcul propositionnel
Le calcul propositionnel
Objectifs
I Formaliser ”et”, ”ou”, ”implique”, ”non”,..
I Noyau minimal commun à tous les systèmes logiques
Les ingrédients d’un système logique (ou système formel)
I Qu’est-ce qu’une formule ? (syntaxe)
I Quel sens donner à une formule ? (sémantique)
I Comment démontrer qu’une formule est vraie ? (systèmes
de déduction)
Attention à ne pas confondre les formules (syntaxe) et
leurs interprétations (sémantique) !
Induction et Calcul propositionnel
16 / 34
Calcul propositionnel
Syntaxe
Syntaxe
V un ensemble dénombrable de symboles, appelés variables
propositionnelles.
C ensemble fini de connecteurs : C = {∧, ∨, ¬, ⇒, ⇔}
Définition (Formules propositionnelles)
L’ensemble F des formules propositionnelles est un langage sur
V ∪ C ∪ {(, )} défini inductivement par :
I V ⊆ F
I si F ∈ F, alors ¬F ∈ F
I si F, G ∈ F, alors (F ∧ G), (F ∨ G), (F ⇒ G), (F ⇔ G) ∈ F
Induction et Calcul propositionnel
17 / 34
Calcul propositionnel
Syntaxe
Définition explicite
On pose
I F0 = V,
I Fn+1 = Fn ∪ {¬F | F ∈ Fn } ∪ {(F α G) | F, G ∈ Fn , α ∈ C}
Lemme
F=
[
Fn
n∈N
Induction et Calcul propositionnel
18 / 34
Calcul propositionnel
Syntaxe
Principe d’induction sur les formules
Comment prouver une propriété sur les formules ?
I par récurrence sur la hauteur
I par induction sur les formules
Théorème
Si une propriété P(F) vérifie
I P(F) est vraie pour tout formule F ∈ V,
I si P(F) est vraie pour F ∈ F alors P(¬F) est vraie,
I et si P(F) et P(G) sont vraies pour F, G ∈ F alors P((F ∧ G)),
P((F ∨ G)), P((F ⇒ G)) et P((F ⇔ G)) sont vraies,
alors P(F) vraie pour toute formule F.
Induction et Calcul propositionnel
19 / 34
Calcul propositionnel
Syntaxe
Hauteur d’une formule
Définition (hauteur)
La hauteur d’une formule F ∈ F est le plus petit entier n tel que
F ∈ Fn .
Exercice : Démontrer que pour tout formule F,
hauteur(F) < longueur(F)
Induction et Calcul propositionnel
20 / 34
Calcul propositionnel
Syntaxe
Décomposition unique
Théorème (Décomposition unique)
Soit F une formule, un et un seul des 3 cas suivants se présente :
I F ∈ V
I il existe une unique formule G telle que F = ¬G
I il existe un unique α ∈ C \ {¬}, et deux uniques formules G et H
telles que F = (G α H)
(cf Cori&Lascar)
Remarque : En d’autres termes, la définition inductive de F est
non-ambiguë.
Induction et Calcul propositionnel
21 / 34
Calcul propositionnel
Syntaxe
Substitution
Définition (Substitution)
La formule F[G/p] (substitution de G à p dans F) est définie par
induction sur la formule F :
I si F = p, F[G/p] = G
I si F = q ∈ V \ {p}, F[G/p] = F
I si F = ¬H, F[G/p] = ¬H[G/p]
I si F = (F1 α F2 ) avec α ∈ {∧, ∨, ⇒, ⇔},
F[G/p] = (F1 [G/p] α F2 [G/p])
Induction et Calcul propositionnel
22 / 34
Calcul propositionnel
Sémantique
Valuation
Nous interprétons maintenant les formules en termes de valeur
de vérité.
Définition
Une distribution de valeurs de vérité (valuation) est une
application ϕ : V → {vrai,faux} (où {0, 1}, {T, F}).
Induction et Calcul propositionnel
23 / 34
Calcul propositionnel
Sémantique
Opérations booléennes
~¬ : {0, 1} → {0, 1}
x ~¬(x)
0
1
1
0
~α : {0, 1} × {0, 1} → {0, 1}, ∀α ∈ C \ {¬}
x
0
0
1
1
y ~∧(x, y) ~∨(x, y) ~⇒(x, y) ~⇔(x, y)
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
Induction et Calcul propositionnel
24 / 34
Calcul propositionnel
Sémantique
Valeur de vérité
Définition
La valeur de vérité ϕ(F) d’une formule F, par rapport à une
valuation ϕ est définie inductivement par :
I ϕ(p) = ϕ(p), p ∈ V
I ϕ(¬F) = ~¬(ϕ(F))
I ϕ((FαG)) = ~α(ϕ(F), ϕ(G)), ∀α ∈ C \ {¬}
Remarque : ϕ sera éventuellement noté ϕ.
Induction et Calcul propositionnel
25 / 34
Calcul propositionnel
Sémantique
Tautologies, formules équivalentes
Définition
I
I
I
Une formule F est satisfaite pour une valuation ϕ si ϕ(F) = 1.
Une tautologie est une formule satisfaite pour toute
valuation.
Deux formules F et G sont dites équivalentes si pour toute
valuation ϕ, ϕ(F) = ϕ(G) (c’est une relation d’équivalence
notée ≡).
Exemple : ((p ⇒ (q ⇒ r)) ⇒ ((p ⇒ q) ⇒ (p ⇒ r))) est une
tautologie.
Induction et Calcul propositionnel
26 / 34
Calcul propositionnel
Sémantique
Conséquence, satisfiabilité
Définition
Soit Σ un ensemble de formules, F une formule.
I F est conséquence de Σ (noté Σ |= F) si toute valuation qui
satisfait toutes les formules de Σ satisfait aussi F.
I Σ est satisfiable s’il existe une valuation qui satisfait toutes
les formules de Σ.
Proposition
Σ |= F si et seulement si Σ ∪ {¬F} est non satisfiable.
Induction et Calcul propositionnel
27 / 34
Calcul propositionnel
Sémantique
Substitutions
Notation : F[p1 , . . . , pn ] indique qu’une formule F ne comporte
pas de variables en dehors de p1 , . . . , pn .
Proposition
Soit F[p1 , .., pn ] une formule et ϕ une valuation, alors la valeur ϕ(F)
ne dépend que de la valeur de ϕ sur p1 , .., pn .
Proposition
Soient F et G deux formules et ϕ une valuation, alors la valeur de
F[G/p] pour ϕ est égale à la valeur de F pour une valuation ϕ 0 telle
que ϕ 0 (p) = ϕ(G) et ϕ 0 (q) = ϕ(q) pour tout q ∈ V \ {p}.
Induction et Calcul propositionnel
28 / 34
Calcul propositionnel
Sémantique
Substitutions
Corollaire
Soit F, F 0 , G, G 0 des formules et p ∈ V :
I
I
I
si F est une tautologie alors F[G/p] est une tautologie
si F ≡ F 0 alors F[G/p] ≡ F 0 [G/p]
si G ≡ G 0 alors F[G/p] ≡ F[G 0 /p]
Exemples :
I
I
pour toutes formules F, G, H,
((F ⇒ (G ⇒ H)) ⇒ ((F ⇒ G) ⇒ (F ⇒ H))) est une
tautologie.
¬(F ∧ G) ≡ (¬F ∨ ¬G)
Induction et Calcul propositionnel
29 / 34
Calcul propositionnel
Sémantique
Formes normales
Théorème
On a une bijection entre les applications de {0, 1}n → {0, 1} et
l’ensemble des formules sur p1 , .., pn quotienté par ≡.
Représentants particuliers : formes normales
I Forme normale disjonctive (FND) : F = G1 ∨ .. ∨ Gk et
Gi = (Bi,1 ∧ .. ∧ Bi,ni ) avec Bi,j = p ou ¬p (litéral).
I Forme normale conjonctive (FNC) : F = G1 ∧ .. ∧ Gk et
Gi = (Bi,1 ∨ .. ∨ Bi,ni ) avec Bi,j un litéral.
Théorème
Tout formule est équivalente à une formule sous FND et une formule
sous FNC.
Remarque : on s’autorise à supprimer des parenthèses quand
cela ne change pas la classe d’équivalence.
Induction et Calcul propositionnel
30 / 34
Calcul propositionnel
Sémantique
Forme normale
Comment calculer une forme normale ?
I
I
à partir de la table de vérité
par manipulation symbolique
Remarque : on peut éviter une explosion de la formule avec la
transformation de Tseitin. On n’obtient pas une formule
équivalente mais une formule satisfiable ssi la formule d’origine
l’est. C’est un pré-traitement très utilisé dans les solveurs SAT.
Induction et Calcul propositionnel
31 / 34
Calcul propositionnel
Sémantique
Systèmes complets de connecteurs
Définition
Un système complet de connecteurs est un ensemble de
connecteurs qui permet d’engendrer toutes les applications de
{0, 1}n → {0, 1}
Exemple : {¬, ∧, ∨}, {¬, ∨}, {nand}, {nor}.
Induction et Calcul propositionnel
32 / 34
Calcul propositionnel
Sémantique
Théorème de compacité
Définition
Un ensemble Σ de formules est finiment satisfiable si tout
sous-ensemble fini de Σ est satisfiable.
Théorème (de compacité)
Σ satisfiable si et seulement si Σ finiment satisfiable.
Induction et Calcul propositionnel
33 / 34
Calcul propositionnel
Sémantique
Plan
1
Induction
2
Calcul propositionnel
Syntaxe
Sémantique
Induction et Calcul propositionnel
34 / 34