SlideShare une entreprise Scribd logo
1
Chapitre 2. Notion de système formel…
3.1. Exemple de la logique propositionnelle
3.2. Exemple d'un système de preuve de programme
séquentiel: la logique de Hoare
2
Un système formel est un cadre mathématique permettant de
construire et représenter des preuves
Un 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 d'inférence) formalisant les étapes
élémentaires licites de raisonnement
Exemple : la logique propositionnelle
la logique des prédicats
la géométrie euclidienne…
…
la logique de Hoare…
2. Notion de système formel…
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 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 des
formules
– clôture : tout terme obtenu en appliquant les règles 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)
règle d'inférence unique : modus ponens
2.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
Exemple : 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
Application à l'ingénierie des systèmes
Soit un O un objet d'étude (une spécification ou un programme)
Soit H un ensemble d'hypothèses
Soit P la propriété devant être vérifiée sur O
Démontrer P sur O sous l'hypothèse H nécessite :
– le choix d'un 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 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 nœuds sont des applications des règles d'inférence de S
2.1. La logique propositionnelle…
6
Application à l'ingénierie des systèmes
Soit E une spécification globale
Soit S un système 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 = a∧¬a)
que l'on note :
{FE1,…, FEn} |- false
Exemple :
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
=> contradiction
2.1. La logique propositionnelle…
7
La Logique de Hoare :
– technique pour raisonner sur les algorithmes
– première tentative formelle pour la vérification de programmes
– repose sur la notion d'assertions
• pré condition :
formule logique exprimant une hypothèse sur les données d'un programme avant son
exécution
• post condition
formule logique exprimant une hypothèse sur les données d'un programme après son
exécution
Idée
Construire de façon incrémentale la formule logique caractérisant l'état d'un
programme après son exécution
=> un calcul (formules et règles d'inférence)
=> raisonnement sur la structure du programme
2.2. La Logique de Hoare
8
Idée : 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'exécution de S, alors S termine et Q est
vrai après l'exécution de S
=> les formules du calcul : {P}S{Q}
=> signification de ces formules :
{P}S{Q} est vrai
si et seulement si
sous l'hypothèse que P est vrai avant S, alors S termine et Q est vrai après S
2.2. La Logique de Hoare
9
Un langage de programme
soit un langage de programme défini par les instructions et opérations :
skip
S ; S'
Si C alors S sinon S' fin
Tant que C faire S fin
x := E
=> une (ou plusieurs) règles d'inférence (définissant les triplets de Hoare) pour
chaque instruction et opération de ce langage
2.2. La Logique de Hoare
10
Compositionalité des triplets de Hoare
La 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 formule
caractéristique d'un programme global
Soit deux sous programmes S1 et S2
Supposons 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 Q2
tel que
{P'}S'{Q'}
=> un ensemble de règles d'inférence, pour composer les triplets de Hoare, défini
pour un langage de programmes donné
=> construction incrémentale du triplet de Hoare d'un programme global
2.2. La Logique de Hoare
11
Règles d'inférence des triplets de Hoare
règle de skip
{P}skip{P}
(l'instruction skip ne fait rien)
règle de l'affectation
{P[x/E]}x:=E{P}
(toute propriété de x après l'affectation doit être une propriété de E avant l'affectation.
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
Règles d'inférence des triplets de Hoare
rè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 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 entière et nécessairement décroissant,
permet de démontrer qu'une boucle termine)
2.2. La Logique de Hoare
13
Règles d'inférence des triplets de Hoare
règle du renforcement de la pré condition
P' => P {P}S{Q}
{P'}S{Q}
règle de l'affaiblissement de la post condition
{P}S{Q} Q => Q'
{P}S{Q'}
=> permet d'établir des raisonnements incrémentaux sur les
programmes
Exercices…
2.2. La Logique de Hoare

Contenu connexe

Tendances

Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)
DriNox NordisTe
 
ALF 12 - Optimisations
ALF 12 - OptimisationsALF 12 - Optimisations
ALF 12 - Optimisations
Alexandru Radovici
 
ALF 3 - Expressions régulières et Lexer
ALF 3 - Expressions régulières et Lexer ALF 3 - Expressions régulières et Lexer
ALF 3 - Expressions régulières et Lexer
Alexandru Radovici
 
Chapitre 2 problème de plus court chemin
Chapitre 2 problème de plus court cheminChapitre 2 problème de plus court chemin
Chapitre 2 problème de plus court chemin
Sana Aroussi
 
Chapitre v algorithmes gloutons
Chapitre v algorithmes gloutonsChapitre v algorithmes gloutons
Chapitre v algorithmes gloutons
Sana Aroussi
 
ALF 11 - Diagrame de flux de controlle
ALF 11 - Diagrame de flux de controlleALF 11 - Diagrame de flux de controlle
ALF 11 - Diagrame de flux de controlle
Alexandru Radovici
 
Algèbre de boole ionction-logique-p2
Algèbre de boole ionction-logique-p2Algèbre de boole ionction-logique-p2
Algèbre de boole ionction-logique-p2
linuxscout
 
Algebre de boole intro -v3
Algebre de boole intro -v3Algebre de boole intro -v3
Algebre de boole intro -v3
linuxscout
 
Algèbre de boole ionction-logique-p2-1
Algèbre de boole ionction-logique-p2-1Algèbre de boole ionction-logique-p2-1
Algèbre de boole ionction-logique-p2-1
linuxscout
 
ALF 11 - Diagramme de flux de contrôle et WebAssembly
ALF 11 - Diagramme de flux de contrôle et WebAssemblyALF 11 - Diagramme de flux de contrôle et WebAssembly
ALF 11 - Diagramme de flux de contrôle et WebAssembly
Alexandru Radovici
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
Sana Aroussi
 
Chap 1: Algèbre de bool
Chap 1:  Algèbre de boolChap 1:  Algèbre de bool
Chap 1: Algèbre de bool
EPST_INFO
 
Chapitre 2 complexité
Chapitre 2 complexitéChapitre 2 complexité
Chapitre 2 complexité
Sana Aroussi
 
Chapitre vi np complétude
Chapitre vi np complétudeChapitre vi np complétude
Chapitre vi np complétude
Sana Aroussi
 
cours algorithme
cours algorithmecours algorithme
cours algorithme
mohamednacim
 
Algebre de-boole-et-portes-logiques
Algebre de-boole-et-portes-logiquesAlgebre de-boole-et-portes-logiques
Algebre de-boole-et-portes-logiques
Lily Babou
 
Chapitre iii récursivité et paradigme diviser pour régner
Chapitre iii récursivité et paradigme diviser pour régnerChapitre iii récursivité et paradigme diviser pour régner
Chapitre iii récursivité et paradigme diviser pour régner
Sana Aroussi
 

Tendances (19)

Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)
 
ALF 12 - Optimisations
ALF 12 - OptimisationsALF 12 - Optimisations
ALF 12 - Optimisations
 
ALF 3 - Expressions régulières et Lexer
ALF 3 - Expressions régulières et Lexer ALF 3 - Expressions régulières et Lexer
ALF 3 - Expressions régulières et Lexer
 
Chapitre 2 problème de plus court chemin
Chapitre 2 problème de plus court cheminChapitre 2 problème de plus court chemin
Chapitre 2 problème de plus court chemin
 
Chapitre v algorithmes gloutons
Chapitre v algorithmes gloutonsChapitre v algorithmes gloutons
Chapitre v algorithmes gloutons
 
ALF 11 - Diagrame de flux de controlle
ALF 11 - Diagrame de flux de controlleALF 11 - Diagrame de flux de controlle
ALF 11 - Diagrame de flux de controlle
 
Algèbre de boole ionction-logique-p2
Algèbre de boole ionction-logique-p2Algèbre de boole ionction-logique-p2
Algèbre de boole ionction-logique-p2
 
Algebre de boole intro -v3
Algebre de boole intro -v3Algebre de boole intro -v3
Algebre de boole intro -v3
 
Algèbre de boole ionction-logique-p2-1
Algèbre de boole ionction-logique-p2-1Algèbre de boole ionction-logique-p2-1
Algèbre de boole ionction-logique-p2-1
 
ALF 11 - Diagramme de flux de contrôle et WebAssembly
ALF 11 - Diagramme de flux de contrôle et WebAssemblyALF 11 - Diagramme de flux de contrôle et WebAssembly
ALF 11 - Diagramme de flux de contrôle et WebAssembly
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Chapitre2
Chapitre2Chapitre2
Chapitre2
 
Chap 1: Algèbre de bool
Chap 1:  Algèbre de boolChap 1:  Algèbre de bool
Chap 1: Algèbre de bool
 
Chapitre 2 complexité
Chapitre 2 complexitéChapitre 2 complexité
Chapitre 2 complexité
 
Chapitre vi np complétude
Chapitre vi np complétudeChapitre vi np complétude
Chapitre vi np complétude
 
cours algorithme
cours algorithmecours algorithme
cours algorithme
 
Algebre de-boole-et-portes-logiques
Algebre de-boole-et-portes-logiquesAlgebre de-boole-et-portes-logiques
Algebre de-boole-et-portes-logiques
 
Espacesvec
EspacesvecEspacesvec
Espacesvec
 
Chapitre iii récursivité et paradigme diviser pour régner
Chapitre iii récursivité et paradigme diviser pour régnerChapitre iii récursivité et paradigme diviser pour régner
Chapitre iii récursivité et paradigme diviser pour régner
 

En vedette

LES ALGORITHMES D’APPROXIMATION
LES ALGORITHMES D’APPROXIMATIONLES ALGORITHMES D’APPROXIMATION
LES ALGORITHMES D’APPROXIMATION
borhen boukthir
 
Exos de logique séquentielle
Exos de logique séquentielleExos de logique séquentielle
Exos de logique séquentielle
Mo Ur Ad Es-se
 
Sujet bac info 2013 g1, g2 et g3 avec correction
Sujet bac info 2013 g1, g2 et g3 avec correctionSujet bac info 2013 g1, g2 et g3 avec correction
Sujet bac info 2013 g1, g2 et g3 avec correction
borhen boukthir
 
Sujet bac info 2012 g1, g2 et g3 avec correction
Sujet bac info 2012 g1, g2 et g3 avec correctionSujet bac info 2012 g1, g2 et g3 avec correction
Sujet bac info 2012 g1, g2 et g3 avec correction
borhen boukthir
 
Résumé javascript bac info
Résumé javascript bac infoRésumé javascript bac info
Résumé javascript bac info
borhen boukthir
 
Cours php bac info
Cours php bac infoCours php bac info
Cours php bac info
borhen boukthir
 
Circuits logiques combinatoire
Circuits logiques combinatoireCircuits logiques combinatoire
Circuits logiques combinatoire
linuxscout
 
Cours design pattern m youssfi partie 2 observer
Cours design pattern m youssfi partie 2 observerCours design pattern m youssfi partie 2 observer
Cours design pattern m youssfi partie 2 observer
ENSET, Université Hassan II Casablanca
 
exercices-corriges-dalgorithmique
exercices-corriges-dalgorithmiqueexercices-corriges-dalgorithmique
exercices-corriges-dalgorithmique
fast xp
 
Bac info 2000-2015 (Tunisie)
Bac info 2000-2015 (Tunisie)Bac info 2000-2015 (Tunisie)
Bac info 2000-2015 (Tunisie)
salah fenni
 
TP Compteurs - logique combinatoire
TP Compteurs - logique combinatoire TP Compteurs - logique combinatoire
TP Compteurs - logique combinatoire
bilal001
 
Exercices pascal tous les chapitres
Exercices pascal tous les chapitresExercices pascal tous les chapitres
Exercices pascal tous les chapitres
borhen boukthir
 
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
ENSET, Université Hassan II Casablanca
 
Résumé Algorithme et Programmation
Résumé Algorithme et ProgrammationRésumé Algorithme et Programmation
Résumé Algorithme et Programmation
borhen boukthir
 
Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)
ENSET, Université Hassan II Casablanca
 
Support de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfiSupport de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfi
ENSET, Université Hassan II Casablanca
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
ENSET, Université Hassan II Casablanca
 

En vedette (20)

LES ALGORITHMES D’APPROXIMATION
LES ALGORITHMES D’APPROXIMATIONLES ALGORITHMES D’APPROXIMATION
LES ALGORITHMES D’APPROXIMATION
 
Exos de logique séquentielle
Exos de logique séquentielleExos de logique séquentielle
Exos de logique séquentielle
 
Résumer arithmétique
Résumer arithmétiqueRésumer arithmétique
Résumer arithmétique
 
Sujet bac info 2013 g1, g2 et g3 avec correction
Sujet bac info 2013 g1, g2 et g3 avec correctionSujet bac info 2013 g1, g2 et g3 avec correction
Sujet bac info 2013 g1, g2 et g3 avec correction
 
Sujet bac info 2012 g1, g2 et g3 avec correction
Sujet bac info 2012 g1, g2 et g3 avec correctionSujet bac info 2012 g1, g2 et g3 avec correction
Sujet bac info 2012 g1, g2 et g3 avec correction
 
Résumé javascript bac info
Résumé javascript bac infoRésumé javascript bac info
Résumé javascript bac info
 
Resumer sur les tris
Resumer sur les trisResumer sur les tris
Resumer sur les tris
 
Cours php bac info
Cours php bac infoCours php bac info
Cours php bac info
 
Circuits logiques combinatoire
Circuits logiques combinatoireCircuits logiques combinatoire
Circuits logiques combinatoire
 
Cours design pattern m youssfi partie 2 observer
Cours design pattern m youssfi partie 2 observerCours design pattern m youssfi partie 2 observer
Cours design pattern m youssfi partie 2 observer
 
exercices-corriges-dalgorithmique
exercices-corriges-dalgorithmiqueexercices-corriges-dalgorithmique
exercices-corriges-dalgorithmique
 
Bac info 2000-2015 (Tunisie)
Bac info 2000-2015 (Tunisie)Bac info 2000-2015 (Tunisie)
Bac info 2000-2015 (Tunisie)
 
TP Compteurs - logique combinatoire
TP Compteurs - logique combinatoire TP Compteurs - logique combinatoire
TP Compteurs - logique combinatoire
 
Exercices pascal tous les chapitres
Exercices pascal tous les chapitresExercices pascal tous les chapitres
Exercices pascal tous les chapitres
 
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
 
Résumé Algorithme et Programmation
Résumé Algorithme et ProgrammationRésumé Algorithme et Programmation
Résumé Algorithme et Programmation
 
Correction
CorrectionCorrection
Correction
 
Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)
 
Support de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfiSupport de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfi
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 

Plus de infcom

Cours admin-secure-4 avril-2011
Cours admin-secure-4 avril-2011Cours admin-secure-4 avril-2011
Cours admin-secure-4 avril-2011
infcom
 
Tpdba1
Tpdba1Tpdba1
Tpdba1
infcom
 
T2 corrections-qc md
T2 corrections-qc mdT2 corrections-qc md
T2 corrections-qc md
infcom
 
T1 corrections-qcm
T1 corrections-qcmT1 corrections-qcm
T1 corrections-qcm
infcom
 
Dba oracle-v1
Dba oracle-v1Dba oracle-v1
Dba oracle-v1
infcom
 
Examens Khaled Jouini ISITCOM ORACLE BD
Examens Khaled Jouini ISITCOM ORACLE BDExamens Khaled Jouini ISITCOM ORACLE BD
Examens Khaled Jouini ISITCOM ORACLE BD
infcom
 
Examens Linda Jedidi ISITCOM
Examens Linda Jedidi ISITCOMExamens Linda Jedidi ISITCOM
Examens Linda Jedidi ISITCOM
infcom
 
Examens Iyed Ben Slimene ISITCOM Communication sans fil
Examens Iyed Ben Slimene ISITCOM Communication sans fil Examens Iyed Ben Slimene ISITCOM Communication sans fil
Examens Iyed Ben Slimene ISITCOM Communication sans fil
infcom
 
Db aing td3v1
Db aing td3v1Db aing td3v1
Db aing td3v1
infcom
 
Chap06 (méthodes de vérification)
Chap06 (méthodes de vérification)Chap06 (méthodes de vérification)
Chap06 (méthodes de vérification)
infcom
 
Db aing td2v1
Db aing td2v1Db aing td2v1
Db aing td2v1
infcom
 
Chap05 (buchi)
Chap05 (buchi)Chap05 (buchi)
Chap05 (buchi)
infcom
 
Db aing td1v1
Db aing td1v1Db aing td1v1
Db aing td1v1
infcom
 
Examens heykel Tej ISITCOM ingénierie protocoles
Examens heykel Tej ISITCOM ingénierie protocolesExamens heykel Tej ISITCOM ingénierie protocoles
Examens heykel Tej ISITCOM ingénierie protocoles
infcom
 
Tpdba3
Tpdba3Tpdba3
Tpdba3
infcom
 
Chap02 fsm-mpssr-ht
Chap02 fsm-mpssr-htChap02 fsm-mpssr-ht
Chap02 fsm-mpssr-ht
infcom
 
Examens Zaki Brahmi ISITCOM
Examens Zaki Brahmi ISITCOMExamens Zaki Brahmi ISITCOM
Examens Zaki Brahmi ISITCOM
infcom
 
Ch3 ing
Ch3 ingCh3 ing
Ch3 ing
infcom
 

Plus de infcom (20)

Cours admin-secure-4 avril-2011
Cours admin-secure-4 avril-2011Cours admin-secure-4 avril-2011
Cours admin-secure-4 avril-2011
 
Tpdba1
Tpdba1Tpdba1
Tpdba1
 
T2 corrections-qc md
T2 corrections-qc mdT2 corrections-qc md
T2 corrections-qc md
 
T1 corrections-qcm
T1 corrections-qcmT1 corrections-qcm
T1 corrections-qcm
 
Dba oracle-v1
Dba oracle-v1Dba oracle-v1
Dba oracle-v1
 
Examens Khaled Jouini ISITCOM ORACLE BD
Examens Khaled Jouini ISITCOM ORACLE BDExamens Khaled Jouini ISITCOM ORACLE BD
Examens Khaled Jouini ISITCOM ORACLE BD
 
Examens Linda Jedidi ISITCOM
Examens Linda Jedidi ISITCOMExamens Linda Jedidi ISITCOM
Examens Linda Jedidi ISITCOM
 
Examens Iyed Ben Slimene ISITCOM Communication sans fil
Examens Iyed Ben Slimene ISITCOM Communication sans fil Examens Iyed Ben Slimene ISITCOM Communication sans fil
Examens Iyed Ben Slimene ISITCOM Communication sans fil
 
Db aing td3v1
Db aing td3v1Db aing td3v1
Db aing td3v1
 
Chap06 (méthodes de vérification)
Chap06 (méthodes de vérification)Chap06 (méthodes de vérification)
Chap06 (méthodes de vérification)
 
Db aing td2v1
Db aing td2v1Db aing td2v1
Db aing td2v1
 
Chap05 (buchi)
Chap05 (buchi)Chap05 (buchi)
Chap05 (buchi)
 
Db aing td1v1
Db aing td1v1Db aing td1v1
Db aing td1v1
 
Examens heykel Tej ISITCOM ingénierie protocoles
Examens heykel Tej ISITCOM ingénierie protocolesExamens heykel Tej ISITCOM ingénierie protocoles
Examens heykel Tej ISITCOM ingénierie protocoles
 
Tpdba3
Tpdba3Tpdba3
Tpdba3
 
Chap02 fsm-mpssr-ht
Chap02 fsm-mpssr-htChap02 fsm-mpssr-ht
Chap02 fsm-mpssr-ht
 
Examens Zaki Brahmi ISITCOM
Examens Zaki Brahmi ISITCOMExamens Zaki Brahmi ISITCOM
Examens Zaki Brahmi ISITCOM
 
Ch4
Ch4Ch4
Ch4
 
Ch1
Ch1Ch1
Ch1
 
Ch3 ing
Ch3 ingCh3 ing
Ch3 ing
 

Ch2

  • 1. 1 Chapitre 2. Notion de système formel… 3.1. Exemple de la logique propositionnelle 3.2. Exemple d'un système de preuve de programme séquentiel: la logique de Hoare
  • 2. 2 Un système formel est un cadre mathématique permettant de construire et représenter des preuves Un 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 d'inférence) formalisant les étapes élémentaires licites de raisonnement Exemple : la logique propositionnelle la logique des prédicats la géométrie euclidienne… … la logique de Hoare… 2. Notion de système formel…
  • 3. 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 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 des formules – clôture : tout terme obtenu en appliquant les règles 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) règle d'inférence unique : modus ponens 2.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 Exemple : 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 Application à l'ingénierie des systèmes Soit un O un objet d'étude (une spécification ou un programme) Soit H un ensemble d'hypothèses Soit P la propriété devant être vérifiée sur O Démontrer P sur O sous l'hypothèse H nécessite : – le choix d'un 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 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 nœuds sont des applications des règles d'inférence de S 2.1. La logique propositionnelle…
  • 6. 6 Application à l'ingénierie des systèmes Soit E une spécification globale Soit S un système 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 = a∧¬a) que l'on note : {FE1,…, FEn} |- false Exemple : 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 => contradiction 2.1. La logique propositionnelle…
  • 7. 7 La Logique de Hoare : – technique pour raisonner sur les algorithmes – première tentative formelle pour la vérification de programmes – repose sur la notion d'assertions • pré condition : formule logique exprimant une hypothèse sur les données d'un programme avant son exécution • post condition formule logique exprimant une hypothèse sur les données d'un programme après son exécution Idée Construire de façon incrémentale la formule logique caractérisant l'état d'un programme après son exécution => un calcul (formules et règles d'inférence) => raisonnement sur la structure du programme 2.2. La Logique de Hoare
  • 8. 8 Idée : 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'exécution de S, alors S termine et Q est vrai après l'exécution de S => les formules du calcul : {P}S{Q} => signification de ces formules : {P}S{Q} est vrai si et seulement si sous l'hypothèse que P est vrai avant S, alors S termine et Q est vrai après S 2.2. La Logique de Hoare
  • 9. 9 Un langage de programme soit un langage de programme défini par les instructions et opérations : skip S ; S' Si C alors S sinon S' fin Tant que C faire S fin x := E => une (ou plusieurs) règles d'inférence (définissant les triplets de Hoare) pour chaque instruction et opération de ce langage 2.2. La Logique de Hoare
  • 10. 10 Compositionalité des triplets de Hoare La 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 formule caractéristique d'un programme global Soit deux sous programmes S1 et S2 Supposons 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 Q2 tel que {P'}S'{Q'} => un ensemble de règles d'inférence, pour composer les triplets de Hoare, défini pour un langage de programmes donné => construction incrémentale du triplet de Hoare d'un programme global 2.2. La Logique de Hoare
  • 11. 11 Règles d'inférence des triplets de Hoare règle de skip {P}skip{P} (l'instruction skip ne fait rien) règle de l'affectation {P[x/E]}x:=E{P} (toute propriété de x après l'affectation doit être une propriété de E avant l'affectation. 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 Règles d'inférence des triplets de Hoare rè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 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 entière et nécessairement décroissant, permet de démontrer qu'une boucle termine) 2.2. La Logique de Hoare
  • 13. 13 Règles d'inférence des triplets de Hoare règle du renforcement de la pré condition P' => P {P}S{Q} {P'}S{Q} règle de l'affaiblissement de la post condition {P}S{Q} Q => Q' {P}S{Q'} => permet d'établir des raisonnements incrémentaux sur les programmes Exercices… 2.2. La Logique de Hoare

Notes de l'éditeur

  1. 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.
  2. 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.