Ch2
description
Transcript of Ch2
-
7/16/2019 Ch2
1/13
1
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
-
7/16/2019 Ch2
2/13
2
Un systme formel est un cadre mathmatique permettant de construireet 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. Notion de systme formel
-
7/16/2019 Ch2
3/13
3
La logique propositionnelle
Langage de formules = 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
2.1. La logique propositionnelle
|- f, |- f g
|- g
(prmisses)
(conclusion)
Rappel :
ab (a)b
=>
- ab = (a)b
- ab = ((a)(b))
-
7/16/2019 Ch2
4/13
4
Exemple : preuve de |- AA :
2.1. La logique propositionnelle
|- (A ((B A) A)) ((A (B A)) (AA))
|- (A ((B A) A))MP
|- (A (B A)) (AA) |- (A (B A))MP
|- AA
-
7/16/2019 Ch2
5/13
5
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
-
7/16/2019 Ch2
6/13
6
Application l'ingnierie des systmes
Soit E une spcification globaleSoit 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 driverchien et chien
=> contradiction
2.1. La logique propositionnelle
-
7/16/2019 Ch2
7/137
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
-
7/16/2019 Ch2
8/138
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
-
7/16/2019 Ch2
9/139
Un langage de programmesoit un langage de programme dfini par les instructions et oprations :
skip
S ; S'
Si C alors S sinon S' fin
Tantque 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
-
7/16/2019 Ch2
10/1310
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
2.2. La Logique de Hoare
-
7/16/2019 Ch2
11/1311
Rgles d'infrence des triplets de Hoarergle 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}
2.2. La Logique de Hoare
-
7/16/2019 Ch2
12/1312
Rgles d'infrence des triplets de Hoarergle 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} Tantque 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)
2.2. La Logique de Hoare
-
7/16/2019 Ch2
13/1313
Rgles d'infrence des triplets de Hoare
rgle du renforcement de la pr conditionP' => 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
2.2. La Logique de Hoare