Vous êtes sur la page 1sur 31

Cours 4

Induction Calcul propositionnel : syntaxe et s emantique

Induction

Bibliographie
Induction A. Arnold et I. Guessarian, Math ematiques pour linformatique Logique R. Lassaigne et M. de Rougemont, Logique et fondements de linformatique R. Cori et D. Lascar, Logique math ematique J. Stern, Fondements math ematiques de linformatique M. Huth et M. Ryan, Logic in Computer Science : modelling and reasoning about systems

Induction et Calcul propositionnel

2 / 31

Induction

Induction

Linduction
Un outil formel e egant tr` es utile en informatique l elle permet de faire des d enitions r ecursives
densembles de fonctions

elle propose une technique de preuve souvent plus e egante l que la r ecursion sur les entiers
mais la r ecursion sur les entiers est toujours possible

nous lavons d ej` a (implicitement) utilis ee pour pr esenter le calcul

Induction et Calcul propositionnel

4 / 31

Induction

D enitions inductives

La d enition inductive dune partie X dun ensemble consiste en la donn ee explicite de certains e ements de X (bases), l en la donn ee de moyens de construire de nouveaux e ements de X a el ements d ej` a connus (e tapes l ` partir d inductives).

Induction et Calcul propositionnel

5 / 31

Induction

