Cours de Model Checking

Documents pareils
Model checking temporisé

VÉRIFICATION DES SYSTÈMES À PILE AU MOYEN DES ALGÈBRES DE KLEENE

Model checking temporisé Algorithmes efficaces et complexité

Contribution à l algorithmique de la vérification

Qualité du logiciel: Méthodes de test

Conception des systèmes répartis

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Cours de Génie Logiciel

Gestion mémoire et Représentation intermédiaire

Les processus légers : threads. Système L3, /31

MIS 102 Initiation à l Informatique

Contribution aux tests de vacuité pour le model checking explicite

Formula Negator, Outil de négation de formule.

Cours de Master Recherche

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

DG-ADAJ: Une plateforme Desktop Grid

Logiciel de Base. I. Représentation des nombres

Programmation linéaire

Élasticité des applications à base de services dans le Cloud

CH.6 Propriétés des langages non contextuels

Mathématique et Automatique : de la boucle ouverte à la boucle fermée. Maïtine bergounioux Laboratoire MAPMO - UMR 6628 Université d'orléans

Organigramme / Algorigramme Dossier élève 1 SI

Algorithmes pour la planification de mouvements en robotique non-holonome

Représentation d un entier en base b

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Commun à tous les candidats

Algorithmes de recherche d itinéraires en transport multimodal

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Algorithmique et Programmation, IMA

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Génie Logiciel avec Ada. 4 février 2013

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

1 Modélisation d être mauvais payeur

Curriculum Vitae 1 er février 2008

Proposition de sujet de thèse CIFRE EUROCOPTER / LGI2P

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Chapitre 7. Récurrences

Programmation Web. Madalina Croitoru IUT Montpellier

Analyse de sécurité de logiciels système par typage statique

Masses de données. 1. Introduction 2. Problématiques 3. Socle de formation (non présenté) 4. Liens avec Formation INSA

Chapitre 5 : Flot maximal dans un graphe

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

SysFera. Benjamin Depardon

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

La demande Du consommateur. Contrainte budgétaire Préférences Choix optimal

Programmation Par Contraintes

Cours d algorithmique pour la classe de 2nde

Cours Informatique Master STEP

Surveillance et maintenance prédictive : évaluation de la latence de fautes. Zineb SIMEU-ABAZI Univ. Joseph Fourier, LAG)

Continuité d une fonction de plusieurs variables

Compilation (INF 564)

Utilisation des tableaux sémantiques dans les logiques de description

Équations non linéaires

UNE APPROCHE POUR LA GENERATION AUTOMATIQUE DE TESTS DE ROBUSTESSE

Compression Compression par dictionnaires

Introduction aux algorithmes répartis

Les diagrammes de modélisation

Introduction à MATLAB R

Pourquoi l apprentissage?

= constante et cette constante est a.

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Conception et contrôle des SMA tolérants aux fautes

Algorithmique et programmation : les bases (VBA) Corrigé

Le transistor bipolaire

Informatique Théorique : Théorie des Langages, Analyse Lexicale, Analyse Syntaxique Jean-Pierre Jouannaud Professeur

Conventions d écriture et outils de mise au point

Matrice d accès. Master SEMS, Pierre Paradinas. October 16, 2013

Algorithmique des Systèmes Répartis Protocoles de Communications

Quatrième partie IV. Test. Test 15 février / 71

Recherche dans un tableau

1 Introduction C+ + Algorithm e. languag. Algorigramm. machine binaire. 1-1 Chaîne de développement. Séance n 4

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

Fonctions de deux variables. Mai 2011

PIC EVAL Dev Board PIC18F97J60

UE C avancé cours 1: introduction et révisions

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Ordonnancement temps réel

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR

Resolution limit in community detection

Introduction aux systèmes temps réel. Iulian Ober IRIT

L installation a quelque peu changée depuis les derniers tutos, voici une actualisation.

