Langages de spécification cours 3

Documents pareils
Model checking temporisé

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

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

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

Cours 1 : La compilation

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Systèmes décisionnels et programmation avancée

Cours de Master Recherche

Baccalauréat ES Amérique du Nord 4 juin 2008

Conception des systèmes répartis

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

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Le Collège de France crée une chaire pérenne d Informatique, Algorithmes, machines et langages, et nomme le Pr Gérard BERRY titulaire

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Première partie. Préliminaires : noyaux itérés. MPSI B 6 juin 2015

Contribution à l algorithmique de la vérification

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)

Brique BDL Gestion de Projet Logiciel

Cours 1 : Qu est-ce que la programmation?

CARACTERISTIQUE D UNE DIODE ET POINT DE FONCTIONNEMENT

Organigramme / Algorigramme Dossier élève 1 SI

Circuits RL et RC. Chapitre Inductance

Algorithmique et programmation : les bases (VBA) Corrigé

Représentation d un entier en base b

PIC EVAL Dev Board PIC18F97J60

Définitions. Numéro à préciser. (Durée : )

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

Situation d apprentissage Les traits vivants avec le logiciel LopArt DUO (#P002)

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

Utilisation des tableaux sémantiques dans les logiques de description

OCL - Object Constraint Language

Processus d Informatisation

Introduction à MATLAB R

Compilation (INF 564)

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

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Cours d algorithmique pour la classe de 2nde

Plus courts chemins, programmation dynamique

TP1 : Initiation à Java et Eclipse

Cours de Génie Logiciel

Initiation à LabView : Les exemples d applications :

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

1 Recherche en table par balayage

Grammaires d unification

Comment accéder à une vision synthétique de mon activité commerciale?

Qualité du logiciel: Méthodes de test

Architecture des ordinateurs

Continuité d une fonction de plusieurs variables

Conventions d écriture et outils de mise au point

Fonctions de deux variables. Mai 2011

Cours Composant 2. Qualité logicielle et spécications algébriques

EES : Engineering Equation Solver Fiche récapitulative - Marie-Sophie Cabot

acpro SEN TR firewall IPTABLES

Les diagrammes de modélisation

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION

Exercices Alternatifs. Une fonction continue mais dérivable nulle part

Exercices Alternatifs. Une fonction continue mais dérivable nulle part

AWS avancé. Surveiller votre utilisation d EC2

Model checking temporisé Algorithmes efficaces et complexité

Bases de données relationnelles

Coefficients binomiaux

Chapitre 2 Le problème de l unicité des solutions

Intelligence Artificielle Planification

Chapitre 1 Régime transitoire dans les systèmes physiques

LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION

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

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

III- Raisonnement par récurrence

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

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

Manuel de validation Fascicule v4.25 : Thermique transitoire des structures volumiques

5 Gestionnaire de dépenses

Donner les limites de validité de la relation obtenue.

TP 1. Prise en main du langage Python

Introduction à la programmation concurrente

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

TD 9 Problème à deux corps

I- Définitions des signaux.

Évaluation et implémentation des langages

BACCALAUREAT GENERAL MATHÉMATIQUES

Machines virtuelles Cours 1 : Introduction

Initiation au trading automatique et semi-automatique avec Metatrader 4. Nicolas ALEKSY

Problèmes liés à la concurrence

Modélisation et Simulation

Resolution limit in community detection

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

DOCUMENTATION POINT FACTURE

Contribution aux tests de vacuité pour le model checking explicite

LES TOUT PREMIERS PAS

UFR d Informatique. FORMATION MASTER Domaine SCIENCES, TECHNOLOGIE, SANTE Mention INFORMATIQUE

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

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

Pourquoi l apprentissage?

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

Compte rendu de LA37 B, TP numéro 1. Evolution de la température et du degrée d'hydratation

AC AB. A B C x 1. x + 1. d où. Avec un calcul vu au lycée, on démontre que cette solution admet deux solutions dont une seule nous intéresse : x =

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

Transcription:

Langages de spécification cours 3 Introduction en logique temporelle Catalin Dima

Spécification des propriétés temporelles Les automates permettent de décrire des ensembles de comportements. Langage de spécification visuel, facile à suivre pour des exemples pédagogiques. Mais très vite dépassant les capacités de compréhension des humains lorsqu on modélise un vrai problème! L algorithmique des automates est facile à implémenter car provenant de l algorithmique de graphes : Essentiellement atteignabilité et recherche de composants fortement connexes. Plus des constructions de graphes plus grands à partir de graphes plus petits. Recherche d un moyen de spécification plus facile d écrire et de lire! Equivalent avec les automates finis. Mais bien plus compacte que les automates! Dérivé de la logique. Capable de spécifier de manière simple des propriétés simples : La feuille est toujours dirigée par un insecte. Les trois insectes peuvent franchir l autre rive. La barrière est baissé jusqu au moment où le train va dépasser le passage à niveau. Solution (possible) : Logique temporelle linéaire.

LTL Extension de la logique propositionnelle : Propositions atomiques : l, s, flag, etc.. Par extension, on considérera que des expressions comme pc1 = 4 sont des propositions atomiques on les notera souvent aussi p pc1=4. Tous les opérateurs booléens sont présents :,,,,. Opérateurs temporels du futur : Demain (angl. Next) : Xφ or p. Jusqu à (angl. Until) : φu ψ. Toujours (angl. Globally) : Gφ or φ. À l avenir (angl. Forward) : Fφ or φ.

LTL Extension de la logique propositionnelle : Propositions atomiques : l, s, flag, etc.. Par extension, on considérera que des expressions comme pc1 = 4 sont des propositions atomiques on les notera souvent aussi p pc1=4. Tous les opérateurs booléens sont présents :,,,,. Opérateurs temporels du futur : Demain (angl. Next) : Xφ or p. Jusqu à (angl. Until) : φu ψ. Toujours (angl. Globally) : Gφ or φ. À l avenir (angl. Forward) : Fφ or φ. Opérateurs du passé : Hier (angl. Yesterday) φ held : Yφ or φ. Depuis (angl. Since) : φsψ. Toujours (angl. Historically) : Hφ or φ. Une fois (angl. Once) : Oφ or φ.

Cadre sémantique Toute formule s interprète sur une trace ρ : N 2 AP. Ou, de manière équivalente, sur un mot infini sur l alphabet 2 AP. Sur un tel mot infini, chaque variable propositionnelle a une valeur de vérité à chaque instant : l ρ(0) veut dire l = vrai à l instant 0. ppc1=4 ρ(251) veut dire que le programme 1 est juste avant l instruction 4 à l instant 251 dans la trace. Chaque formule sera interprétée aussi à chaque instant dans la trace!

Sémantique intuitive ρ = Xp p, q q p, q... ρ = Gp p, q, r p, q p p, q, r p, r p! ρ = Fp r q q, r p, r... ρ = pu r p p, q p q, r......

Semantique formelle (ρ, i) = p if p ρ(i) (ρ, i) = φ 1 φ 2 if (ρ, i) = φ 1 and (ρ, i) = φ 2 (ρ, i) = φ if (ρ, i) = φ (ρ, i) = Xφ if (ρ, i + 1) = φ (ρ, i) = φ 1 Uφ 2 s il existe j i tel que (ρ, j) = φ 2 (ρ, i) = Fφ (ρ, i) = Gφ et pour tout i k < j,(ρ, k) = φ 1 s il existe j N tel que (ρ, j) = φ si pour tout j N,(ρ, j) = φ Mais les règles sémantiques pour U suffisent, car : φ = trueu φ φ = φ Sémantique similaire pour les opérateurs du passé. Plus précisément...

Semantique, suite D autres opérateurs du temps futur possibles : φ 1 W φ 2 : φ 1 doit être vrai sauf à partir du moment où ( weakly until ) φ 2 est vrai. φ 1 Rφ 2 : φ 2 relève (releases) φ 1. Semantique : φ 1 W φ 2 = φ 1 U φ 2 φ 1 φ 1 Rφ 2 = ( φ 1 U φ 2 ) = φ 2 W(φ 1 φ 2 )

Quelques formules... et leur correspondant en langage naturel Exclusion mutuelle : G (pc 1 = 3 pc 2 = 3). Jamais les deux programmes ne se trouveront en même temps dans leur section critique. Atteignabilité : F(chass loup chevre chou). Le chasseur amènera sur la rive gauche le loup, la chèvre et le chou. Convergence : FG(Voyager atteint Alpha Centauri). Voyager va arriver et va rester jusqu à la fin de l Universe dans le système solaire d Alpha Centauri. Recurrence : GF(pc 1 = sect_crit). Le premier programme entrera une infinité de fois dans sa section critique. Honneteté (fairness) : G((pc 1 = 2) F(pc 1 = 3)). Si le premier programme arrive une infinité de fois à l entrée de sa section critique, il va entrer une infinité de fois dans cette section critique.... et donc il ne sera jamais enfamé.

Construction de formules en LTL à partir des énoncés en langage naturel Supposons un feu tricolore de circulation, avec trois variables r, o, v. Un seul feu de couleur est allumé à tout instant :... Le feu ne peut pas passer directement de vert à rouge :... Si le feu est vert à un instant quelconque, il redeviendra vert dans trois instants de temps (3s, 3 ticks d horloge,...). Le feu doit rester rouge jusqu à un moment où il doit passer vert. Quand le feu est rouge, alors il va passer au vert dans le futur, après avoir été jaune pendant un certain temps.

Construction de formules en LTL à partir d énoncés en langage naturel Fausse solution d exclusion mutuelle : while (true) { while (true) { flag1 := true ; flag2 := true ; wait (!flag2) wait (!flag1) section critique 1 section critique 2 flag1 := false ; flag2 := false ; } } À chaque fois que le programme 1 n avance pas, la valeur de la variable flag1 n est pas modifiée. Lorsque le programme 1 exécute l instruction 3, la variable flag2 doit être fausse. La variable flag2 garde sa valeur jusqu à l instant où on exécute l instruction 2 du programme 2 (sans garantie quant à l existence de cet instant!) Les deux programmes se trouvent, à l avenir, en état d interblocage.

Sémantique de LTL Tautologie : formule qui est vraie indépendamment des affectations de valeurs de vérité aux propositions atomiques. Exemples : p p p p p p (p q) p q ( p q) (p q) Formules que ne sont pas des tautologies : (p q) p q pu(qu r) (pu q)u r Pour prouver qu elles ne sont pas des tautologies, donner un contre-exemple!

Axiomatization Axiomes et règles de déduction pour la partie propositionnelle (n importe quel système déductif). Axiomes et règles pour X and U : Distributivité : Xφ X(φ ψ) Xψ. Temps linéaire : Xφ X φ. Axiome de point fixe pour until : φuψ ψ (φ X(φUψ)). Règle d inférence pour toujours : à partir de φ déduire Gφ. Règle d inférence pour until : à partir de φ ψ Xφ déduire φ (φuψ).

Systèmes de transitions et logique temporelle linéaire Un système de transitions A = (Q,Π, Q 0,δ,λ) définit un ensemble de traces (infinies) : celles qui représentent la concaténation des étiquettes des chemins infinis partant d un état initial. Pour rappel, δ Q Q et λ : Q 2 Π.... et on peut noter Runs ω (A) l ensemble des traces définies par un système de transitions. Une formule LTL définit aussi un ensemble de traces : celles qui satisfont la formule. Peut-on faire un lien entre ces deux modes de spécification des ensembles de traces?

Problème du model-checking Étant un système de transitions A = (Q,Π, Q 0,δ,λ) et une formule φ, est-ce que toutes les traces définies par T satisfont φ? ρ Runs ω (T),(ρ, 0) = φ? Problème plus général : étant donné un système A, un état q et une formule φ, est-il le cas que pour toute trace ρ qui part de q, (ρ, 0) = φ?

Problème du model-checking p p, q p, q p p p p, q Quels sont les états pour lesquels toutes les traces qui quittent l état respectif satisfont : Gp? pu q? Convention : si un état n est pas étiquetté par une variable a, c est que cette variable est fausse dans l état respectif!

Formules LTL et systèmes de transition Π = {p}. Est-ce qu il existe un système de transitions dont l ensemble de traces (infinies) soit exactement l ensemble des traces satisfaisant FGp?

Formules LTL et systèmes de transition Π = {p}. Est-ce qu il existe un système de transitions dont l ensemble de traces (infinies) soit exactement l ensemble des traces satisfaisant FGp? Non! Les systèmes de transitions ont besoin d un critère plus puissant permettant de filtrer certaines traces!

Mots infinis et états répétitifs Un automate de Büchi est un système de transition A = (Q,Π, Q 0,δ,λ,R),...... dans lequel on a rajouté une composante R Q définissant des états répétitifs. Condition d acceptation de Büchi Une trace est acceptante si elle passe infiniment souvent par un des états de R. Exemple pour FGp : 1,p 2, 3,p Avec R = {3}. Convention : si un état n est pas étiquetté par une variable a, c est que cette variable est fausse dans l état respectif!

Algorithmes d automates de Büchi Langage vide? Vérifier s il existe un état dans R qui est : atteignable et fait partie d un circuit. C.à.d. R appartient à une composante fortement connexe non-triviale et atteignable. Constructions pour l union similaire aux automates finis. Intersection : il faut adapter les états répétitifs! Petit exemple...

Automates de Büchi à partir de formules LTL Construction pour Xp and Xp : p, Xp Xp Pas besoin de spécifier des états répétitifs! p Convention : si un état n est pas étiquetté par une variable a, c est que cette variable est fausse dans l état respectif!

Automates de Büchi à partir de formules LTL Construction pour pu q and (pu q). q, pu q p, pu q p p, q, pu q Cette fois-ci il faut spécifier des états répétitifs : On ne peut pas rester à l infini dans l état p, pu q! Convention : si un état n est pas étiquetté par une variable a, c est que cette variable est fausse dans l état respectif!

Algorithme de model-checking Construire l automate de Büchi A φ correspondant à φ. Vérifier que A A φ =. Si A Aφ = alors aucune trace de A (partant d un état initial) ne satisfait φ,... donc toutes les traces de A satisfont φ!

Vérification des propriétés LTL en NuSMV Commande check_ltlspec : Option -p "formule" : vérifier que le système de transition défini dans le fichier chargé satisfait la formule indiquée. Des formules (spécifications) LTL peuvent être déclarées dans le code avec le mot-clé LTLSPEC, et vérifiées avec check_ltlspec -n numero, où numero est le numéro de la formule dans la liste des LTLSPECs.