Introduction à l modélistion et à l vériction Appliction ux systèmes temporisés Ptrici Bouyer LSV CNRS & ENS de Cchn Introduction à l modélistion et à l vériction p. 1/8
Modélistion & Vériction Introduction Introduction à l modélistion et à l vériction p. 2/8
Systèmes informtiques ordinteurs personnels, serveurs systèmes embrqués téléphones mobiles vions fusées Lego Mindstorms utomobiles (X-by-wire)... Introduction à l modélistion et à l vériction p. 3/8
Systèmes informtiques ordinteurs personnels, serveurs systèmes embrqués téléphones mobiles vions fusées Lego Mindstorms utomobiles (X-by-wire)... Deux tendnces: de plus en plus performnts, de plus en plus miniturisés de plus en plus complexes Introduction à l modélistion et à l vériction p. 3/8
Systèmes informtiques ordinteurs personnels, serveurs systèmes embrqués téléphones mobiles vions fusées Lego Mindstorms utomobiles (X-by-wire)... Deux tendnces: de plus en plus performnts, de plus en plus miniturisés de plus en plus complexes Une crctéristique «nouvelle» : systèmes critiques bilité indispensble! Introduction à l modélistion et à l vériction p. 3/8
Quelques bogues célèbres Therc 25, tritement ux ryons X des tumeurs cncéreuses «x Up Edit e Enter» en moins de 8s rdition 125 x l dose normle 6 décès ux Étts-Unis en 1986 erreur logicielle! Introduction à l modélistion et à l vériction p. 4/8
Quelques bogues célèbres Therc 25, tritement ux ryons X des tumeurs cncéreuses «x Up Edit e Enter» en moins de 8s rdition 125 x l dose normle 6 décès ux Étts-Unis en 1986 erreur logicielle! AT&T un ptch non vérié dns le système d'exploittion une erreur dns un switch (en C) le réseu téléphonique de l côte est des Étts-Unis été bloqué pendnt 9h! Introduction à l modélistion et à l vériction p. 4/8
Quelques bogues célèbres Therc 25, tritement ux ryons X des tumeurs cncéreuses «x Up Edit e Enter» en moins de 8s rdition 125 x l dose normle 6 décès ux Étts-Unis en 1986 erreur logicielle! AT&T un ptch non vérié dns le système d'exploittion une erreur dns un switch (en C) le réseu téléphonique de l côte est des Étts-Unis été bloqué pendnt 9h! Le bogue pentium une erreur dns l division ottnte du processeur heureusement, un chercheur en théorie des nombres veillit... 470 millions de $ Introduction à l modélistion et à l vériction p. 4/8
Une solution prmi d'utres Le système vérie-t-il l propriété? Modélistion Introduction à l modélistion et à l vériction p. 5/8
Une solution prmi d'utres Le système vérie-t-il l propriété? Modélistion j= Algorithme de model-checking Introduction à l modélistion et à l vériction p. 5/8
Modélistion & Vériction Modèles Introduction à l modélistion et à l vériction p. 6/8
Que souhite-t-on modéliser? pour les systèmes à étudier des structures de données (les...) des types de données (entiers...) des cnux de communiction des chngements discrets d'étts des chngements continus d'étts pour les propriétés à exprimer des implictions, des connections logiques des successions temporelles(l'ction b lieu près l'ction ) des propriétés d'étts, de chemins des invrinces(l tempérture est toujours inférieure à 28 degrés) l présence d'un étt bloqunt Introduction à l modélistion et à l vériction p. 7/8
Quels modèles? (1) pour les systèmes à nlyser : des systèmes de trnsitions les utomtes nis les utomtes à pile les utomtes à compteur les utomtes temporisés les utomtes hybrides les réseux de Petri les messge sequence chrts les lgèbres de processus... Introduction à l modélistion et à l vériction p. 8/8
Quelques exemples Le digicode : * 5 5 4 0 Porte ouverte * 5 * Introduction à l modélistion et à l vériction p. 9/8
Quelques exemples Le digicode : * 5 5 4 0 Porte ouverte * 5 Un distributeur * nb_j=4 nb_j++ nb_b > 0, donner_boisson, nb_b-- nb_b = 0, nb_j:=0 rendre_monnie Introduction à l modélistion et à l vériction p. 9/8
Composition de systèmes Synchronistion binire signl! signl? Introduction à l modélistion et à l vériction p. 10/8
Composition de systèmes Synchronistion binire signl! signl? Introduction à l modélistion et à l vériction p. 10/8
Composition de systèmes Synchronistion binire signl! signl? Introduction à l modélistion et à l vériction p. 10/8
Composition de systèmes Synchronistion binire signl! signl? Introduction à l modélistion et à l vériction p. 10/8
Composition de systèmes Synchronistion binire signl! signl? Exemple : entrée dns un bâtiment de l'ens psser_crte! psser_crte? fermée ouverte referme Introduction à l modélistion et à l vériction p. 10/8
Quels modèles? (2) pour les spécictions : des lngges logiques (ex : logique temporelle) Formules de chemin : G «Toujours» F «Un jour» U «Jusqu'à» X «Dns l'étt d'près» Formules d'étts : A E [Pnueli 1977] Introduction à l modélistion et à l vériction p. 11/8
Quelques exemples Il est possible d'tteindre l'étt critique. Introduction à l modélistion et à l vériction p. 12/8
Quelques exemples Il est possible d'tteindre l'étt critique. EF(étt_critique) Introduction à l modélistion et à l vériction p. 12/8
Quelques exemples Il est possible d'tteindre l'étt critique. EF(étt_critique) Deux processus ne peuvent ps être simultnément en section critique. Introduction à l modélistion et à l vériction p. 12/8
Quelques exemples Il est possible d'tteindre l'étt critique. EF(étt_critique) Deux processus ne peuvent ps être simultnément en section critique. AG((:section_critique_1) (:section_critique_2)) Introduction à l modélistion et à l vériction p. 12/8
Quelques exemples Il est possible d'tteindre l'étt critique. EF(étt_critique) Deux processus ne peuvent ps être simultnément en section critique. AG((:section_critique_1) (:section_critique_2)) Le distributeur de billets ne donne ps d'rgent tnt que le code n'est ps correct. Introduction à l modélistion et à l vériction p. 12/8
Quelques exemples Il est possible d'tteindre l'étt critique. EF(étt_critique) Deux processus ne peuvent ps être simultnément en section critique. AG((:section_critique_1) (:section_critique_2)) Le distributeur de billets ne donne ps d'rgent tnt que le code n'est ps correct. A((:donne_rgent)U(code_correct)) Introduction à l modélistion et à l vériction p. 12/8
Quelques exemples Il est possible d'tteindre l'étt critique. EF(étt_critique) Deux processus ne peuvent ps être simultnément en section critique. AG((:section_critique_1) (:section_critique_2)) Le distributeur de billets ne donne ps d'rgent tnt que le code n'est ps correct. A((:donne_rgent)U(code_correct)) Si l'scenseur est ppelé u 6 ème étge, lors il s'y rrêter. Introduction à l modélistion et à l vériction p. 12/8
Quelques exemples Il est possible d'tteindre l'étt critique. EF(étt_critique) Deux processus ne peuvent ps être simultnément en section critique. AG((:section_critique_1) (:section_critique_2)) Le distributeur de billets ne donne ps d'rgent tnt que le code n'est ps correct. A((:donne_rgent)U(code_correct)) Si l'scenseur est ppelé u 6 ème étge, lors il s'y rrêter. AG(ppel_6 (AF rrêt_6)) Introduction à l modélistion et à l vériction p. 12/8
Quelques exemples Il est possible d'tteindre l'étt critique. EF(étt_critique) Deux processus ne peuvent ps être simultnément en section critique. AG((:section_critique_1) (:section_critique_2)) Le distributeur de billets ne donne ps d'rgent tnt que le code n'est ps correct. A((:donne_rgent)U(code_correct)) Si l'scenseur est ppelé u 6 ème étge, lors il s'y rrêter. AG(ppel_6 (AF rrêt_6)) L brrière du pssge à niveu est ouverte inniment souvent. Introduction à l modélistion et à l vériction p. 12/8
Quelques exemples Il est possible d'tteindre l'étt critique. EF(étt_critique) Deux processus ne peuvent ps être simultnément en section critique. AG((:section_critique_1) (:section_critique_2)) Le distributeur de billets ne donne ps d'rgent tnt que le code n'est ps correct. A((:donne_rgent)U(code_correct)) Si l'scenseur est ppelé u 6 ème étge, lors il s'y rrêter. AG(ppel_6 (AF rrêt_6)) L brrière du pssge à niveu est ouverte inniment souvent. AG AF(brrière_ouverte) Introduction à l modélistion et à l vériction p. 12/8
Quelques exemples (suite) Après l pluie, le beu temps. Introduction à l modélistion et à l vériction p. 13/8
Quelques exemples (suite) Après l pluie, le beu temps. G(pluie F beu_temps) Introduction à l modélistion et à l vériction p. 13/8
Quelques exemples (suite) Après l pluie, le beu temps. G(pluie F beu_temps) C'est en forgent qu'on devient forgeron. Introduction à l modélistion et à l vériction p. 13/8
Quelques exemples (suite) Après l pluie, le beu temps. G(pluie F beu_temps) C'est en forgent qu'on devient forgeron. (F forgeron) (forger U forgeron) Introduction à l modélistion et à l vériction p. 13/8
Quelques exemples (suite) Après l pluie, le beu temps. G(pluie F beu_temps) C'est en forgent qu'on devient forgeron. (F forgeron) (forger U forgeron) Qui veut ller loin ménge s monture. Introduction à l modélistion et à l vériction p. 13/8
Quelques exemples (suite) Après l pluie, le beu temps. G(pluie F beu_temps) C'est en forgent qu'on devient forgeron. (F forgeron) (forger U forgeron) Qui veut ller loin ménge s monture. G((F ller_loin) ménger_monture) Introduction à l modélistion et à l vériction p. 13/8
Quelques exemples (suite) Après l pluie, le beu temps. G(pluie F beu_temps) C'est en forgent qu'on devient forgeron. (F forgeron) (forger U forgeron) Qui veut ller loin ménge s monture. G((F ller_loin) ménger_monture) Tel qui rit vendredi, dimnche pleurer. Introduction à l modélistion et à l vériction p. 13/8
Quelques exemples (suite) Après l pluie, le beu temps. G(pluie F beu_temps) C'est en forgent qu'on devient forgeron. (F forgeron) (forger U forgeron) Qui veut ller loin ménge s monture. G((F ller_loin) ménger_monture) Tel qui rit vendredi, dimnche pleurer. G((rire vendredi) (:dimnche U (dimnche pleurer))) Introduction à l modélistion et à l vériction p. 13/8
Comment choisir les modèles? Compromis expressivité / fcilité d'nlyse Expressivité : représenter de nombreux systèmes les représenter succinctement Fcilité d'nlyse : méthodes efcces... Introduction à l modélistion et à l vériction p. 14/8
Comment choisir les modèles? Compromis expressivité / fcilité d'nlyse Expressivité : représenter de nombreux systèmes les représenter succinctement Fcilité d'nlyse : méthodes efcces...... si elles existent Introduction à l modélistion et à l vériction p. 14/8
( Introduction à l modélistion et à l vériction p. 15/8
Décidbilité? «Dénition» : un problème est dit décidble s'il existe un lgorithme pour le résoudre. Propriété : il existe des problèmes non décidbles Exemple : un progrmme termine-t-il? [Arrêt_progrmme] première réponse : on le lnce et on regrde s'il s'rrête bof, ps très stisfisnt : on ttend combien de temps? considérons le progrmme suivnt : Progrm P { Si P s rrête, lors boucler sinon s rrêter } Introduction à l modélistion et à l vériction p. 16/8
Décidbilité? Progrm P { Si P s rrête, lors boucler sinon s rrêter } Si le problème «Arrêt_progrmme» est décidble, lors : si P s'rrête, lors P boucle si P boucle, lors P s'rrête Remrque : il y même «plus» de problèmes non décidbles que de problèmes décidbles. Introduction à l modélistion et à l vériction p. 17/8
Un problème indécidble utile L mchine à deux compteurs, ou mchine de Minsky. ensemble ni d'instructions sur deux compteurs, x et y, du type suivnt : Incrémenttion : (p): x := x+1; goto (q) Décrémenttion : (p): if x > 0 then x := x 1; goto (q) else goto (r) Instruction spécile «Arrêt» Théorème [Minsky 67]. L'rrêt d'une mchine à deux compteurs est indécidble. Introduction à l modélistion et à l vériction p. 18/8
Notion de réduction Soient P1 et P2 deux problèmes à résoudre. Supposons que l'on it : Algo(P1) { Quelques clculs; Algo(P2); Quelques clculs; } Si P1 est indécidble, lors P2 ussi est indécidble. P1 été réduit à P2 Introduction à l modélistion et à l vériction p. 19/8
) Introduction à l modélistion et à l vériction p. 20/8
Modélistion & Vériction Anlyse des systèmes Introduction à l modélistion et à l vériction p. 21/8
Un exemple simple Considérons l formule = G( XF) «Toujours, si est vri, lors plus trd, il y ur un» Idée : exprimer : à l'ide d'un utomte, B : vri : Propriété : si A est un utomte ni, A vérie (équiv. tout chemin de A vérie ) ssi A B: n'ccepte ucun mot Introduction à l modélistion et à l vériction p. 22/8
Un exemple simple (suite) L'utomte suivnt vérie-t-il? :;: :;: ; :;: Introduction à l modélistion et à l vériction p. 23/8
Un exemple simple (suite) L'utomte suivnt vérie-t-il? :;: :;: ; :;: vri : Introduction à l modélistion et à l vériction p. 23/8
Un exemple simple (suite) L'utomte suivnt vérie-t-il? :;: :;: :;: ; :;: ; :;: :;: vri : Introduction à l modélistion et à l vériction p. 23/8
Ce n'est ps toujours si simple... Le problème élémentire est le clcul du Post*, i.e. tous les étts ccessibles à prtir de l'étt initil. On veut clculer tous les étts s n tels que s 0 s1 s2 sn (équivlent à s0 sn ) si s 0 est l'étt initil. Introduction à l modélistion et à l vériction p. 24/8
Ce n'est ps toujours si simple... Le problème élémentire est le clcul du Post*, i.e. tous les étts ccessibles à prtir de l'étt initil. On veut clculer tous les étts s n tels que s 0 s1 s2 sn (équivlent à s0 sn ) si s 0 est l'étt initil. Problèmes potentiels : les systèmes souffrent d'une explosion combintoire l'ensemble des étts ccessibles est (très souvent) inni Introduction à l modélistion et à l vériction p. 24/8
Ce n'est ps toujours si simple... Le problème élémentire est le clcul du Post*, i.e. tous les étts ccessibles à prtir de l'étt initil. On veut clculer tous les étts s n tels que s 0 s1 s2 sn (équivlent à s0 sn ) si s 0 est l'étt initil. Problèmes potentiels : les systèmes souffrent d'une explosion combintoire l'ensemble des étts ccessibles est (très souvent) inni Conséquences : sur l décidbilité sur l complexité Introduction à l modélistion et à l vériction p. 24/8
Problème de l'explosion combintoire c 4 3 b 1 2,4,3 b,4 b,3 c,4 c,3,1,2 b,1 b,2 c,1 c,2 tille du produit exponentielle en le nombre de composnts Introduction à l modélistion et à l vériction p. 25/8
Un simulteur de trin 1421 mchines 11102 trnsitions 3204 étts locux 10 476 étts dns le produit synchronisé Introduction à l modélistion et à l vériction p. 26/8
Un simulteur de trin 1421 mchines 11102 trnsitions 3204 étts locux 10 476 étts dns le produit synchronisé Y -t-il un bogue? Introduction à l modélistion et à l vériction p. 26/8
Solution : visulistion? Outil de visulistion de gros grphes, exemple de l norme IEEE1394 http://www.win.tue.nl/ fvhm/fsm/ Introduction à l modélistion et à l vériction p. 27/8
Solution : visulistion? Outil de visulistion de gros grphes, exemple de l norme IEEE1394 http://www.win.tue.nl/ fvhm/fsm/ intéressnt sns doute ps sufsnt Introduction à l modélistion et à l vériction p. 27/8
Solution : visulistion? Outil de visulistion de gros grphes, exemple de l norme IEEE1394 http://www.win.tue.nl/ fvhm/fsm/ intéressnt sns doute ps sufsnt L'explosion combintoire est un spect qu'il ne fudr ps négliger. Introduction à l modélistion et à l vériction p. 27/8
L'inni... s 0 y := 0 x := x+1 x := x+1 y := y 2 s 2 s 1 x := 0 x := x 1 y := y+3 Introduction à l modélistion et à l vériction p. 28/8
L'inni... s 0 y := 0 x := x+1 x := x+1 y := y 2 s 2 s 1 x := 0 x := x 1 y := y+3 Une innité de congurtions est ccessible à prtir de s 0, pr exemple : (s 0 ;(0;0)) (s1 ;(1;0)) (s1 ;(0; 3)) (s1 ;( 1;6)) (s1 ;( 2;9))::: Introduction à l modélistion et à l vériction p. 28/8
L'inni... s 0 y := 0 x := x+1 x := x+1 y := y 2 s 2 s 1 x := 0 x := x 1 y := y+3 Une innité de congurtions est ccessible à prtir de s 0, pr exemple : (s 0 ;(0;0)) (s1 ;(1;0)) (s1 ;(0; 3)) (s1 ;( 1;6)) (s1 ;( 2;9))::: On peut cependnt se psser de l'inni : Post*(s 0 ;(0;0)) = s 0 ((0;0)+(1,0)*) s1 (f(1;0);(0;3)g+f(1;0);(0;3)g*) s2 (f(0;0);(1;1);(2;2)g+f(3;0);(0;3)g*) Introduction à l modélistion et à l vériction p. 28/8
représenté pr une expression rtionnelle () Représenttions symboliques Ensemble inni / Représenttion nie dns le pln, une droite représentée pr deux points ensemble de mots,,... ensemble d'entiers, représenttion pr semi-linéires cf exemple précédent ensemble de contrintes, polyèdres Introduction à l modélistion et à l vériction p. 29/8
Une technique : l'ccélértion Idée : clculer en une étpe plusieurs (voire une innité d')étpes élémentires de Post* Exemple simple : Au lieu de clculer x := x+1 x = 0 x:=x+1 x = 1 x:=x+1 x = 2 x:=x+1 x = 3 x := 0 on clcule en une seule étpe x = 0 x:=x+1 x Introduction à l modélistion et à l vériction p. 30/8
Une technique : l'ccélértion Système producteur/consommteur Vribles entières : i, b, o1, o2 Condition initile : i = 10, b=o1=o2=0 ew : si i>0 lors i:=i-1 et b:=b+1 er1 : si b>0 lors o1:=o1+1 et b:=b-1 er2 : si b>0 lors o2:=o2+1 et b:=b-1 S 0 ew * S 1 er1 ew * S 2 er2 ew * S 3 vec S 1 = f10 = i+b et o1 = o2 = 0g S 2 = f10 = i+b+o1 et o2 = 0g S 3 = f10 = i+b+o1+o2g Donc Post*(S 0 ) = S 3! [Finkel,Leroux 2002] Introduction à l modélistion et à l vériction p. 31/8
Une technique : l'bstrction Idée : «simplier» le modèle M en (M) [Cousot,Cousot 1977] Introduction à l modélistion et à l vériction p. 32/8
Une technique : l'bstrction Idée : «simplier» le modèle M en (M) [propriété de correction] si (M) vérie l propriété xée, lors M l vérie ussi [Cousot,Cousot 1977] Introduction à l modélistion et à l vériction p. 32/8
Une technique : l'bstrction Idée : «simplier» le modèle M en (M) [propriété de correction] si (M) vérie l propriété xée, lors M l vérie ussi [propriété de complétude] si (M) ne vérie ps l propriété xée, lors M ne l vérie ps [Cousot,Cousot 1977] Introduction à l modélistion et à l vériction p. 32/8
Une technique : l'bstrction Idée : «simplier» le modèle M en (M) [propriété de correction] si (M) vérie l propriété xée, lors M l vérie ussi [propriété de complétude] si (M) ne vérie ps l propriété xée, lors M ne l vérie ps bien choisir les prties du modèle que l'on bstrit [Cousot,Cousot 1977] Introduction à l modélistion et à l vériction p. 32/8
Un exemple d'bstrction correcte Introduction à l modélistion et à l vériction p. 33/8
Un exemple d'bstrction correcte Introduction à l modélistion et à l vériction p. 33/8
Un exemple d'bstrction correcte Introduction à l modélistion et à l vériction p. 33/8
Un exemple d'bstrction non correcte Introduction à l modélistion et à l vériction p. 34/8
Un exemple d'bstrction non correcte Introduction à l modélistion et à l vériction p. 34/8
Un exemple d'bstrction non correcte Problème! Introduction à l modélistion et à l vériction p. 34/8
Autres exemples en théorie des lngges Déterministion : Introduction à l modélistion et à l vériction p. 35/8
Autres exemples en théorie des lngges Déterministion : correcte pour des propriétés telles que l'ccessibilité, les lngges cceptés Introduction à l modélistion et à l vériction p. 35/8
Autres exemples en théorie des lngges Déterministion : correcte pour des propriétés telles que l'ccessibilité, les lngges cceptés non correcte pour des propriétés telles que l longueur du plus petit cycle, pour des propriétés de blocge... Introduction à l modélistion et à l vériction p. 35/8
Autres exemples en théorie des lngges Déterministion : correcte pour des propriétés telles que l'ccessibilité, les lngges cceptés non correcte pour des propriétés telles que l longueur du plus petit cycle, pour des propriétés de blocge... Minimistion : Introduction à l modélistion et à l vériction p. 35/8
Autres exemples en théorie des lngges Déterministion : correcte pour des propriétés telles que l'ccessibilité, les lngges cceptés non correcte pour des propriétés telles que l longueur du plus petit cycle, pour des propriétés de blocge... Minimistion : correcte pour des propriétés telles que l'ccessibilité, etc... Introduction à l modélistion et à l vériction p. 35/8
Autres exemples en théorie des lngges Déterministion : correcte pour des propriétés telles que l'ccessibilité, les lngges cceptés non correcte pour des propriétés telles que l longueur du plus petit cycle, pour des propriétés de blocge... Minimistion : correcte pour des propriétés telles que l'ccessibilité, etc... non correcte pour des propriétés de plus courts chemins, de blocge... Introduction à l modélistion et à l vériction p. 35/8
Exercice Exercice : Peut-on bstrire (de mnière effective) des utomtes communicnts en remplçnt les cnux de communiction pr des cnux bornés tout en restnt correct pour les propriétés d'ccessibilité? Introduction à l modélistion et à l vériction p. 36/8
Exercice Exercice : Peut-on bstrire (de mnière effective) des utomtes communicnts en remplçnt les cnux de communiction pr des cnux bornés tout en restnt correct pour les propriétés d'ccessibilité? 1. utomtes communicnts bstrction utomtes à compteurs écrire dns le cnl c c := c+1 lire dns le cnl c si c > 0 lors c := c 1 Introduction à l modélistion et à l vériction p. 36/8
Exercice Exercice : Peut-on bstrire (de mnière effective) des utomtes communicnts en remplçnt les cnux de communiction pr des cnux bornés tout en restnt correct pour les propriétés d'ccessibilité? 1. utomtes communicnts bstrction utomtes à compteurs écrire dns le cnl c c := c+1 lire dns le cnl c si c > 0 lors c := c 1 L'bstrction est complète pour les propriétés d'ccessibilité! Introduction à l modélistion et à l vériction p. 36/8
Exercice Exercice : Peut-on bstrire (de mnière effective) des utomtes communicnts en remplçnt les cnux de communiction pr des cnux bornés tout en restnt correct pour les propriétés d'ccessibilité? 1. utomtes communicnts bstrction utomtes à compteurs écrire dns le cnl c c := c+1 lire dns le cnl c si c > 0 lors c := c 1 L'bstrction est complète pour les propriétés d'ccessibilité! les utomtes communicnts sont indécidbles Introduction à l modélistion et à l vériction p. 36/8
Exercice Exercice : Peut-on bstrire (de mnière effective) des utomtes communicnts en remplçnt les cnux de communiction pr des cnux bornés tout en restnt correct pour les propriétés d'ccessibilité? 1. utomtes communicnts bstrction utomtes à compteurs écrire dns le cnl c c := c+1 lire dns le cnl c si c > 0 lors c := c 1 L'bstrction est complète pour les propriétés d'ccessibilité! les utomtes communicnts sont indécidbles 2. utomtes vec cnux bornés = utomtes nis Introduction à l modélistion et à l vériction p. 36/8
Exercice Exercice : Peut-on bstrire (de mnière effective) des utomtes communicnts en remplçnt les cnux de communiction pr des cnux bornés tout en restnt correct pour les propriétés d'ccessibilité? 1. utomtes communicnts bstrction utomtes à compteurs écrire dns le cnl c c := c+1 lire dns le cnl c si c > 0 lors c := c 1 L'bstrction est complète pour les propriétés d'ccessibilité! les utomtes communicnts sont indécidbles 2. utomtes vec cnux bornés = utomtes nis il ne peut ps y voir d'bstrction correcte (pour l'ccessibilité) bornnt l tille des cnux de communiction Introduction à l modélistion et à l vériction p. 36/8
Une technique : l'bstrction pr prédicts Introduction à l modélistion et à l vériction p. 37/8
Une technique : l'bstrction pr prédicts Introduction à l modélistion et à l vériction p. 37/8
Une technique : l'bstrction pr prédicts Introduction à l modélistion et à l vériction p. 37/8
Une technique : l'bstrction pr prédicts Introduction à l modélistion et à l vériction p. 37/8
Une technique : l'bstrction pr prédicts bstrction trop grossière Introduction à l modélistion et à l vériction p. 37/8
Une technique : l'bstrction pr prédicts Introduction à l modélistion et à l vériction p. 38/8
Une technique : l'bstrction pr prédicts Introduction à l modélistion et à l vériction p. 38/8
Une technique : l'bstrction pr prédicts Introduction à l modélistion et à l vériction p. 38/8
Une technique : l'bstrction pr prédicts Introduction à l modélistion et à l vériction p. 38/8
Une technique : l'bstrction pr prédicts bstrction correcte Introduction à l modélistion et à l vériction p. 38/8
Un exemple, l'bstrction de progrmmes [BLAST Henzinger, Jhl, Mjumdr, Sutre 2002] Introduction à l modélistion et à l vériction p. 39/8
Un exemple, l'bstrction de progrmmes [BLAST Henzinger, Jhl, Mjumdr, Sutre 2002] Introduction à l modélistion et à l vériction p. 39/8
Un exemple, l'bstrction de progrmmes Prédict de déprt : LOCK = 0 ou LOCK = 1 Introduction à l modélistion et à l vériction p. 40/8
Un exemple, l'bstrction de progrmmes Prédict de déprt : LOCK = 0 ou LOCK = 1 Introduction à l modélistion et à l vériction p. 40/8
Un exemple, l'bstrction de progrmmes Prédict de déprt : LOCK = 0 ou LOCK = 1 On peut continuer en rfnnt à l'ide du prédict new = old ou new!= old ps d'erreur Introduction à l modélistion et à l vériction p. 40/8
Un outil : les simultions Ce que l'on souhite : pouvoir comprer des systèmes entre eux, en prticulier système concret / système bstrit Introduction à l modélistion et à l vériction p. 41/8
Un outil : les simultions Ce que l'on souhite : pouvoir comprer des systèmes entre eux, en prticulier système concret / système bstrit Lngges : ok pour les lngges rtionnels, mis quid pour les lngges vec des compteurs, des horloges, etc...? Introduction à l modélistion et à l vériction p. 41/8
Un outil : les simultions Ce que l'on souhite : pouvoir comprer des systèmes entre eux, en prticulier système concret / système bstrit Lngges : ok pour les lngges rtionnels, mis quid pour les lngges vec des compteurs, des horloges, etc...? bof Introduction à l modélistion et à l vériction p. 41/8
Un outil : les simultions Ce que l'on souhite : pouvoir comprer des systèmes entre eux, en prticulier système concret / système bstrit Lngges : ok pour les lngges rtionnels, mis quid pour les lngges vec des compteurs, des horloges, etc...? bof Comprison plus structurelle (équivlence observtionnelle) : une reltion = f( ; )g est une simultion si Introduction à l modélistion et à l vériction p. 41/8
Un outil : les simultions Ce que l'on souhite : pouvoir comprer des systèmes entre eux, en prticulier système concret / système bstrit Lngges : ok pour les lngges rtionnels, mis quid pour les lngges vec des compteurs, des horloges, etc...? bof Comprison plus structurelle (équivlence observtionnelle) : une reltion = f( ; )g est une simultion si Introduction à l modélistion et à l vériction p. 41/8
Un outil : les simultions Ce que l'on souhite : pouvoir comprer des systèmes entre eux, en prticulier système concret / système bstrit Lngges : ok pour les lngges rtionnels, mis quid pour les lngges vec des compteurs, des horloges, etc...? bof Comprison plus structurelle (équivlence observtionnelle) : une reltion = f( ; )g est une simultion si Onditlorsque simule. Introduction à l modélistion et à l vériction p. 41/8
Un outil : les simultions Ce que l'on souhite : pouvoir comprer des systèmes entre eux, en prticulier système concret / système bstrit Lngges : ok pour les lngges rtionnels, mis quid pour les lngges vec des compteurs, des horloges, etc...? bof Comprison plus structurelle (équivlence observtionnelle) : une reltion = f( ; )g est une simultion si Onditlorsque simule. Une reltion est une bisimultion si et 1 sont des simultions. Introduction à l modélistion et à l vériction p. 41/8
Exemples Les systèmes suivnts sont-ils en bisimultion? Si non, qui simule qui? Introduction à l modélistion et à l vériction p. 42/8
Exemples Les systèmes suivnts sont-ils en bisimultion? Si non, qui simule qui? c b c b Introduction à l modélistion et à l vériction p. 42/8
Exemples Les systèmes suivnts sont-ils en bisimultion? Si non, qui simule qui? c b c b Introduction à l modélistion et à l vériction p. 42/8
Exemples Les systèmes suivnts sont-ils en bisimultion? Si non, qui simule qui? c b c b Introduction à l modélistion et à l vériction p. 42/8
Exemples Les systèmes suivnts sont-ils en bisimultion? Si non, qui simule qui? c b c b Introduction à l modélistion et à l vériction p. 42/8
Exemples Les systèmes suivnts sont-ils en bisimultion? Si non, qui simule qui? c b c b Introduction à l modélistion et à l vériction p. 42/8
Exemples Les systèmes suivnts sont-ils en bisimultion? Si non, qui simule qui? c b c b Introduction à l modélistion et à l vériction p. 42/8
Exemples Les systèmes suivnts sont-ils en bisimultion? Si non, qui simule qui? c b c b Introduction à l modélistion et à l vériction p. 42/8
Exemples Les systèmes suivnts sont-ils en bisimultion? Si non, qui simule qui? c b c b Introduction à l modélistion et à l vériction p. 42/8
Exemples Les systèmes suivnts sont-ils en bisimultion? Si non, qui simule qui? b c c b Introduction à l modélistion et à l vériction p. 42/8
Exemples b b b b b Introduction à l modélistion et à l vériction p. 43/8
Exemples b b b b b Introduction à l modélistion et à l vériction p. 43/8
Exemples b b b b b Exercice : quelle(s) reltion(s) y -t-il entre un utomte et son déterminisé? et entre un utomte et son utomte miniml? Introduction à l modélistion et à l vériction p. 43/8
Exemples b b b b b Exercice : quelle(s) reltion(s) y -t-il entre un utomte et son déterminisé? et entre un utomte et son utomte miniml? le déterminisé simule l'utomte originl le miniml simule l'utomte originl ucun n'est en bisimultion vec l'utomte originl Introduction à l modélistion et à l vériction p. 43/8
Intérêt de l (bi)simultion L bisimultion préserve les propriétés telles que : l'ccessibilité le blocge l vivcité le lngge reconnu... bref, presque tout! L simultion préserve moins de propriétés, pr exemple elle ne préserve ps : le blocge l vivcité Introduction à l modélistion et à l vériction p. 44/8
Systèmes temporisés Introduction à l modélistion et à l vériction p. 45/8
Les systèmes temporisés systèmes dns lesquels le temps joue un rôle primordil Exemple : l'lrme se déclenche moins de 2 minutes près le début de l'incendie Introduction à l modélistion et à l vériction p. 46/8
Les systèmes temporisés systèmes dns lesquels le temps joue un rôle primordil Exemple : l'lrme se déclenche moins de 2 minutes près le début de l'incendie AG (incendie AF<2lrme) Introduction à l modélistion et à l vériction p. 46/8
Les systèmes temporisés systèmes dns lesquels le temps joue un rôle primordil Exemple : l'lrme se déclenche moins de 2 minutes près le début de l'incendie AG (incendie AF<2lrme) AG (incendie x in AF(x < 2 lrme)) Introduction à l modélistion et à l vériction p. 46/8
Les systèmes temporisés systèmes dns lesquels le temps joue un rôle primordil Exemple : l'lrme se déclenche moins de 2 minutes près le début de l'incendie AG (incendie AF<2lrme) AG (incendie x in AF(x < 2 lrme)) mx(x; X []X (incendie x in mx(y;lrme (x < 2 Y Y)))) Introduction à l modélistion et à l vériction p. 46/8
Le digicode Le digicode : * 5 5 4 0 Porte ouverte * 5 * Introduction à l modélistion et à l vériction p. 47/8
Le digicode Le digicode : * 5, x:=0 5, x:=0 4 0, x<5 Porte ouverte * 5, x:=0 * Introduction à l modélistion et à l vériction p. 47/8
Le digicode Le digicode : * 5, x:=0 5, x:=0 4 0, x<5 Porte ouverte * 5, x:=0 * 0; x 5 Introduction à l modélistion et à l vériction p. 47/8
Le cuit-œuf Le cuit-œuf : on souhite fire cuire un œuf dur (donc 5 minutes ) et on ne dispose que d'un sblier de 7 minutes et d'un sblier de 10 minutes. Comment fire? Introduction à l modélistion et à l vériction p. 48/8
Le cuit-œuf Le cuit-œuf : on souhite fire cuire un œuf dur (donc 5 minutes ) et on ne dispose que d'un sblier de 7 minutes et d'un sblier de 10 minutes. Comment fire? x i = m i ; x j := 0; t := 0 x 1 = m 1 ; t = 5 x i = m i ; x j := 0 x 2 = m 2 ; t = 5 x 1 horloge pour le minuteur de 7 minutes (m 1 = 7) x 2 horloge pour le minuteur de 10 minutes (m 2 = 10) t horloge pour mesurer les 5 minutes Introduction à l modélistion et à l vériction p. 48/8
Les venturiers Qutre venturiers souhitent trverser un pont en muvis étt. Ils ne mettent ps tous le même temps à fire l trversée. L'un met 5 minutes, un utre 10 minutes, un utre encore 20 minutes et le dernier met 25 minutes. Question : Peuvent-ils tous trverser le pont en moins de 60 minutes, schnt qu'il fut obligtoirement l torche pour trverser et que le pont ne peut ps supporter le poids de plus de deux personnes en même temps. Introduction à l modélistion et à l vériction p. 49/8
Les venturiers Un venturier (t, temps de trversée) : dnger = 0, prend!, y := 0 y t, lâche! y t, lâche! = 1, prend!, y := 0 sécurité Introduction à l modélistion et à l vériction p. 50/8
Les venturiers Un venturier (t, temps de trversée) : dnger = 0, prend!, y := 0 y t, lâche! y t, lâche! = 1, prend!, y := 0 sécurité L torche : prend? lâche?, := 1 prend? lâche? Introduction à l modélistion et à l vériction p. 50/8
Les venturiers Introduction à l modélistion et à l vériction p. 51/8