Thème 3 Conception et vérification d architectures de systèmes sur puce

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Le calcul formel dans l enseignement des mathématiques

Formalisation de propriétés de flux d information avec une logique temporelle du premier ordre pour assurer la sécurité d une infrastructure de Cloud

CHOIX OPTIMAL DU CONSOMMATEUR. A - Propriétés et détermination du choix optimal

Les suites numériques

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Transcription:

S.Bardin Model checking 1/ 30 Cours de Model Checking Leçon 3 : Algorithmes de Model Checking Sébastien Bardin CEA-LIST, Laboratoire de Sûreté Logicielle sebastien.bardin@cea.fr http://sebastien.bardin.free.fr/

Rappels S.Bardin Model checking 2/ 30 Model Checking Technique de vérification automatique de systèmes réactifs Ingrédients M = système de transitions ϕ = formule temporelle MC = est-ce que M = ϕ? Déjà vu modélisation calcul de l espace des états accessibilité, invariance, sûreté vivacité, équité logiques temporelles,,

Avant-propos S.Bardin Model checking 3/ 30 Composante connexe d un graphe G = Q,T un ensemble de noeuds tel que tous les noeuds sont reliés les uns aux autres (pas forcément directement) C Q tq c i cj pour tout c i,c j C Quelques définitions fortement connexe : composante connexe maximale non triviale : le sous-graphe associé a au moins un arc Décomposer un graphe en SCC : linéaire (Tarjan, Kosaraju)

Avant-propos (2) S.Bardin Model checking 4/ 30 Liens entre SCC et les algorithmes de model checking : gérer le cas EG : décider les chemins fair : test du vide des automates de Büchi

Plan S.Bardin Model checking 5/ 30 Model checking Model checking Model checking

Plan S.Bardin Model checking 5/ 30 Model checking Model checking Model checking

Marquage des états S.Bardin Model checking 6/ 30 Algorithme de marquage des états (labeling) Entrées : M = Q,,P,l,s 0 et ϕ Sortie : est-ce que M = ϕ? Importance historique (1981, Clarke et Emerson) Efficace : linéaire en chacune des entrées Principe : raisonner sur les états plutôt que sur les traces Marquer les états de M vérifiant les sous formules de ϕ Marquage récursif, les sous-formules d abord M = ϕ ssi s 0 est marqué pour ϕ Remarques raisonner en terme d états plutôt que d exécutions très spécifique à

Exemple S.Bardin Model checking 7/ 30 On veut vérifier ( EX p) p p not p p p not p

Exemple S.Bardin Model checking 7/ 30 On veut vérifier ( EX p) p p p not p p p not p

Exemple S.Bardin Model checking 7/ 30 On veut vérifier ( EX p) p EX p p not p p p not p

Exemple S.Bardin Model checking 7/ 30 On veut vérifier ( EX p) p ( EX p) p not p p p not p

Exemple S.Bardin Model checking 7/ 30 On veut vérifier ( EX p) p p p not p p p not p

Exemple S.Bardin Model checking 7/ 30 On veut vérifier ( EX p) p ( EX p) p p not p p p not p

Calcul des marquages S.Bardin Model checking 8/ 30 Opérations de base q marqué pour p ssi p l(q) (donné par M) q marqué pour ϕ ψ ssi q marqué pour ϕ et q marqué pour ψ Cas EXϕ q marqué pour EXϕ ssi q q telque q marqué pour ϕ Cas EFϕ q marqué pour EFϕ ssi q... q et q marqué pour Q ϕ

Calcul des marquages II S.Bardin Model checking 9/ 30 On note Q ϕ l ensemble des états marqués pour ϕ Cas EϕUψ q Q EϕUψ ssi q peut atteindre Q ψ par un chemin restant dans Q ϕ Cas EGϕ SCC ensemble des SCC de Q ϕ L ens des états de SCC q EGϕ ssi q peut atteindre L en restant dans Q ϕ

