Vous êtes sur la page 1sur 13

Chapitre 2.

Notion de systme formel


3.1. Exemple de la logique propositionnelle 3.2. Exemple d'un systme de preuve de programme squentiel: la logique de Hoare

2. Notion de systme formel

Un systme formel est un cadre mathmatique permettant de construire et reprsenter des preuves
Un systme formel =
un langage de formules un sous-ensemble de ces formules appeles axiomes, vraies par dfinition des rgles de dduction (rgles d'infrence) formalisant les tapes lmentaires licites de raisonnement
Exemple : la logique propositionnelle la logique des prdicats la gomtrie euclidienne la logique de Hoare

2.1. La logique propositionnelle


La logique propositionnelle
Langage de formules =

Rappel : ab (a)b => - ab = (a)b - ab = ((a)(b))

soit Vp = {p, q, r, } un ensemble de variables propositionnelles soit les symboles et les formules de la logique propositionnelle sont dfinies par les rgles base : les lments de Vp sont des formules induction : si A et B sont des formules, alors A et AB sont des formules clture : tout terme obtenu en appliquant les rgles ci-dessus un nombre fini de fois est une formule

axiomes
(A1) : |- A (B A) (A2) : |- (A (B C)) ((A B) (A C)) (A3) : |- (B A) (A B)

rgle d'infrence unique : modus ponens

|- f, |- f g |- g

(prmisses) (conclusion)

2.1. La logique propositionnelle

Exemple : preuve de |- AA :

|- (A ((B A) A)) ((A (B A)) (A A))

|- (A ((B A) A)) MP
|- (A (B A)) (A A) MP |- A A |- (A (B A))

2.1. La logique propositionnelle


Application l'ingnierie des systmes
Soit un O un objet d'tude (une spcification ou un programme) Soit H un ensemble d'hypothses Soit P la proprit devant tre vrifie sur O Dmontrer P sur O sous l'hypothse H ncessite : le choix d'un systme formel S la traduction de O en FO1, FOn formules de S la traduction de H en FH1, FHm formules de S la traduction de P en FP formule de S la construction d'un arbre de preuve
dont les feuilles sont les FOi, FHj ou les axiomes de S dont la racine est FP et dont les nuds sont des applications des rgles d'infrence de S

2.1. La logique propositionnelle


Application l'ingnierie des systmes
Soit E une spcification globale Soit S un systme formel Notons {FE1,, FEn} les formules traduisant E dans le langage de S On dit que E est inconsistant (contradictoire) ssi |- (FE1 FEn) false (o false = aa) que l'on note : {FE1,, FEn} |- false

Exemple :
E={ les chiens sont interdits, les aveugles sont accompagns par un chien, il y a un aveugle}

E permet de driver chien et chien => contradiction


6

2.2. La Logique de Hoare

La Logique de Hoare :
technique pour raisonner sur les algorithmes premire tentative formelle pour la vrification de programmes repose sur la notion d'assertions
pr condition :
formule logique exprimant une hypothse sur les donnes d'un programme avant son excution

post condition
formule logique exprimant une hypothse sur les donnes d'un programme aprs son excution

Ide
Construire de faon incrmentale la formule logique caractrisant l'tat d'un programme aprs son excution => un calcul (formules et rgles d'infrence) => raisonnement sur la structure du programme

2.2. La Logique de Hoare

Ide : triplet de Hoare


associer une action quelconque S (instruction, sous-programme, programme) une pr condition P et une post condition Q, crit comme {P}S{Q} pour exprimer que si P est vrai avant l'excution de S, alors S termine et Q est vrai aprs l'excution de S

=> les formules du calcul : {P}S{Q} => signification de ces formules : {P}S{Q} est vrai si et seulement si sous l'hypothse que P est vrai avant S, alors S termine et Q est vrai aprs S

2.2. La Logique de Hoare

Un langage de programme
soit un langage de programme dfini par les instructions et oprations :
skip S ; S' Si C alors S sinon S' fin Tant que C faire S fin
x := E

=> une (ou plusieurs) rgles d'infrence (dfinissant les triplets de Hoare) pour chaque instruction et opration de ce langage

2.2. La Logique de Hoare


Compositionalit des triplets de Hoare
La vrit de {P}S{Q} ne dpend que de P, de Q et de la structure interne de S => il est possible de composer les formules pour obtenir la formule caractristique d'un programme global Soit deux sous programmes S1 et S2 Supposons que S1 et S2 sont caractriss par {P1}S1{Q1} et {P2}S2{Q2} Soit S' = S1 op S2 (composition squentielle, parallle) alors il doit tre possible de trouver P' fonction P1, P2 et Q' fonction de Q1 et Q2 tel que {P'}S'{Q'} => un ensemble de rgles d'infrence, pour composer les triplets de Hoare, dfini pour un langage de programmes donn => construction incrmentale du triplet de Hoare d'un programme global
10

2.2. La Logique de Hoare

Rgles d'infrence des triplets de Hoare


rgle de skip

{P}skip{P}
(l'instruction skip ne fait rien)

rgle de l'affectation {P[x/E]}x:=E{P}


(toute proprit de x aprs l'affectation doit tre une proprit de E avant l'affectation. P[x/E] est gal P dans laquelle toutes les occurrence libres de x sont remplaces par E)

rgle de la squence {P1}S1{P2} {P2}S2{P3} {P1}(S1 ; S2){P3}

11

2.2. La Logique de Hoare

Rgles d'infrence des triplets de Hoare


rgle du conditionnel

{P C}S{Q} {P C}S'{Q'} {P}Si C alors S sinon S' fin{Q Q'}


(toute proprit garantie par les deux branches est garantie par le bloc conditionnel)

rgle de la boucle I C => v N {I C v>V}S{I v=V} {I} Tant que C faire S fin{I C}
(I = invariant de la boucle, et v = variant valeur entire et ncessairement dcroissant, permet de dmontrer qu'une boucle termine)

12

2.2. La Logique de Hoare


Rgles d'infrence des triplets de Hoare
rgle du renforcement de la pr condition P' => P {P}S{Q} {P'}S{Q} rgle de l'affaiblissement de la post condition {P}S{Q} Q => Q' {P}S{Q'}

=> permet d'tablir des raisonnements incrmentaux sur les programmes

Exercices

13