Travail d étude La Logique Temporelle



Documents pareils
21 mars Simulations et Méthodes de Monte Carlo. DADI Charles-Abner. Objectifs et intérêt de ce T.E.R. Générer l'aléatoire.

Model checking temporisé

Cours d algorithmique pour la classe de 2nde

Model checking temporisé Algorithmes efficaces et complexité

Contribution à l algorithmique de la vérification

FORMATION MULTIMÉDIA LVE

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

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

Fonctions linéaires et affines. 1 Fonctions linéaires. 1.1 Vocabulaire. 1.2 Représentation graphique. 3eme

EXTENSION D UN OUTIL DE VISUALISATION DE TRACES

NOTIONS DE PROBABILITÉS

Partie publique / Partie privée. Site statique site dynamique. Base de données.

Document de présentation technique. Blocage du comportement

L import massif introduit plusieurs nouvelles fonctionnalités, selon que l on importe un thésaurus, un ensemble de valeurs contrôlées ou un corpus.

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

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

Questions Fréquemment Posées

MANUEL DE PROCÉDURE POUR LA MISE À JOUR DU SITE DE FIDAFRIQUE. Documentation utilisateur Octobre 2005

CONTRAT DE PRÊT PRET5 ENTRE LES SOUSSIGNÉS :

Ecran : Processeur : OS : Caméra : Communication : Mémoire : Connectique : Audio : Batterie : Autonomie : Dimensions : Poids : DAS :

REGLEMENT D UTILISATION

Aide - mémoire gnuplot 4.0

L énergie en quelques minutes

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

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

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

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

USTL - Licence ST-A 1ère année Initiation à la programmation TP 1

Informations de sécurité TeamViewer

L a d é m a r c h e e t l e s o u t i l s p r o p o s é s

Algorithmique et programmation : les bases (VBA) Corrigé

GUIDE RAPIDE EXPERT espace de partage

ndv access point : Utilisation

Modifications du Code du travail par la loi N du 4 août 2014

a et b étant deux nombres relatifs donnés, une fonction affine est une fonction qui a un nombre x associe le nombre ax + b

Calculs de probabilités avec la loi normale

SIP. Plan. Introduction Architecture SIP Messages SIP Exemples d établissement de session Enregistrement

MUTUELLE TRANSPORT SANITAIRE OFFRE DE SERVICES

Feuille TD n 1 Exercices d algorithmique éléments de correction

Un ordonnanceur stupide

COMPRENDRE LES FRAIS DE DÉPLACEMENT DANS LE NETTOYAGE

Manuel programmation QUESTOR

Pour une première installation : suivre la procédure en page 5 à 9 Pour une mise à jour : suivre la procédure page 5, 6, 10 et 11

ARCHITECTURE ET FONCTIONNEMENT DE LA NORMALISATION. Journée du sur la Normalisation dans les Transports Publics

Titre : La Mutuelle Communautaire de Santé de Yaoundé : Un mécanisme solidaire de financement collectif d accès aux soins de santé de qualité.

PROGRAMMATION EVENEMENTIELLE sur EXCEL

Suites numériques 4. 1 Autres recettes pour calculer les limites

Installation Guide Serveur d impression et de stockage multifonctions à 2 ports USB 2.0 haute vitesse Manuel de l utilisateur

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 =

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

Planète Multimédia. Voici le logo qu il faut choisir : et tapez sur puis acceptez.

REGLEMENT MUTUALISTE DU REGIME FRAIS MEDICAUX ET CHIRURGICAUX. (Complémentaire santé)


Guide d installation

ATELIER DROIT DES CONTRATS, DE LA CONSOMMATION ET DU COMMERCE ELECTRONIQUE

Le bon questionnaire, à la bonne personne et au bon moment

Manuel d'utilisation de Palm BlueBoard 2.0

Rapport Lille. Sondage National de Satisfaction de la CNAV auprès des entreprises

enquête pour les fautes sur le fond, ce qui est graves pour une encyclopédie.