Détails de l algorithme I S.Bardin Model checking 10/ 30 Algorithme marking input : formule ϕ normalisée, M = Q,,P,l, s 0 1: Case 1 : ϕ = p 2: for all s Q do 3: if p l(s) then s.ϕ := true 4: else s.ϕ := false 5: end for 1: Case 2 : ϕ = ϕ 2: do marking(ϕ,m); 3: for all s Q do s.ϕ := not(s.ϕ ) end for 1: Case 3 : ϕ = ϕ ϕ 2: do marking(ϕ,m); marking(ϕ,m); 3: for all s Q do s.ϕ := and(s.ϕ,s.ϕ ) end for

Détails de l algorithme I S.Bardin Model checking 10/ 30 Algorithme marking input : formule ϕ normalisée, M = Q,,P,l, s 0 1: Case 4 : ϕ = EXϕ 2: do marking(ϕ,m); 3: for all s Q do s.ϕ := false end for 4: for all (s,s ) do 5: if s.ϕ =true then s.ϕ := true 6: end for

Détails de l algorithme I S.Bardin Model checking 10/ 30 Algorithme marking input : formule ϕ normalisée, M = Q,,P,l, s 0 1: Case 5 : ϕ = Eϕ Uϕ 2: do marking(ϕ,m); marking(ϕ,m); 3: for all s Q do 4: s.ϕ := false; 5: s.seenbefore := false 6: end for 7: L := 8: for all s Q do if s.ϕ =true then L:=L + {s} end for 9: while L do 10: choose s L; L := L - {s}; 11: s.ϕ := true; 12: For all (s,s) do // s predecessor of s 13: if s.seenbefore = false then 14: s.seenbefore := true; 15: if s.ϕ = true then L := L + {s }; 16: end if 17: end for 18: end while

Détails de l algorithme I S.Bardin Model checking 10/ 30 Algorithme marking input : formule ϕ normalisée, M = Q,,P,l, s 0 1: Case 6 : ϕ = Aϕ Uϕ 2: do marking(ϕ,m); marking(ϕ,m); 3: L := ; 4: for all s Q do 5: s.nb := degree(s); s.ϕ := false; 6: if s.ϕ = true then L := L + {s}; 7: end for 8: while L do 9: choose s L; L := L - {s}; 10: s.ϕ := true; 11: for all (s,s) do // s predecessor of s 12: s.nb := s.nb - 1; 13: if (s.nb = 0) and (s.ϕ = true) and (s.ϕ = false) do 14: L := L + {s }; 15: end if 16: end for 17: end while

Détails de l algorithme I S.Bardin Model checking 10/ 30 Algorithme marking input : formule ϕ normalisée, M = Q,,P,l, s 0 1: Case 7 : ϕ = EGϕ 2: Q := {s ϕ l(s) }; /* computed with marking(ϕ,m) */ 3: SCC := { C C non trivial SCC of Q }; 4: L := S C SCC { s s C }; 5: for all s L do s.ϕ := true end for 6: while L do 7: choose s L; L := L - {s}; 8: for all (s,s) such that s Q do 9: if (s.ϕ = false) then 10: s.ϕ := true; 11: L := L + {s }; 12: end if 13: end for 14: end while

Model Checking S.Bardin Model checking 11/ 30 Gestion des différents opérateurs minimum d opérateurs : concision (théorie, code) ajout de cas spéciaux : efficacité Complexité complexité en O( M ϕ ) linéaire en chaque entrée

Model Checking S.Bardin Model checking 11/ 30 Gestion des différents opérateurs minimum d opérateurs : concision (théorie, code) ajout de cas spéciaux : efficacité Complexité complexité en O( M ϕ ) linéaire en chaque entrée ATTENTION M supposé déjà calculé calculer M est exponentiel (variables, concurrence)

Plan S.Bardin Model checking 12/ 30 Model checking Model checking Model checking