D enition inductives
D enition
Soit E un ensemble. Une d enition inductive dune partie X de E consiste en la donn ee dun sous ensemble B de E, dun ensemble K de fonctions (partielles) : Ea() E, ou ` a() N est larit e de . X est d eni comme e eriant les tant le plus petit ensemble v assertions (B) et (I) suivantes (B) B X (I) K, x1 , . . . , xa() X, (x1 , . . . , xa() ) X.

Induction et Calcul propositionnel

6 / 31

Induction

D enition inductives
Lensemble ainsi d eni est donc X=
Y F

ou erie (I)}. ` F = {Y E | B Y et Y v Cela justie le terme le plus petit ensemble. Notation : nous pourrons noter une d enition inductive sous la forme (B) x X (x B) (I) x1 , . . . , xa() X = (x1 , . . . , xa() ) X ( K).

Induction et Calcul propositionnel

7 / 31

Induction

Exemples
Lensemble P N des entiers pairs (B) 0 P (I) n P = n + 2 P Lensemble 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 / 31

Induction

D enition explicite
Th eor` eme
Si X est d eni inductivement par les conditions (B) et (I), tout e l ement de X peut sobtenir a ` partir de la base en appliquant un nombre ni d etapes inductives. X=
nN

Xn

ou ` X0 = B Xn+1 = Xn {(x1 , . . . , xa() ) | x1 , . . . , xa() Xn et K} Remarque : tout e ement de X peut e esent e l tre repr graphiquement par une structure arborescente.
Induction et Calcul propositionnel 9 / 31

Induction

Les types r ecursifs cachent une d enition inductive


En Caml
type list = | Nil | Cons of int*list

En Coq
Inductive list : Set := | Nil | Cons (n:nat) (l:list ).

ou

Inductive list : Set := | Nil: list | Cons: nat list list.

Induction et Calcul propositionnel

10 / 31

Induction

Preuve par induction


Th eor` eme
Soit X un ensemble d eni inductivement par les conditions (B) et (I), et soit P(x) un pr edicat exprimant une propri et e de l el ement x de X. Si les conditions suivantes sont v eri ees : P(x) est vraie pour chaque x B, 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

11 / 31

Induction

Coq : g en eration dun principe dinduction

Check list_ind . >list_ind : P : list Prop , P Nil ( (n : nat) (l : list), P l P (Cons n l)) l : list , P l

Induction et Calcul propositionnel

12 / 31

Induction

Exercice
On d enit sur les arbres binaires AB le nombre de feuille f (x) dun arbre x comme le nombre doccurrence du symbole , le nombre de nud n(x) dun arbre x comme le nombre doccurrence des symboles de A. Montrer que pour tout x AB n(x) 2f (x) 1

Induction et Calcul propositionnel

13 / 31

Induction

D enition non-ambigu e
D enition
La d enition inductive dun ensemble X par les conditions (B) et (I) est dite non-ambigu e si pour tout x1 , . . . , xa() X et K, (x1 , . . . , xa() ) B, et pour tout x1 , . . . , xa() , x1 , . . . , xa( ) X et , K, (x1 , . . . , xa() ) = (x1 , . . . , xa( ) ) implique = et x1 = x1 , . . . , xa() = xa() . Exercice : donner des exemples de d enition non-ambigu e d enition ambigu e
Induction et Calcul propositionnel 14 / 31

Induction

Fonctions d enies inductivement


Th eor` eme
Soit X E un ensemble d eni inductivement par les conditions (B) et (I) tel que X est non-ambigu e, 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 pour tout x B, f (x) = fB (x) pour tout x1 , . . . , xa() X et K, f ((x1 , . . . , xa() )) = f (x1 , . . . , xa() , f (x1 ), . . . , f (xa() ))

Induction et Calcul propositionnel

15 / 31

Induction

Fonctions d enies par induction Caml/Coq


En Caml
let rec length : list int = function | Nil 0 | Cons (x,l) 1 + length l

En Coq
Fixpoint length (l:list) : nat := match l with | Nil 0 | Cons x q 1 + length q end .

Induction et Calcul propositionnel

16 / 31

Calcul propositionnel

Calcul propositionnel

Logique : motivations
Math ematiques comprendre la nature du raisonnement formaliser le raisonnement : en faire une th eorie math ematique, sassurer la coh erence. m ecaniser le raisonnement1 Informatique : faire raisonner les machines intelligence articielle v erication des programmes

Voir n du cours pour les (m es)aventures de Hilbert et Godel.


Induction et Calcul propositionnel 18 / 31

Calcul propositionnel

Le calcul propositionnel
Objectifs Formaliser et, ou, implique, non,.. Noyau minimal commun a emes logiques ` tous les syst` Les ingr edients dun syst` eme logique (ou syst` eme formel) Quest-ce quune formule ? (syntaxe) Quel sens donner a emantique) ` une formule ? (s Comment d emontrer quune formule est vraie ? (syst` emes de d eduction) Attention a ` ne pas confondre les formules (syntaxe) et leurs interpr etations (s emantique) !

Induction et Calcul propositionnel

19 / 31

Calcul propositionnel

Syntaxe

Syntaxe
V un ensemble d enombrable de symboles, appel es variables propositionnelles. C ensemble ni de connecteurs : C = {, , , , }

D enition (Formules propositionnelles)


Lensemble F des formules propositionnelles est un langage sur V C {(, )} d eni inductivement par : VF si F F, alors F F si F, G F, alors (F G), (F G), (F G), (F G) F

Induction et Calcul propositionnel

20 / 31

Calcul propositionnel

Syntaxe

D enition explicite
On pose F0 = V, Fn+1 = Fn {F | F Fn } {(F G) | F, G Fn , C}

Lemme
F=
nN

Fn

Induction et Calcul propositionnel

21 / 31

Calcul propositionnel

Syntaxe

Principe dinduction sur les formules


Comment prouver une propri et e sur les formules ? par r ecurrence sur la hauteur par induction sur les formules

Th eor` eme
Si une propri et e P(F) v erie P(F) est vraie pour tout formule F V, si P(F) est vraie pour F F alors P(F) est vraie, 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

22 / 31

Calcul propositionnel

Syntaxe

Hauteur dune formule

D enition (hauteur)
La hauteur dune formule F F est le plus petit entier n tel que F Fn . Exercice : D emontrer que pour tout formule F, hauteur(F) < longueur(F)

Induction et Calcul propositionnel

23 / 31

Calcul propositionnel

Syntaxe

D ecomposition unique
Th eor` eme (D ecomposition unique)
Soit F une formule, un et un seul des 3 cas suivants se pr esente : FV il existe une unique formule G telle que F = G il existe un unique C \ {}, et deux uniques formules G et H telles que F = (G H) (cf TD ou Cori&Lascar) Remarque : En dautres termes, la d enition inductive de F est non-ambigu e.

Induction et Calcul propositionnel

24 / 31

Calcul propositionnel

Syntaxe

Substitution
D enition (Substitution)
La formule F[G/p] (substitution de G a ` p dans F) est d enie par induction sur la formule F : si F = p, F[G/p] = G si F = q V \ {p}, F[G/p] = F si F = H, F[G/p] = H[G/p] si F = (F1 F2 ) avec {, , , }, F[G/p] = (F1 [G/p] F2 [G/p])

Induction et Calcul propositionnel

25 / 31

Calcul propositionnel

S emantique

Valuation

Nous interpr etons maintenant les formules en termes de valeur de v erit e.

D enition
Une distribution de valeurs de v erit e (valuation) est une application : V {vrai,faux} (ou ` {0, 1}, {T, F}).

Induction et Calcul propositionnel

26 / 31

Calcul propositionnel

S emantique

Op erations bool eennes


: {0, 1} {0, 1} x 0 1 (x) 1 0

: {0, 1} {0, 1} {0, 1}, C \ {} x 0 0 1 1 y 0 1 0 1 (x, y) 0 0 0 1 (x, y) 0 1 1 1 (x, y) 1 1 0 1 (x, y) 1 0 0 1

Induction et Calcul propositionnel

27 / 31

Calcul propositionnel

S emantique

Valeur de v erit e

D enition
La valeur de v erit e (F) dune formule F, par rapport a ` une valuation est d enie inductivement par : (p) = (p), p V (F) = ((F)) ((FG)) = ((F), (G)), C \ {} Remarque : sera e e . ventuellement not

Induction et Calcul propositionnel

28 / 31

Calcul propositionnel

S emantique

Tautologies, formules e quivalentes


D enition
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 e quivalentes si pour toute valuation , (F) = (G) (cest une relation d equivalence not ee ). Exemple : ((p (q r)) ((p q) (p r))) est une tautologie.

Induction et Calcul propositionnel

29 / 31

Calcul propositionnel

S emantique

Cons equence, satisabilit e


D enition
Soit un ensemble de formules, F une formule. F est cons equence de (not e |= F) si toute valuation qui satisfait toutes les formules de satisfait aussi F. est satisable sil existe une valuation qui satisfait toutes les formules de .

Proposition
|= F si et seulement si {F} est non satisable.

Induction et Calcul propositionnel

30 / 31

Calcul propositionnel

S emantique

Plan

Induction

Calcul propositionnel Syntaxe S emantique

Induction et Calcul propositionnel

31 / 31