Ch2

download Ch2

of 13

description

Ingénierie des protocoles - Heykel Tej - ISITCOM

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