Plan S.Bardin Model checking 12/ 30 Model checking Model checking Model checking

+ équité (restreinte) : ajout dans le modèle directement Idée = on modifie la sémantique de S contraintes d équité : ensembles d ensembles d états F 1,...,F n Q chemins fair = passant infiniment souvent par chaque ensemble F i états fair = d où part un chemin fair Nouvelle relation de satisfaction = fair M,s = fair p ssi p l(s) et s est un état fair M,s = fair Aϕ ssi tous les chemins fair partant de s vérifient ϕ M,s = fair Eϕ ssi il existe un chemins fair partant de s vérifiant ϕ S.Bardin Model checking 13/ 30

Sémantique Fair : exemple S.Bardin Model checking 14/ 30 1 3 5 A B C D 2 4 En sémantique normale (asynchrone) le chemin (1.2) w est un chemin légal du système chemin certainement irréaliste rajoute une sorte de deadlock sur la machine 2 En sémantique fair (asynchrone) contraintes d équité : F 1 = {A}, F 2 = {B}, F 3 = {C},F 4 = {D} le chemin (1.2) w n est plus un chemin légal du système

Sémantique Fair II S.Bardin Model checking 15/ 30 Cette forme d équité est utile en pratique ex : chaque composante progresse ex : les messages sont infiniment souvent rec us Lien avec () Aϕ p A(F F 1... F F k ϕ p ) () Eϕ p E(F F 1... F F k ϕp ) Remarque une formule définit un sous-ensemble de Q les F i peuvent être donnés par des formules Trouver les états fair Fair SCC : SCC qui intersecte chaque F i Les états fair sont ceux qui atteignent une Fair SCC

Model Checking S.Bardin Model checking 16/ 30 Principe de l algorithme 1. trouver les états fair par accessibilité de Fair SCC on peut adapter algo pour EGtrue 2. marquer ces états avec une nouvelle proposition fair 3. se ramener au cas normal en exprimant M,s = fair ϕ en fonction de =,ϕ, fair Complexité en O( M ϕ F ) complexité semblable à et on gagne équité en pratique beaucoup plus utile que

Plan S.Bardin Model checking 17/ 30 Model checking Model checking Model checking

Plan S.Bardin Model checking 17/ 30 Model checking Model checking Model checking

Automates de Büchi S.Bardin Model checking 18/ 30 Extension des automates pour travailler sur des mots infinis Automate de Büchi B = Σ,Q,,q 0,F idem que automate sauf pour acceptance σ accepté ssi σ visite infiniment F a b S1 b S2 a Aut. fini mots terminant par a Aut. Büchi mots ayant une infinité de a