ASSOCIATION DES USAGERS DES BANQUES ET ETABLISSEMENTS FINANCIERS DE COTE D'IVOIRE (A.U.B.E.F C.I)

TRIGONOMETRIE Algorithme : mesure principale

Créer un album photo

La parole aux assurés

Continuité en un point

Introduction aux concepts d ez Publish

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Introduction aux Systèmes et aux Réseaux

Système de contrôle d accès Codelock avec clavier de codage CL12

Le Régime volontaire d épargne-retraite (RVER) du Québec Aperçu du régime d épargne-retraite offert par l employeur dévoilé récemment

Chapitre I Notions de base et outils de travail

MANUEL DRIVELINK DRIVELINK

Manuel utilisateur. Version 1.6b

Recommandation sur la commercialisation des comptes à terme

Exercice 3 (5 points) A(x) = 1-e -0039' e- 0,039x A '() -'-,..--,-,--,------:-- X = (l_e-0,039x)2

La Gestion de fichiers Supports réalisés avec OpenOffice.org 2.3 Writer. La Gestion de fichiers. Niveau : Débutant Auteur : Antonio da Silva

Projet Active Object

PRESCRIPTION MEDICALE DE TRANSPORTS. Service des Affaires Juridiques 28/11/2013

gestion des processus La gestion des processus

les agences de recrutement romandes sont- elles assez connectées?

CHAPITRE VI ALEAS. 6.1.Généralités.

Université Paris-Dauphine DUMI2E 1ère année, Applications

INSTALLATION DE WINDOWS 2000 SERVER POUR BCDI3. par. G.Haberer, A.Peuch, P.Saadé

LIVRE BLANC Décembre 2014

108y= 1 où x et y sont des entiers

Simulation de variables aléatoires

ssurance de prêt Choisissez la meilleure protection pour toute la durée de votre prêt Simulez le coût de votre assurance de prêt

Méthode : On raisonnera tjs graphiquement avec 2 biens.

magarantie Hospitalière REGLEMENT MUTUALISTE GENERAL OPERATIONS INDIVIDUELLES Règlement mutualiste

Une introduction à la technologie EJB (2/3)

CAISSE ENREGISTREUSE ELECTRONIQUE SE-G1 MANUEL SIMPLIFIE DE L UTILISATEUR 20/03/14

5004H103 Ed. 02. Procédure d installation du logiciel AKO-5004

Cahier de charge application cartographie (base de données des acteurs et des lieux culturels)

Suites numériques 3. 1 Convergence et limite d une suite

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

Une forme générale de la conjecture abc

1 Complément sur la projection du nuage des individus

L informatique en BCPST

Installation kit NTS 820-F E9NN

UNIVERSITE DE TOULON UFR FACULTE DE DROIT REGLEMENT D EXAMEN ANNEE 2012/2017 LICENCE DROIT MENTION DROIT GENERAL

Transcription:

Travail d étude La Logique Temporelle M SAKNI CHARFEDDINE Licence Informatique 18 juin 2004 1

CTL LOGIQUE LTL LOGOS 2

1 Introduction La logique temporelle est une extension de la logique conventionnelle (propositionnelle), elle intègre de nouveaux opérateurs qui expriment la notion du temps. En effet, par exemple, il n est pas possible d exprimer dans la logique classique une assertion liée au comportement d un programme telle que après exécution d une instruction i, le système se bloque. Dans cette assertion, les actions s exécutent suivant un axe de temps : à l instant t, exécution de l instruction i, et à t + 1 blocage du système. Il faut donc une logique qui modélise les expressions du passé et du futur [1, 8, 9]. On distingue principalement deux classes de logiques : Logique du temps linéaire comme LTL permettant d exprimer des propriétés portant sur des chemins individuels (issus de l état initial) du programme. Logique du temps arborescent comme CTL permettant d exprimer des propriétés portant sur les arbres d exécution (issus de l état initial) du programme. 2 Logique LTL La logique temporelle linéaire ou LTL «Linear Temporal Logic (en aglais)» permet de représenter le comportement des systèmes réactifs au moyen des propriétés qui décrivent le système pour lesquels le temps se déroule linérairement [1, 8, 9]. En clair, on spécifie le comportement attendu d un système, en spécifiant l unique futur possible tel que dans fig1 où une séquence d actions qui se suivent : Temps fig 1 :Le déroulement temporel d un système dans une logique linéaire[1]. 2.1 Syntaxe Les formules de la logique temporelle linéaire LTL sont définies par la grammaire suivante [1, 8, 9] : 3

