1Chapitre 2. Notion de système formel…3.1. Exemple de la logique propositionnelle3.2. Exemple dun système de preuve de pro...
2Un système formel est un cadre mathématique permettant deconstruire et représenter des preuvesUn système formel =– un lan...
3La logique propositionnelleLangage de formules =• soit Vp = {p, q, r, …} un ensemble de variables propositionnelles• soit...
4Exemple : preuve de |- A→A :2.1. La logique propositionnelle…|- (A → ((B → A) → A)) → ((A → (B → A)) →(A → A))|- (A → ((B...
5Application à lingénierie des systèmesSoit un O un objet détude (une spécification ou un programme)Soit H un ensemble dhy...
6Application à lingénierie des systèmesSoit E une spécification globaleSoit S un système formelNotons {FE1,…, FEn} les for...
7La Logique de Hoare :– technique pour raisonner sur les algorithmes– première tentative formelle pour la vérification de ...
8Idée : triplet de Hoareassocier à une action quelconque S (instruction, sous-programme, programme…)une pré condition P et...
9Un langage de programmesoit un langage de programme défini par les instructions et opérations :skipS ; SSi C alors S sino...
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...
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/...
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}(t...
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 laffaiblis...
Prochain SlideShare
Chargement dans…5
×

Ch2

203 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
203
Sur SlideShare
0
Issues des intégrations
0
Intégrations
5
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • En fait, 2 cours et un projet : le cours CVS où l'on parlera de méthode et techniques formelles ou informelles pour aider au développement de gros systèmes le cours LLS où M. Polina présentera au moins 2 langages de modélisation de système un projet : ingénierie des protocoles => articulation cohérente de ces cours => préambule 0 = présentation générale pour que vous compreniez la cohérence globale de ces cours.
  • En fait, 2 cours et un projet : le cours CVS où l'on parlera de méthode et techniques formelles ou informelles pour aider au développement de gros systèmes le cours LLS où M. Polina présentera au moins 2 langages de modélisation de système un projet : ingénierie des protocoles => articulation cohérente de ces cours => préambule 0 = présentation générale pour que vous compreniez la cohérence globale de ces cours.
  • 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

    ×