Successfully reported this slideshow.

Ch2

272 vues

Publié le

  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Ch2

  1. 1. 1Chapitre 2. Notion de système formel…3.1. Exemple de la logique propositionnelle3.2. Exemple dun système de preuve de programmeséquentiel: la logique de Hoare
  2. 2. 2Un système formel est un cadre mathématique permettant deconstruire et représenter des preuvesUn système formel =– un langage de formules– un sous-ensemble de ces formules appelées axiomes, vraies par définition– des règles de déduction (règles dinférence) formalisant les étapesélémentaires licites de raisonnementExemple : la logique propositionnellela logique des prédicatsla géométrie euclidienne……la logique de Hoare…2. Notion de système formel…
  3. 3. 3La logique propositionnelleLangage de formules =• soit Vp = {p, q, r, …} un ensemble de variables propositionnelles• soit les symboles ¬ et →• les formules de la logique propositionnelle sont définies par les règles– base : les éléments de Vp sont des formules– induction : si A et B sont des formules, alors ¬A et A→B sont desformules– clôture : tout terme obtenu en appliquant les règles ci-dessus un nombrefini de fois est une formuleaxiomes(A1) : |- A → (B → A)(A2) : |- (A → (B → C)) → ((A→ B) → (A→ C))(A3) : |- (¬B → ¬A) → (A → B)règle dinférence unique : modus ponens2.1. La logique propositionnelle…|- f, |- f → g|- g(prémisses)(conclusion)Rappel :a→b ≡ (¬a)∨b=>- a∨b = (¬a)→b- a∧b = ¬((¬a)∨(¬b))Rappel :a→b ≡ (¬a)∨b=>- a∨b = (¬a)→b- a∧b = ¬((¬a)∨(¬b))
  4. 4. 4Exemple : preuve de |- A→A :2.1. La logique propositionnelle…|- (A → ((B → A) → A)) → ((A → (B → A)) →(A → A))|- (A → ((B → A) → A))MP|- (A → (B → A)) →(A → A) |- (A → (B → A))MP|- A → A
  5. 5. 5Application à lingénierie des systèmesSoit un O un objet détude (une spécification ou un programme)Soit H un ensemble dhypothèsesSoit P la propriété devant être vérifiée sur ODémontrer P sur O sous lhypothèse H nécessite :– le choix dun système 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 dun arbre de preuve• dont les feuilles sont les FOi, FHj ou les axiomes de S• dont la racine est FP• et dont les nœuds sont des applications des règles dinférence de S2.1. La logique propositionnelle…
  6. 6. 6Application à lingénierie des systèmesSoit E une spécification globaleSoit S un système formelNotons {FE1,…, FEn} les formules traduisant E dans le langage de SOn dit que E est inconsistant (contradictoire) ssi|- (FE1∧… ∧ FEn) → false (où false = a∧¬a)que lon note :{FE1,…, FEn} |- falseExemple :E = { les chiens sont interdits,les aveugles sont accompagnés par un chien,il y a un aveugle}E permet de dériver ¬chien et chien=> contradiction2.1. La logique propositionnelle…
  7. 7. 7La Logique de Hoare :– technique pour raisonner sur les algorithmes– première tentative formelle pour la vérification de programmes– repose sur la notion dassertions• pré condition :formule logique exprimant une hypothèse sur les données dun programme avant sonexécution• post conditionformule logique exprimant une hypothèse sur les données dun programme après sonexécutionIdéeConstruire de façon incrémentale la formule logique caractérisant létat dunprogramme après son exécution=> un calcul (formules et règles dinférence)=> raisonnement sur la structure du programme2.2. La Logique de Hoare
  8. 8. 8Idée : triplet de Hoareassocier à 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 lexécution de S, alors S termine et Q estvrai après lexécution de S=> les formules du calcul : {P}S{Q}=> signification de ces formules :{P}S{Q} est vraisi et seulement sisous lhypothèse que P est vrai avant S, alors S termine et Q est vrai après S2.2. La Logique de Hoare
  9. 9. 9Un langage de programmesoit un langage de programme défini par les instructions et opérations :skipS ; SSi C alors S sinon S finTant que C faire S finx := E=> une (ou plusieurs) règles dinférence (définissant les triplets de Hoare) pourchaque instruction et opération de ce langage2.2. La Logique de Hoare
  10. 10. 10Compositionalité des triplets de HoareLa vérité de {P}S{Q} ne dépend que de P, de Q et de la structure interne de S=> il est possible de composer les formules pour obtenir la formulecaractéristique dun programme globalSoit deux sous programmes S1 et S2Supposons que S1 et S2 sont caractérisés par{P1}S1{Q1} et {P2}S2{Q2}Soit S = S1 op S2 (composition séquentielle, parallèle…)alors il doit être possible de trouver P fonction P1, P2 et Q fonction de Q1 et Q2tel que{P}S{Q}=> un ensemble de règles dinférence, pour composer les triplets de Hoare, définipour un langage de programmes donné=> construction incrémentale du triplet de Hoare dun programme global2.2. La Logique de Hoare
  11. 11. 11Règles dinférence des triplets de Hoarerègle de skip{P}skip{P}(linstruction skip ne fait rien)règle de laffectation{P[x/E]}x:=E{P}(toute propriété de x après laffectation doit être une propriété de E avant laffectation.P[x/E] est égal à P dans laquelle toutes les occurrence libres de x sont remplacées par E)règle de la séquence{P1}S1{P2} {P2}S2{P3}{P1}(S1 ; S2){P3}2.2. La Logique de Hoare
  12. 12. 12Règles dinférence des triplets de Hoarerègle du conditionnel{P ∧ C}S{Q} {P ∧ ¬C}S{Q}{P}Si C alors S sinon S fin{Q ∨ Q}(toute propriété garantie par les deux branches est garantie par le bloc conditionnel)règle de la boucleI ∧ 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 entière et nécessairement décroissant,permet de démontrer quune boucle termine)2.2. La Logique de Hoare
  13. 13. 13Règles dinférence des triplets de Hoarerègle du renforcement de la pré conditionP => P {P}S{Q}{P}S{Q}règle de laffaiblissement de la post condition{P}S{Q} Q => Q{P}S{Q}=> permet détablir des raisonnements incrémentaux sur lesprogrammesExercices…2.2. La Logique de Hoare

×