Les propositions atomiques : Φ, Ψ : := p q... true false Φ, Ψ LTL Les connecteurs booléens : Soit Φ, Ψ LTL, toutes formules de la forme Φ Φ Ψ Φ Ψ Φ Ψ Φ Ψ appartiennent à LTL. Les connecteurs temporels : Soit Φ, Ψ LTL, toutes formules de la forme G Φ F Φ Φ U Ψ X Φ appartiennent à LTL. 2.2 Sémantique Notons que, dans les dessins [2] qui suivent, les ronds renforcés noirs expriment que Φ est vrai. Ainsi, on définit les opérateurs temporels comme suit : 1. X (next) X Φ : "Φ est vérifié à l état suivant" : Temps 2. F (eventually) F Φ : "il existe un état pour lequel Φ est vrai" : Exec 1: Temps Exec 2: Temps 3. G (always) G Φ : "Φ est toujours vérifié dans le futur" : exec1, exec2 = FΦ Temps 4

4. GFp : "p est vérifié une infinité de fois dans le futur". 5. FGp : "p est toujours vérifié à partir d un certain état". Dans ce cas le rond renforcé bleu exprime que Ψ est vrai. 6. U (until) Φ U Ψ : Φ est vérifié jusu à ce que Ψ le soit : Exec 1 : Temps 2.3 Exemple Pour illustrer l utilisation de la logique temporelle linéaire dans la formalisation des problèmes pratiques, nous donnons l exemple du publiphone qui consiste à modéliser les actions qu un utilisteur exécute pendant l opération de tentative de téléphonner jusqu à la fin de la communication. Donnons, d abord, la procédure téléphoner : L utilisateur doit décrocher le téléphone. Le système affiche insérer une carte. L utilisateur insère une carte. Le système affiche le nombre d unités restantes. L utilisateur compose son numéros de téléphone avec la possibilité de le corriger pour obtenir le bon numéros dans un délais de 2 secondes. L utilisateur communique avec son correspondant, tant qu il lui reste des unités. Si la carte est épuisée, l utilisateur a 10 secondes pour la changer. Lorsque la communication est terminée, l utilisateur raccroche le téléphone. Le système affiche retirer la carte. L utilisateur retire sa carte. Ensuite, formalisons les propositions atomiques : u_décrocher : l utilisateur décroche le téléphone. sys_affiche(message) : le système affiche le message. 5

u_insérer_carte : l utilisateur insère une carte. u_compser_no : l utilisateur compose le numéros. u_correction_no : l utilisateur corrige le numéros. numéros_correct : le numéros est correct. u_communiquer : l utilisateur communique avec son correspondant. u_changer_carte_vide : l utilisateur change sa carte qui est épuisée. u_raccrocher : l utilisateur raccroche le téléphone. u_retirer_carte : l utilisateur retire sa carte. ltl_téléphoner : établit la clause de l activité téléphoner. Enfin, on obtient la formule [1] : u_decrocher X sys_af f iche(insérer carte) XX [(u_insrer_carte X sys_af f iche(nb_units_restantes)) (X u_composer_no F (u_correction_nou numros_correct)) ((X u_communiquer F (u_changer_carte_vide U unites(carte) > minimum)) U (u_raccrocher u_retirer_carte))] ltl_telephoner Pour téléphoner, l utilisateur doit décrocher le téléphone, puis, dans l état suivant (opérateur X), il doit insérer sa carte. Ensuite, il compose son numéros avec la possibilité (opérateur F) de le corriger. Si le numéros est correct, l utilisateur pourra, alors communiquer avec la possibilité de changer sa carte. La communication dure jusqu à ce qu il raccroche le téléphone et retire sa carte. On a pu exprimer la notion de boucle à l aide de l opérateur U. Par exemple, on corrige le numéros de téléphone un nombre infini de fois jusqu à obtenir le bon numéros. En plus, l opérateur X précise le séquencement des évènements : l utilisateur compose son numéros juste après que le système affiche le nombre d unités restantes. 6