Propriétés des automates de Büchi S.Bardin Model checking 19/ 30 Permettent de représenter des ensembles infinis de traces (infinies) langages dits ω-réguliers on note L(B) le langage (ω-régulier) de B Permettent de manipuler des ensembles infinis de traces (infinies) opérations simples pour,,... test du vide : on sait tester sur B si L(B) est vide intersection : on sait calculer B tq L(B ) = L(B 1 L(B 2 )...

Propriétés des automates de Büchi II S.Bardin Model checking 20/ 30 Points communs avec les automates finis et polynômiaux test du vide polynômial Lien avec les SCC soit FSCC les SCC intersectant F soit T l ensemble des états des FSCC L(B) ssi T accessible de q 0 Le problème de la complémentation très coûteuse en théorie O(2 n2 ) au mieux très coûteuse en pratique et difficile à implanter souvent implantée en O(2 2n )

Intérêt pour le model checking S.Bardin Model checking 21/ 30 Un système de Kripke M défini naturellement un ensemble ω-régulier de traces infinies représenté par B M Étant donné un ensemble ω-régulier de traces infinies B bad, il est facile de vérifier que L(B M ) L(B bad ) = Problème : comment passer d une formule ϕ à un automate de Büchi B ϕ telle que ϕ = L(B ϕp ) Une fois qu on a ça, l algorithme est le suivant 1. Transformer M en automate B M (trivial) 2. Transformer ϕ p en automate B ϕp 3. Calculer B reconnaissant L(B M ) L(B ϕp ) 4. Tester si L(B ) =

Lien formules - automates de Büchi Complexité de la transformation 2-exponentiel si on utilise la complémentation exponentiel si on arrive à s en passer (voir exo) S.Bardin Model checking 22/ 30 Théorème On peut traduire automatiquement toute formule en automate de Büchi définissant le même langage. (not p,_) (p,_) (p,_) (not p,_) Exemple de AGFp

Complexité du Model Checking de S.Bardin Model checking 23/ 30 Algorithme 1. Transformer M en automate de Büchi B M (trivial) 2. Transformer ϕ p en automate de Büchi B ϕp 3. Calculer B reconnaissant L(B M ) L(B ϕp ) 4. Tester si L(B ) = 1 est direct, 2 est exponentiel, 3 et 4 poynômiaux Complexité en temps et en espace en O( M 2 ϕ ) Exponentiel seulement en ϕ, linéaire en M ltl-mc est pspace-complet, donc algo pas optimal

Plan S.Bardin Model checking 24/ 30 Model checking Model checking Model checking

Plan S.Bardin Model checking 24/ 30 Model checking Model checking Model checking

Model Checking et automates S.Bardin Model checking 25/ 30 Initié par Vardi et Wolper (1983) Pour optimal : automates de Büchi alternants Cas branchant : Automates d arbres de Büchi (alternants) Sûreté et automates finis Automates de Büchi comme logique linéaire (attention complémentation)

Model Checking Efficace S.Bardin Model checking 26/ 30 Model checking symbolique (McMillan 90) Ensembles d états représentés par des équations Bien plus concis : {x, x 200} plutôt que 1, 2,..., 200 Les BDD implantent très efficacement les équations booléennes Très adapté à pour circuits synchrones Pas parfait : entiers, concurrence, autre logique Ordres partiels (Valamari, Peled, Godefroid) certains états/transitions sont redondants pour certaines propriétés pas besoin de construire tout M très adapté aux systèmes asynchrones pas évident de mixer avec symbolique

Quelques Model Checkers S.Bardin Model checking 27/ 30 Outil SMV de CMU (McMillan) sur systèmes synchrones avec variables booléennes représentation symbolique par BDD autres : assume-garantee, abstraction 10 20 états couramment, jusqu à 10 800 Outil SPIN du Bell Labs (Holzmann et Peled) sur systèmes asynchrones avec variables non booléennes énumération concrète optimisée ordres partiels, génération à la volée, memory compression 10 10 états couramment, jusqu à 10 30

Quelques axes de recherche S.Bardin Model checking 28/ 30 Model Checking fini modularité abstraction et raffinement (CEGAR) SAT-bounded model checking Model Checking infini décidable : réseaux de Petri, automates à piles, files lossy,... indécidable : compteurs, files,... Model Checking temporisé time automata : Timed systèmes hybrides Model Checking probabiliste cas fini : Probabilistic extensions : piles, files lossy, etc. Software Model Checking indécidable CEGAR + ordres partiels + theorem proving

Influences académiques I S.Bardin Model checking 29/ 30 Diffusion de techniques issues du model checking à d autres domaines Liens logiques temporelles et automates (observeurs) design by contract, run-time monitoring, model-based testing vérification de propriétés de sûreté Vérification efficace de systèmes concurrents model-based testing, test de systèmes multi-tâches Autres Représentation compacte d ensembles finis Analyse statique interprocédurale Raffinement d abstraction par contre-exemple

Influences académiques II S.Bardin Model checking 30/ 30 Le model checking est ou a été fortement influencé par premiers travaux entre logique et automates analyse statique et abstractions travaux sur les procédures de décision efficaces (BDD, SAT)