3 La logique du temps arborescent La logique du temps arborescent ou CTL «Computation Tree Logic (en aglais)» permet de considérer plusieurs futurs possibles à partir d un état du système plustôt que d avoir une vue linéaire du système considéré [1, 3]. Init fig 2 :Le déroulement temporel d un système dans une logique arborescente[1]. 3.1 Syntaxe Les formules de la logique temporelle linéaire CTL sont définies par la grammaire suivante [1, 3] : Les propositions atomiques : Φ, Ψ : := p q... true false Φ, Ψ CTL Les connecteurs booléens : Soit Φ, Ψ LTL, toutes formules de la forme Φ Φ Ψ Φ Ψ Φ Ψ Φ Ψ appartiennent à CTL. Les connecteurs temporels : Soit Φ, Ψ LTL, toutes formules de la forme EF Φ EG Φ E ΦU Ψ EX Φ AF Φ AG Φ A ΦU Ψ AX Φ appartiennent à CTL. E, A : quantifications sur toutes les exécutions possibles à partir de l état courant. 7

3.2 Sémantique Notons que, dans les dessins[2, 3] qui suivent, les ronds renforcés noirs expriment que Φ est vrai et ceux en bleu exriment que Ψ est vrai. Ainsi, on définit les opérateurs temporels comme suit : 1. EF Φ : «il est possible d atteindre un état où Φ est vérifié» ou «il existe une exécution (opérateur E) conduisant à un état où Φ est vérifié (opérateur F)». e0 e0 = EF Φ 2. AF Φ : «Φ est vérifié dans le futur» ou «pour toute exécution (opérateur A), il existe un état où Φ est vérifié (opérateur F)». e0 e0 = AF Φ 3. AG Φ : «Φ est vérifié pour tout état atteignable» ou «pour toute exécution (opérateur A), Φ est toujours vérifié (opérateur G)» : 8

e0 e0 = AG Φ 4. EG Φ : «il existe une exécution (opérateur E) où Φ est toujours vérifié (opérateur G)» : p e0 e0 = EG Φ 5. E Φ U Ψ : «il existe une exécution (opérateur E) durant laquelle Φ est vérifié jusqu à ce que Ψ le soit (Φ U Ψ )» : e0 e0 = E Φ U Ψ 6. A Φ U Ψ : «pour toute exécution (opérateur A) Φ est vérifié jusqu à ce que Ψ le soit (Φ U Ψ )» : 9

e0 e0 = A Φ U Ψ 7. EX Φ : «il existe une exécution (opérateur E) dont le prochain état satisfait Φ». 8. AX Φ : «tous les états immédiatement successeur satisfont Φ» : e0 e e0 = EX Φ e = AX Φ 9. AG EF Φ : «A partir de n importe quel état atteignable, il est possible d atteindre un état satisfaisant Φ» : e0 e e0 = AG EF Φ 10

3.3 Exemple : On reprend l exemple du publiphone pour illustrer comment on modélise le problème dans la logique CTL [2]. La clause ltl_téléponer sera ctl_téléphoner. La formalisation en CTL donne [1] : u_decrocher u_inserer_carte AX [(u_composer_no EF u_reprise_sur_erreur) AX ((u_communiquer EF changer_carte_vide) U (u_raccrocher u_retirer_carte))] ctl_telephoner Pour téléphoner, l utilisateur doit décrocher le téléphone et insérer une carte (l ordre de ces deux actions n intervient pas). Puis, dans tous les états possibles (opérateur AX), il composera le numéros, et pour terminer il raccrochera le téléphone et retirera sa carte. Pour composer le numéros, l utilisateur pourra (opérateur E) se ramener à le corriger (opérateur F). Dans tous les états possibles, l utilisateur communique au téléphonne jusqu à (opérateur U) ce qu il raccroche et retire sa carte avec une possibilité de l échanger (opérateur EF). EF se traduit dans notre cas par eventuellement au lieu de finallement pour eventually. On remarque que cette version n est pas aussi précise que la précedente. De plus, on donne des informations de plus en plus floues. Remarquons, par exemple, l abscence de l indicateur de temps qui précise la durée pour changer une carte téléphonique. 4 Exemple de propriétés La logique temporelle est utilisée pour exprimer des propriétés à vérifier, notamment la spécifications comportementales, caractérisant le comportement d un programme. De façon à les utiliser pour faire de la vérification ; par exemple, utilisation des outils comme SMV, PVS, SPIN et autres qui utilisent des expressions de la logique temporelle pour examiner si celle ci vérifie un programme ou non. 11

Donnons à présent des exemples très simples de propriétés exprimées en Logique Temporelle : evt1 et evt2 arrivent ou n arrivent pas simultanément : G(evt1 evt2) evt2 n arrive pas avant evt1 : G( (evt2) U evt1) Si evt2 alors evt1 doit arriver 3 cycles après : G(evt1 XXX evt2) Une ressource est accordée à au plus un processus demandeur à la fois : G(a i a j ) i j Propriétés de sûreté : Soit P i et P j deux processus et CS i la proposition atomique dénotant que le processus P i est en section critique, la formule G( ( CS i CS j )) caractérise l exclusion mutuelle de P i et P j. Propriété de vivacité : Soit try i la proposition exprimant la demande d accès à la section critiuqe. La formule suivante, try i F CS i exprime qu un processus demandant l accès à la section critique finira par l obtenir. 5 Conclusion On vient de voir deux types de logiques temporelles : LTL et CTL.Toute fois, il existe d autres logiques temporelles comme TLA, CTL*, PLT.... L aspect important de la logique temporelle est son aspect expressif, c est à dire sa capacité de décrire différentes classes de propriétés. Évidement la logique CTL est plus puissante que la LTL puisque cette dernière étend la CTL [1, 3]. Néanmoins, la logique linéaire est utilisable et bien simple pour exprimer des comportements (actions) qui ne nécessitent pas des branchements. Ainsi, nous remarquons dans l exemple 2.3 et 3.3 que la formule de l assertion est plus com- 12

pacte et des fois même plus lisible que celle exprimée en LTL. Cependant, le but de la logique temporelle est de proposer des formalismes de haut niveau permettant d analyser de façon simple une classe déterminée de propriétés [3]. Il serait intéssant, que je m attaque à un problème pratique, par exemple spécification d un problème inforamatique en modélisant un programme et/ou une propriété à vérifié pour les utiliser, toucher de plus prés leurs intérêts et voir leurs limites. 13

Références [1] membres.lycos.fr/interaction/ Theses/Brun1998/Brun1998.pdf [2] www.infres.enst.fr/ najm/ips/session-2004/cours_logique_temporelle_et_model_checking.pdf [3] Chapitre 8 : La logique du temps arborescent (article) [4] http ://philologos.free.fr/logique.html [5] http ://www.relst.uiuc.edu/durkheim/texts/1884a/38.html [6] Encyclopédie Hachette 2002 [7] http ://www.univ-nancy2.fr/ensgt/philo/walter/lfah.html [8] http ://wwwsi.supelec.fr/gvn/logiquetemporelle.pdf [9] L outil de vérification SPIN Auteur :Eric Vachon [10] http ://www.loria.fr/ bonfante/modelchecking/poly004.html 14