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

Dimension: px
Commencer à balayer dès la page:

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

Transcription

1 VINCENT MATHIEU VÉRIFICATION DES SYSTÈMES À PILE AU MOYEN DES ALGÈBRES DE KLEENE Mémoire présenté à la Faculté des études supérieures de l Université Laval dans le cadre du programme de maîtrise en informatique pour l obtention du grade de Maître ès sciences (M.Sc.) FACULTÉ DES SCIENCES ET DE GÉNIE UNIVERSITÉ LAVAL QUÉBEC 2006 c Vincent Mathieu, 2006

2 Résumé La vérification de modèle est une technique permettant de faire un modèle représentant le comportement d un système ou d un programme, de décrire une propriété àvérifier sur ce dernier et de faire la vérification au moyen d un algorithme. Dans ce mémoire, nous décrivons notre propre méthode de vérification de modèle basée sur les algèbres de Kleene. Plus particulièrement, nous utilisons une extension appelée omégaalgèbre avec domaine. Cette méthode algébrique permet de vérifier des propriétés pouvant être exprimées au moyen de la logique CTL basée sur les états et les actions du modèle à vérifier. Nous représentons ces propriétés au moyen d expressions sur une oméga-algèbre avec domaine. Les modèles que nous pouvons vérifier sont les systèmes à pile, une classe de systèmes de transitions pouvant avoir un nombre infini d états. Les systèmes à pile peuvent représenter le flot de contrôle des programmes avec appels de procédures, incluant les appels récursifs. Des matrices sur une oméga-algèbre avec domaine sont utilisées pour représenter ces systèmes de transitions. Notre méthode génère, à partir de la matrice représentant le système à pile à vérifier et de l expression représentant la propriété à vérifier sur ce dernier, une équation qu il faut démontrer de façon axiomatique afin de conclure que le système satisfait la propriété.

3 Avant-propos Je voudrais remercier en premier lieu mon directeur de recherche, le professeur Jules Desharnais. Je suis très reconnaissant envers lui d avoir partagé son savoir avec moi et j ai beaucoup apprécié sa rigueur. Il m a laissé une grande liberté dans le choix des avenues à approfondir au cours de la réalisation de mon projet de recherche, ce que j ai bien aimé. Je remercie aussi tous les membres du groupe de recherche LSFM avec qui je me suis lié d amitié au cours de ma maîtrise, plus particulièrement Therrezinha Fernandes, Claude Bolduc, Maxime Beaudoin, Patrice Lacroix et Delphine Verbyst. Ils m ont supporté etm ontpermisdemechangerlesidées à plusieurs occasions. Je remercie une fois de plus Claude Bolduc avec qui j ai eu beaucoup de discussions au sujet des algèbres de Kleene. Enfin, je remercie les membres de ma famille, surtout mes parents, pour leur encouragement et leur support.

4 Table des matières Résumé Avant-propos Table des matières ii iii iv 1 Introduction Problématique Contribution Organisation du mémoire Vérification de modèles Introduction de la méthode Classification des modèles Classificationdeslogiques Logiques linéaires Logiquesarborescentes CTL Logiques non régulières Vérification de systèmesfinis LTL et mu-calcul linéaire CTL CTLetmu-calculmodal Vérification de systèmes àpile Mu-calculmodal LTL, mu-calcul linéaire et CTL Algèbres de Kleene et extensions Historique Définitionsdebase AlgèbredeKleenedeKozen Algèbre de Kleene -continue, demi-anneau fermé et S-algèbre Algèbre de Kleene sur un treillis complet

5 Table des matières v 3.3 Extensions AlgèbredeKleeneavectests AlgèbredeKleeneavecdomaine Oméga-algèbre Autresextensions Modèles Traces Langages Relationsbinaires Matrices Applications Vérification des systèmes à pile au moyen des algèbres de Kleene ReprésentationdePDS Algèbredepilesetd actions Représentationaumoyendematrices Représentation de propriétés àvérifier Vérification de la satisfaction d une propriété Intégrité etcomplétude de la méthode Intégrité Complétude Discussion à propos des systèmesfinis Comparaisons Implantation Analyselexicaleetsyntaxique ImplantationdediversesOAD Conclusion Résumé Travauxfuturs Bibliographie 94 Index 98

6 Chapitre 1 Introduction 1.1 Problématique L informatique et Internet prennent une place de plus en plus importante dans notre vie de tous les jours. Les systèmes informatiques effectuent un très grand nombre de tâches et sont devenus très complexes. Par le fait même, les risques de failles dans ces systèmes sont plus grands et il en résulte une augmentation de la fréquence des attaques envers ces derniers. Afin d améliorer la sécurité des logiciels, nous sommes intéressé parladétection du code malicieux (virus, ver, cheval de Troie,...) ou vulnérable à des attaques. On peut tenter de détecter ce type de code à l exécution, ce qui est nommé analyse dynamique, ou tenter de déterminer le comportement du programme en analysant son code sans l exécuter, ce qui est l analyse statique. Dans le cas de l analyse dynamique, un logiciel appelé moniteur étudie les opérations effectuées à l exécution et peut arrêter cette dernière si une opération jugée non sécuritaire est sur le point d être effectuée. Ceci peut ralentir grandement l exécution. De plus, malheureusement, seul le code exécuté est analysé. Cette technique ne peut donc pas assurer qu une exécution quelconque d un programme est sécuritaire. D un autre côté, l analyse statique est plus intéressante puisqu elle n a pas les inconvénients que l on vient de nommer. Comme elle se déroule avant l exécution, elle ne ralentit pas cette dernière. De plus, le fait d analyser directement le code du programme permet d étudier toutes ses exécutions possibles. Malheureusement, l analyse statique n est habituellement possible qu en faisant une abstraction du programme àvérifier. À cause de cette abstraction, il peut arriver qu on ne puisse conclure qu un programme est sécuritaire même lorsqu il l est. Le contraire peut aussi arriver, c est-à-dire qu on ne puisse conclure à l insécurité lorsque le programme n est

7 Chapitre 1. Introduction 2 pas sécuritaire. Voici un exemple de problème pouvant être traité de façon statique. On veut détecter si le contenu d un fichier est envoyé surleréseau. Il est facile de vérifier qu un envoi quelconque sur le réseau peut suivre la lecture d un fichier dans le cas où ces deux actions se produisent dans une même procédure du programme. Par contre, c est plus difficile si elles se produisent dans des procédures différentes. Dans le premier cas, on parle d analyse intraprocédurale tandis qu on parle d analyse interprocédurale dans le deuxième. Dans le cas où nous détectons qu il est possible qu un envoi sur le réseau survienne suite à la lecture d un fichier, nous ne savons pas si ce qui est envoyé provient ou non du fichier. C est parce que nous avons analysé le programme en nous intéressant seulement aux suites d instructions possibles sans voir de liens entre elles. On parle ici d analyse de flot de contrôle. Par la suite, on voudra vérifier que ce qui est envoyé ne provient pas du fichier en question. Ce problème est encore plus difficile puisque cela nécessite une analyse de flot de données. La vérification de modèles est une technique permettant de vérifier, sans exécution, qu un programme ou un système satisfait une ou plusieurs propriétés. L utilisation de cette technique consiste à faire un modèle du programme ou du système à vérifier, habituellement au moyen d un système de transitions, et àdécrire la propriété àvérifier, habituellement au moyen d une formule logique temporelle. Enfin, un algorithme est utilisé pour vérifier si le modèle satisfait ou non la formule. Un avantage de cette technique est qu elle permet de décrire un grand éventail de modèles et de propriétés. Elle permet même de décrire des propriétés à propos du flot de données, à condition que le modèle représente les informations nécessaires pour faire une telle analyse. Un système àpileest une forme de système de transitions qui utilise une pile de taille non bornée comme structure de données. Un tel système est un modèle du flot de contrôle d un programme contenant des appels de procédures, incluant les procédures récursives. La vérification de systèmes à pile est donc une technique d analyse statique interprocédurale. 1.2 Contribution Ce mémoire s inscrit dans le cadre d un projet dont l objectif est d étudier et de développer les mathématiques des algèbres de Kleene à des fins d analyse de programmes. Nous y décrivons une technique de vérification de systèmes à pile au moyen des algèbres de Kleene et d extensions de ces dernières. L intérêt d utiliser ce formalisme algébrique est d avoir un formalisme unique pour représenter le modèle et la propriété à

8 Chapitre 1. Introduction 3 vérifier ainsi que pour faire la vérification. Il n est donc plus nécessaire de travailler avec des structures hétérogènes comme les systèmes de transitions et les formules logiques. Il n est plus nécessaire également d appliquer des algorithmes parfois compliqués, mais seulement de manipuler des expressions algébriques au moyen de quelques lois. À notre connaissance, les algèbres de Kleene n ont jamais été utilisées pour faire la vérification de systèmes à pile, ni pour faire de l analyse interprocédurale de programmes. C est la principale innovation de ce travail. Elles ont déjà été utilisées pour faire l analyse de programmes non récursifs [4, 31]. Ceci étant dit, nous sommes en mesure de décrire et de vérifier un plus grand éventail de propriétés sur ces systèmes à cause des extensions des algèbres de Kleene que nous utilisons. 1.3 Organisation du mémoire Le chapitre 2 présente la vérification de modèles, incluant la vérification des systèmes à pile. On y présente plusieurs logiques utiles pour énoncer des propriétés à vérifier. Le chapitre 3 présente les algèbres de Kleene et plusieurs extensions de ces dernières. Par la suite, c est au chapitre 4 que nous décrivons notre approche pour la vérification des systèmes à pile au moyen des algèbres de Kleene et d extensions de ces dernières. Au chapitre 5, nous présentons brièvement une implantation de notre méthode permettant de faire la vérification de systèmes finis, un cas particulier des systèmes à piles. Enfin, nous concluons ce travail au chapitre 6.

9 Chapitre 2 Vérification de modèles 2.1 Introduction de la méthode Il existe plusieurs méthodes pour vérifier que les systèmes (matériels ou logiciels) satisfont un comportement désiré. La forme la plus simple de vérification est sûrement le test. Le test d un logiciel ou d une partie d un logiciel consiste àexécuter ce dernier en lui fournissant des données et à observer si les résultats fournis correspondent à ce qui est attendu. Pour le matériel, la simulation est souvent utilisée. Le système est modélisé par un logiciel sur lequel les tests sont effectués, ce qui permet de détecter des erreurs avant l étape de fabrication, qui est dispendieuse pour le matériel. Les tests sont très utiles, mais ils ont des inconvénients. Puisque le domaine des entrées peut être très grand ou même infini, cette technique ne peut assurer qu un système est correct. Il faudrait dans ce cas exécuter le programme un nombre infini de fois. De plus, cette technique n est pas adaptée aux systèmes réactifs dont le comportement consiste à réagir continuellement avec l environnement plutôt que de terminer et fournir un résultat. Pensons entre autres aux systèmes d exploitation, mais aussi à plusieurs systèmes matériels tels que les machines distributrices. Afin d éviter les inconvénients de la méthode de tests, nous allons faire de la vérification de modèles, une méthode formelle (basée sur des principes mathématiques) qui ne nécessite pas d exécution. Pour faire cela, il faut être en mesure de décrire de façon formelle le comportement du système à vérifier et le comportement désiré. Pour modéliser le système, nous utilisons habituellement un système de transitions étiquetées. Ce modèle est composé d états qui correspondent aux états dans lesquels le système peut exister et de transitions entre ces états pour indiquer que le système peut passer d un

10 Chapitre 2. Vérification de modèles 5 état donné à un autre en faisant une action donnée. Pour représenter les comportements désirés, on utilise habituellement les expressions de diverses logiques temporelles. L utilisation des techniques de vérification de modèles est différente entre le monde logiciel et le monde matériel. Dans l industrie matérielle, la vérification formelle est considérée très importante puisqu elle permet de vérifier que le matériel est correct avant de le fabriquer. Si une puce électronique est jugée défectueuse après sa fabrication, elle n est bonne à rien et les pertes monétaires sont importantes. La technique est aussi facilement applicable au matériel en théorie puisque ce dernier peut être modélisé par un système fini (le nombre d étatsetlenombredetransitionssontfinis).eneffet, certains algorithmes de vérification vérifient les propriétés en traversant l espace d états au complet, ce qui est possible seulement si ce dernier est fini. En pratique, le problème est jugé plus difficile à cause de l explosion des états. Ce problème est dû aufaitquele nombre d états du modèle est exponentiel par rapport à la taille de la mémoire que le système à vérifier peut utiliser pendant son exécution. Par exemple, si le système utilise un registre de n bits,ilya2 n états possibles différents à l exécution en ne tenant compte que de ce registre. Par contre, il existe des techniques pour représenter symboliquement les systèmes et leur usage a fait de la vérification de modèles un succès dans l industrie. Dans l industrie logicielle, c est presque l opposé. Puisque l expressivité d un programme informatique est pratiquement équivalente à celle d une machine de Turing (dont l espace d états est infini), la vérification est impossible en théorie, et ce, même pour des propriétés simples telles que le problème de l arrêt. Par le fait même, il semble donc que les erreurs possibles dans les logiciels soient considérées comme un mal inévitable. De plus, puisqu il est moins coûteux de corriger une erreur logicielle que matérielle, les entreprises préfèrent mettre leurs logiciels en marché le plus tôt possible. Il en résulte donc que la vérification de modèles est moins utilisée dans l industrie logicielle que matérielle, même si, comme nous le verrons, il est possible en pratique de vérifier formellement du logiciel (en faisant des abstractions au niveau du modèle). Le but de ce chapitre est de présenter la vérification de modèles de façon générale. Il montre aussi que la vérification de modèles est faisable sur certains systèmes infinis, ce qui en fait une méthode intéressante pour la vérification du logiciel. Les informations utilisées pour ce survol proviennent principalement de [6, 42]. Un cadre de travail pour la vérification de modèles nécessite trois choses. Premièrement, un formalisme pour modéliser les systèmes, ce dont nous traiterons à la section 2.2. Deuxièmement, il faut un formalisme pour décrire des propriétés à vérifier (section 2.3) et, troisièmement, un algorithme pour vérifier que le modèle satisfait la propriété désirée. Nous présenterons des algorithmes pour la vérification de différentes classes de

11 Chapitre 2. Vérification de modèles 6 modèles aux sections 2.4 et Classification des modèles Nous modélisons les systèmes à vérifier au moyen de systèmes de transitions étiquetées. (2.1) Définition. Un système de transitions étiquetées (LTS, de labelled transition system) est un quadruplet T =(S, A,,r) tel que S est un ensemble d états, A est un ensemble d actions, S A S est une relation de transition et r S est la racine du système. Si (s, a, s ) nous écrivons s a s.celasignifiequelesystème peut passer de l état s àl état s en faisant l action a. (2.2) Définition. Soit un LTS T =(S, A,,i). Une exécution π = s 1 a 1 s 2 a 2... de a T est une séquence infinie et alternée d états et d actions de T telle que s i i si+1 pour tout i 1. Nous définissons π i déf = s i a i s i+1 a i+1..., le suffixe de π partant de s i,etinf (π), l ensemble des états qui apparaissent infiniment souvent dans π. Nousdéfinissons aussi π(i) déf = s i,lei e état de π, etexec(t ), l ensemble des exécutions de T. On peut vouloir définir un système de transitions sans étiqueter les transitions au moyen d actions. Un tel système est donc un triplet (S,,r). La définition de S et de r est la même que pour un LTS tandis que S S et on écrit s s si (s, s ). L ensemble des états d un LTS peut être infini. En outre, la vérification de propriétés intéressantes n est pas décidable sur des systèmes quelconques. En effet, un LTS peut représenter une machine de Turing et les propriétés intéressantes sont en général indécidables pour ces systèmes. C est pourquoi nous allons nous intéresser seulement à des systèmes finis et à des systèmes infinis qui respectent certaines restrictions. Les systèmes finis sont des LTS dont le nombre d états et de transitions sont finis. Une classe de modèles un peu moins restrictive sera plus intéressante pour nous. Il s agit des systèmes à pile. Un système à pile peut être vu de façon informelle comme un système fini muni d une pile de taille non bornée. Il y a un alphabet spécial pour la pile. Ce qui correspond àunétat du système fini (c est-à-dire un état du système sans tenir compte de la pile) sera maintenant appelé point de contrôle. Un état dans un système à pile correspond à un point de contrôle plus une configuration de la pile. Il peut donc y avoir un nombre infini d états dans un système à pile dû au fait que la taille de la pile est non bornée. L intérêt de ces systèmes est qu ils sont un modèle pouvant

12 Chapitre 2. Vérification de modèles 7 représenter le flot de contrôle de programmes avec appels de procédures (incluant les appels récursifs). (2.3) Définition. Un système à pile(pds, de pushdowm system) est un quadruplet P = (P, Γ,,c 0 )telquep est un ensemble fini de points de contrôleetγestun alphabet de pile fini. Une configuration de pile est un mot fini w Γ.Unétat de P est un couple (p, w) telquep P et w Γ. On associe à P le LTS T P =(P Γ, P,c 0 ) ayant c 0 comme état initial. est un sous-ensemble fini de (P Γ) (P Γ ). Si ((p, γ), (p,w)), nous écrivons (p, γ) P (p,w). La relation de transition de T P est déterminée par comme suit : Si (p, γ) P (p,w)alors(p, γw ) P (p,ww )pourtoutw Γ. La tête d un état (p, γw), où γ Γ, est le couple (p, γ). Il faut remarquer que dans cette représentation d une pile par un mot fini, le dessus de la pile est à gauche du mot et le bas est à droite. Cette définition de PDS est celle de [42]. Ce sont des systèmes de transitions non étiquetées et d après leur définition, ils dépilent obligatoirement un symbole sur la pile à chaque transition. Plus tard, nous enlèverons cette restriction et permettrons d ajouter des actions. 2.3 Classification des logiques Cette section présente certaines logiques temporelles pouvant servir à énoncer des propriétés àvérifier sur des LTS. La plupart de ces logiques sont classées dans une des deux catégories suivantes : les logiques linéaires et les logiques arborescentes. En fait, comme ce sera expliqué dans les sections qui suivent, c est le temps qui est considéré linéaire ou arborescent et cela a un impact sur les propriétés qu expriment les formules de ces logiques. Nous présenterons les principales logiques linéaires et arborescentes. Nous traiterons aussi d une logique nommée CTL permettant de décrire à la fois des propriétés linéaires et arborescentes. Enfin, nous présenterons brièvement les logiques non régulières.

13 Chapitre 2. Vérification de modèles Logiques linéaires Les logiques linéaires supposent qu il n y a qu un seul futur à chaque instant dans le temps. Par exemple, si on considère une exécution donnée d un LTS, il n y a qu un futur à chaque étape de cette dernière. Une telle logique s évalue donc sur les exécutions possibles d un système. Ces exécutions peuvent être finies ou infinies selon la logique, mais dans notre cas, nous ne nous intéressons qu aux exécutions infinies. En fait, les logiques que nous verrons dans cette section ne permettent d exprimer que des propriétés sur des exécutions infinies. Au moment de la vérification, les exécutions finies du LTS àvérifier ne sont donc pas prises en compte. Dans le cas où ondésire vérifier une propriété sur un système ayant des exécutions finies, il faut représenter ces dernières par des exécutions infinies dans le modèle. Soit T = (S, A,,r) un LTS. Le fait qu une exécution π exec(t ) satisfait une formule φ est noté T,π φ. Puisqu une formule de logique linéaire s évalue sur les exécutions d un LTS, la sémantique d une telle formule est donc un ensemble d exécutions. C est l ensemble des exécutions de T qui satisfont la formule. Un état s satisfait φ, noté T,s φ, sil ensembledetouteslesexécutions de T partant de s satisfont φ ou, plus formellement 1,si( π : exec(t ) π(1) = s : T,π φ). Finalement, le LTS T satisfait φ si T,r φ. Les logiques linéaires sont habituellement définies pour exprimer des propriétés soit à propos des actions effectuées au cours d une exécution, soit des états rencontrés au cours d une exécution. On parle respectivement de sémantique basée sur les actions ou sur les états. La premièreseprête bien aux LTS puisque ces derniers possèdent des transitions étiquetées par des actions. Plusieurs modélisent des systèmes sans étiqueter les transitions par des actions. Dans ce cas, les propriétés à vérifier sont sur les états. La sémantique basée sur les états est aussi très intéressante pour la vérification des PDS puisqu elle permet d exprimer des propriétés à propos du contenu de la pile. Cette dernière est une des composantes de l état. Pour chaque logique que nous présentons ci-dessous, nous unissons les deux sémantiques afin d avoir une logique permettant à la 1 Nous utilisons la syntaxe de [20] pour les quantifications. Une quantification a la forme ( x:t 1,y:t 2 R : P ). Le symbole représente le quantificateur qui est suivi de la liste des variables de quantification. Ici, il y a deux variables de quantification x et y ayant respectivement le type t 1 et le type t 2. La notation x, x :t peut être utilisée si plusieurs variables ont le même type. De plus, les types peuvent être omis s ils sont évidents d après le contexte. L expression R, appelée domaine, est une expression booléenne qui décrit les valeurs que peuvent prendre x et y. L expression P est le corps de la quantification. La quantification dénote l application de aux valeurs P telles que x et y satisfont R. La quantification ( x:t : P ) est une abréviation de ( x:t vrai : P ). Par exemple, ( x, y:n 2 x 3 3 y 4:x y )= Notons que les expressions ( x R : P )et ( x R : P ) sont respectivement égales aux expressions en notation classique x.r P et x.r P.

14 Chapitre 2. Vérification de modèles 9 fois d exprimer des propriétés à propos des actions et des états. La logique linéaire la plus simple est la logique Weak Linear-Time Logic (WL). Elle est composée d abord de vrai, et. On ajoute des opérateurs (a)φ venant de la sémantique basée sur les actions, un pour chaque action a A. On y introduit un ensemble de propositions atomiques At tel que c est fait dans la sémantique basée sur les états. Au moment de vérifier une formule sur T =(S, A,,r), une valuation ν : At PS associe un sous-ensemble de S àchaqueélément de At. Voici la syntaxe de la logique, où p At et a A. φ ::= vrai p (a)φ φ φ φ Étant donnée une exécution π = s 1 a 1 s 2 a 2... telle que π exec(t ), la relation T,π ν φ est définiedelafaçon suivante. T,π ν vrai T,π ν p si π(1) ν(p) T,π ν (a)φ si a 1 = a et T,π 2 ν φ T,π ν φ si T,π ν φ n est pas vrai T,π ν φ 1 φ 2 si T,π ν φ 1 ou T,π ν φ 2 Une exécution satisfait l expression (a)φ si la première action est a et si l exécution obtenue en retirant le premier état et la première action satisfait φ. On peut définir les autres opérateurs de la logique classique propositionnelle comme c est fait habituellement. Dans le cas oùlesystème àvérifier n est pas étiqueté, la construction Xφ remplace (a)φ etalasémantique T,π ν Xφ si T,π 2 ν φ. La logique WL n est pas très intéressante puisqu elle permet seulement d exprimer des propriétés à propos des premiers états ou des premières actions d une exécution. Une logique intéressante devrait permettre d exprimer des propriétés du genre «quelque chose de mauvais n arrivera jamais» ainsi que «quelque chose de bien arrivera par la suite», qui sont appelées respectivement propriétés de sûreté et de vivacité. La logique Linear-Time Logic (LTL), qui est sûrement la plus populaire des logiques linéaires, permet d exprimer ce genre de propriétés. C est une extension de WL obtenue en ajoutant

15 Chapitre 2. Vérification de modèles 10 un opérateur binaire U appelé until. L expression φ 1 Uφ 2 stipule que φ 1 est satisfaite jusqu à cequeφ 2, qui est satisfaite par la suite, soit satisfaite. La sémantique de cet opérateur est la suivante. T,π ν φ 1 Uφ 2 si ( i : T,π i ν φ 2 et ( j j<i: T,π j ν φ 1 )) Ilestpossiblededéfinir Fφ déf = vraiuφ qui signifie que φ est satisfaite par la suite et Gφ déf = F φ qui signifie que φ est toujours satisfaite. Les propriétés de vivacité et de sûreté ont donc respectivement la forme Fφ et G φ. LTL est une logique très intéressante et très utilisée en pratique. Il y a par contre certaines propriétés linéaires qu elle ne peut exprimer comme «une propriété φ est vraie à tout moment pair». Dit plus formellement, une exécution π satisfait cette propriété si ( i : T,π 2i φ). Le mu-calcul linéaire est une logique plus expressive que LTL. Elle est construite en ajoutant àwldesvariablesetunopérateur de plus petit point fixe, µx.φ, qui lie les occurrences libres de X dans φ. Dans le but de satisfaire la propriété de monotonie, toute variable doit apparaître dans la portée d un nombre pair de négations. Nous n exprimerons pas de propriétés directement dans cette logique puisque les propriétés exprimées au moyen de points fixes sont habituellement difficiles à comprendre. Pour cette raison, nous n allons pas plus loin dans sa présentation. Nous ne faisons que mentionner son existence Logiques arborescentes Contrairement aux logiques linéaires qui supposent que chaque instant dans le temps n a qu un seul futur, les logiques arborescentes supposent que plusieurs futurs sont possibles à chaque instant. Une formule de ces logiques est donc évaluée sur l arbre des exécutions du système à vérifier. Un état du système à vérifier satisfait une formule si l arbre des exécutions possibles à partir de cet état satisfait la formule. La logique arborescente la plus simple est la logique Hennessy-Milner Logic (HML). C est la contrepartie de WL en logique linéaire. Elle est composée de vrai, et et d un ensemble de propositions atomiques At dont chacun des éléments représente, une fois interprété au moyen d une valuation ν, un sous-ensemble des états du modèle à vérifier. La différence avec WL est que l opérateur (a)φ est remplacé par l opérateur a φ pour

16 Chapitre 2. Vérification de modèles 11 chaque action a du système àvérifier. La syntaxe de la logique est la suivante, où p At. φ ::= vrai p a φ φ φ φ La sémantique d une formule φ est définie par rapport à un LTS T =(S, A,,r)et est notée [φ] T ν. La valeur de cette expression est l ensemble des états de T qui satisfont φ. La sémantique de HML est la suivante. [vrai] T ν [p] T ν [ a φ] T ν [ φ] T ν [φ 1 φ 2 ] T ν déf = S déf = ν(p) déf = {s S ( s S : s a s et s [φ] T ν )} déf = S [φ] T ν déf = [φ 1 ] T ν [φ 2 ] T ν Un état s satisfait a φ s il existe une transition par a à partir de s menant àunétat qui satisfait φ. Il est possible de définir [a]φ déf = a φ, qui signifie que toute transition par a mènedansunétat qui satisfait φ. Lorsque le système àvérifier n est pas étiqueté, il faut remplacer la construction a φ par EXφ qui signifie qu il existe une transition qui mènedansunétat qui satisfait φ et dont la sémantique formelle est [EXφ] T ν déf = {s S ( s S : s s et s [φ] T ν )}. Dans ce cas, on définit AXφ déf = EX φ. Onpeutécrire T,s ν φ si s [φ] T ν. La logique HML est peu expressive. Voici une extension de HML, nommée Computation Tree Logic (CTL), qui est en quelque sorte la contrepartie arborescente de LTL. C est sûrement la logique arborescente la plus connue. Elle a l avantage d avoir une expressivité intéressante et d avoir une sémantique facile à comprendre. CTL est définie en ajoutant à HML un opérateur until qui est quantifié soit existentiellement E(φ 1 Uφ 2 ) ou universellement A(φ 1 Uφ 2 ). L expression E(φ 1 Uφ 2 ) signifie qu il existe une exécution sur laquelle φ 1 est satisfaite jusqu à cequeφ 2, qui est satisfaite par la suite, soit satisfaite. L expression A(φ 1 Uφ 2 ) signifie que pour toute exécution, φ 1 est satisfaite jusqu à cequeφ 2, qui est satisfaite par la suite, soit satisfaite. La sémantique de ces opérateurs est définie de la façon suivante.

17 Chapitre 2. Vérification de modèles 12 [E(φ 1 Uφ 2 )] T ν [A(φ 1 Uφ 2 )] T ν déf = {s S ( π : exec(t ) π(1) = s : ( i : π(i) [φ 2 ] T ν et ( j j<i: π(j) [φ 1 ] T ν )))} déf = {s S ( π : exec(t ) π(1) = s : ( i : π(i) [φ 2 ] T ν et ( j j<i: π(j) [φ 1 ] T ν )))} Il est possible de définir EFφ déf = E(vraiUφ), AFφ déf = A(vraiUφ), EGφ déf = AF φ ainsi que = EF φ. AGφ déf Une des logiques arborescentes les plus expressives est le mu-calcul modal. De la même façon que le mu-calcul linéaire est construit à partir de WL, le mu-calcul modal est construit en ajoutant un ensemble de variables Var et un opérateur de plus petit point fixe à HML. Ceci permet d écriredesformulesdelaformeµx.φ(x) représentant la plus petite solution X à X = φ(x). La sémantique est définie par rapport à une valuation V qui associe un sous-ensemble de S àchaquex Var et qu il ne faut pas confondre avec la valuation ν qui fait la même chose pour les propositions atomiques de At. Comme pour le mu-calcul linéaire, dans toute expression µx.φ(x), chaque occurrence libre de X dans φ doit apparaître dans la portée d un nombre pair de négations dans le but de satisfaire la propriété de monotonie. La sémantique pour les variables de Var et pour l opérateur de plus petit point fixe est donnée de la façon suivante, où V[X E] est la valuation V modifiée de façon à ce que l ensemble E S soit associé à X. [X ] ν T,V [µx.φ] ν T,V déf = V(X) déf = ( E [φ] ν T,V[X E] E : E) C est une logique plus expressive que CTL et le mu-calcul linéaire. En mu-calcul modal, il est possible de définir E(φ 1 Uφ 2 ) déf = µx.(φ 2 (φ 1 ( a:a : a X))) de même que A(φ 1 Uφ 2 ) déf = µx.(φ 2 (φ 1 ( a:a : [a]x))). À cause de sa grande expressivité, cette logique est intéressante pour des études théoriques. Par contre, une courte formule de cette logique peut être très difficile à comprendre. Pour cette raison, nous ne l utiliserons pas par la suite.

18 Chapitre 2. Vérification de modèles CTL La logique CTL est construite à partir de LTL en ajoutant la construction Eφ àla syntaxe de la logique. L opérateur E est, comme dans CTL, le quantificateur existentiel sur les exécutions. La formule Eφ est satisfaite dans un état s il existe une exécution à partir de ce dernier sur laquelle φ est satisfaite. Il s agit donc d une logique qui permet à la fois d exprimer des propriétés linéaires et arborescentes. Voici la syntaxe formelle de la logique, où a est une action du système et p At. Il y a deux types de formules : les formules d exécutions φ, qui ont un ensemble d exécutions comme sémantique, et les formules d états ψ, qui ont un ensemble d états comme sémantique. Autant les formules dérivées de φ que de ψ sont des formules de CTL.D après la syntaxe, toute formule pouvant avoir un ensemble d états comme sémantique peut aussi être interprétée de façon à avoir un ensemble d exécutions comme sémantique. φ ::= ψ φ φ φ (a)φ φuφ ψ ::= vrai p ψ ψ ψ Eφ Encore une fois, dans le cas où on travaille avec des systèmes non étiquetés, la construction (a)φ est remplacée par Xφ. Pour les formules d exécutions qui sont des formules de LTL, la sémantique est la même que dans cette logique. Pour les formules d étatsquisontdesformulesdehml,lasémantique est aussi la même que dans cette dernière. Voici la sémantique de la logique CTL. T,π ν ψ si π(1) [ψ ] T ν T,π ν φ si T,π ν φ n est pas vrai T,π ν φ 1 φ 2 si T,π ν φ 1 ou T,π ν φ 2 T,π ν (a)φ si a 1 = a et T,π 2 ν φ T,π ν φ 1 Uφ 2 si ( i : T,π i ν φ 2 et ( j j<i: T,π j ν φ 1 )) [vrai] T ν [p] T ν [ φ] T ν [φ 1 φ 2 ] T ν [Eφ] T ν déf = S déf = ν(p) déf = S [φ] T ν déf = [φ 1 ] T ν [φ 2 ] T ν déf = {s S ( π : exec(t ) π(1) = s : T,π ν φ)}

19 Chapitre 2. Vérification de modèles 14 Cette logique contient la logique LTL par définition. Il en est de même pour la logique CTL puisque CTL permet d écrire la formule E(φ 1 Uφ 2 )aveclamême sémantique qu a cette dernière en CTL. On peut définir le quantificateur universel sur les exécutions Aφ déf = E φ, ce qui permet d écrire A(φ 1 Uφ 2 ). On peut aussi définir a φ déf = E(a)φ. C est donc une logique très intéressante en ce qui a trait à l expressivité. Elle est moins expressive que le mu-calcul modal, mais sa syntaxe permet d écrire des expressions faciles à comprendre. Cette logique est donc d un grand intérêt pour nous Logiques non régulières Toutes les logiques que nous avons vues jusqu à maintenant ne peuvent exprimer que des propriétés régulières. Ceci signifie que ces propriétés peuvent être représentées par des langages réguliers de séquences (dans le cas des logiques linéaires) ou d arbres (dans le cas des logiques arborescentes). Puisque les systèmes infinis tels que les PDS peuvent modéliser des comportements non réguliers,il y a un intérêt à être en mesure d exprimer les comportements que doivent avoir ces systèmes au moyen de logiques. Par exemple, une telle logique pourrait exprimer la propriété «entre le début et la fin de chaque session, il y a exactement le même nombre de requêtes envoyées que reçues». Le fait que deux actions différentes surviennent un nombre identique de fois ne peut être exprimé par un automate fini. Cela peut par contre l être au moyen d un automate à pile et, par conséquent, un PDS peut modéliser un tel comportement. Certaines logiques pouvant exprimer des propriétés telles que celle donnée en exemple utilisent l arithmétique de Presburger. Il y a entre autres les logiques Presburger Computation Tree Logic (PCTL) et Constrained Linear Temporal Logic (CLTL). 2.4 Vérification de systèmes finis Nous avons décrit les logiques temporelles de façon à ce qu elles puissent exprimer des propriétés à la fois sur les états et les actions. En général, les algorithmes connus ne s intéressent qu à une des deux sémantiques à la fois. Les algorithmes que nous présenterons permettent de vérifier des propriétés sur les états seulement. Afin de s adapter à la sémantique sur les états, nous modifions la définition d exécution. Cette nouvelle définition sera valable jusqu à la fin du chapitre. (2.4) Définition. Soit T =(S, A,,r), un LTS. Une exécution de T estune séquence a infinie d états s 1 s 2...pour laquelle, pour tout i 1, il existe un a i tel que s i i si+1.on écrit s *s w a,où w = a 1...a n, s il existe une exécution s 1 s 2... telle que s i i si+1 pour

20 Chapitre 2. Vérification de modèles 15 tout 1 i n, s = s 1 et s = s n+1. Pour les systèmes de transitions non étiquetées, la définition d exécution est similaire à celle des LTS. De plus, pour un système (S,,r), on écrit s s s il existe une exécution s 1 s 2... telle que s = s 1 et s = s n+1 pour un n 0. Finalement, on écrit s + s s il existe une exécution s 1 s 2... telle que s = s 1 et s = s n+1 pour un n LTL et mu-calcul linéaire La vérification des logiques linéaires (LTL et mu-calcul linéaire) sur un système fini utilise une approche basée sur les automates de Büchi. Ce sont des automates finis qui acceptent des séquences infinies. La sémantique d une formule de ces logiques étant un ensemble régulier d exécutions, on peut associer un tel automate à une formule. (2.5) Définition. Un automate de Büchi B est un quintuplet (Q, Γ,,q 0,F), où Q est un ensemble fini d états, Γ est un alphabet fini, Q Γ Q est un ensemble de transitions, q 0 Q est l état initial et F Q est un ensemble d états. Le langage L(B) accepté par B est l ensemble de toutes les séquences infinies ω telles que le LTS (Q, Γ,,q 0 ) a une exécution σ étiquetée par ω et partant de q 0 telle que Inf (σ) F. Un langage est appelé ω-régulier si et seulement s il existe un automate de Büchi qui l accepte. De même que nous avons défini les systèmes de transitions non étiquetées par rapport aux LTS, il est possible de définir les automates de Büchi non étiquetés. Un tel automate est donc représenté par un quadruplet (Q,,q 0,F). Cet automate a un langage vide si et seulement si le système de transitions (Q,,q 0 ) n a pas d exécution σ partant de q 0 satisfaisant Inf (σ) F. Dans le cas où le langage n est pas vide, on ne s intéresse pas à définir les séquences qu il contient puisque les transitions de l automate ne sont pas étiquetées. Pour vérifier une formule φ, il faut construire l automate de Büchi B φ qui représente les exécutions (séquences d états seulement) qui ne satisfont pas φ (ou qui satisfont φ). Dans les faits, chaque transition de cet automate est étiquetée par un sous-ensemble de At plutôt que par des états du système àvérifier. Ce n est qu à l étape suivante qu une valuation est utilisée afin d interpréter ces sous-ensembles de At. Il existe plusieurs outils, tel que Spin [22], qui peuvent construire cet automate à partir d une formule LTL basée sur les états. Une fois cet automate construit, on en fait le produit synchronisé avec le LTS du système à vérifier (définition 2.6). Le résultat de ce produit est un automate dont les séquences acceptées correspondent à l intersection des séquences de

21 Chapitre 2. Vérification de modèles 16 l automate B φ (interprétées au moyen d une valuation) et des exécutions du système àvérifier. Si le langage accepté par le produit est vide, c est que le systèmenecontient aucune exécution qui viole φ et il satisfait donc la propriété φ. (2.6) Définition. Soient T =(S, T,i)unsystème fini et B =(Q, PAt(φ), B,q 0,F) un automate de Büchi qui accepte L( φ) pour une formule LTL φ dont la validité est interprétée par une valuation ν. Le produit synchronisé de T et B (par rapport à ν) donne l automate de Büchi non étiqueté BT =(S Q, BT, (i, q 0 ),G)où (s, q) BT (s,q )sis T s et (q, A,q ) B,où A = {A A At(φ) ets ν(a)} ; (s, q) G si q F. On peut vouloir trouver tous les états du système qui satisfont une formule φ. L état s satisfait φ si l automate (S Q, BT, (s, q 0 ),G) a un langage vide. Il suffit donc de faire le produit synchronisé une seule fois et de modifier seulement l état initial. On peut faire cette démarche pour chacun des états du système à vérifier s il est fini. Spin ne permet de construire l automate B φ que dans le cas où la logique est basée sur les états uniquement. Nous nous intéressons aux logiques basées sur les états et les actions. Ils y a plusieurs façons de traiter un tel problème. Premièrement, il est possible de modifier le système àvérifier en codant l information donnée par les actions au moyen de propositions atomiques représentant des états. Dans le pire des cas, il suffit de faire autant de copies du LTS du système àvérifier qu il y a d actions différentes et de définir une proposition atomique qui est satisfaite dans les états d une des copies pour chaque action. La copie dans laquelle l exécution se trouve peut donc indiquer, selon le choix que l on fait avant la modification, l action qui a été exécutée juste avant l état courant ou celle qui sera exécutée immédiatement après. Une telle modification a pour désavantage de faire grossir le LTS en faisant plusieurs copies des états et transitions du LTS de départ. Par contre, le LTS après les modifications n est plus étiqueté par des actions. Un exemple de cette méthode est présenté dans[8]. Deuxièmement, dans [8], on définit la logique SE-LTL (State/Event based LTL) et on explique comment la vérifier sur les systèmes finis. Cette logique permet de décrire exactement les mêmes propriétés que notre définition de LTL basée sur les actions et les états. Dans SE-LTL, la formule (a)φ est écrite a Xφ. Ceci permet de voir a comme une proposition atomique et d utiliser les outils connus pour construire l automate de Büchi pour la formule. C est seulement au moment de faire le produit synchronisé qu il faut tenir compte du fait que a est une action et non une proposition atomique. L avantage

22 Chapitre 2. Vérification de modèles 17 de cette technique sur la précédente est qu il n y a pas de modification du système faisant grossir ce dernier. Une autre idée présentée dans [8] (sans être développée) est de représenter la formule à l aide d un automate de Büchiqui seraitétiqueté à la fois sur les états et les transitions. Cet automate représenterait donc les exécutions (en tenant compte des états et des actions) qui violent la propriété à vérifier. Il n y aurait donc pas de modification à faire sur la formule ni sur le modèle. Par contre, cette approche ne semble pas avoir été étudiée de façon approfondie dans la littérature. Il n y a donc sûrement pas d outil ni d algorithme pour construire un tel automate de Büchi à partir d une formule LTL basée sur les actions et les états. L approche que nous présenterons s approche par contre beaucoup plus de cette dernière CTL En utilisant l algorithme qui permet de trouver tous les états qui satisfont une formule LTL, il est facile de vérifier si un système fini satisfait une formule CTL ou de trouver tous les états qui satisfont la formule. CTL est construite en ajoutant E à LTL. Il suffit de savoir calculer les états qui satisfont une formule de la forme Eφ. Donc, il faut itérer les étapes suivantes jusqu à ce que la formule àvérifier ne contienne plus de E : Choisir une sous-formule Eφ telle que φ ne contient pas de E (φ est une formule LTL). Utiliser l algorithme de vérification LTL pour trouver l ensemble S φ de tous les états qui violent φ. Il y a donc, à partir de ces états, des exécutions qui satisfont φ. Remplacer Eφ dans la formule par une proposition atomique qui représente l ensemble S φ CTL et mu-calcul modal La vérification d une formule CTL peut se faire en utilisant l algorithme de vérification de CTL, mais il est plus efficace, pour les systèmes finis, de faire la traduction en mu-calcul modal et d utiliser l algorithme pour cette dernière logique. Pour vérifier si un système fini satisfait une formule du mu-calcul modal, on calcule

23 Chapitre 2. Vérification de modèles 18 les états qui satisfont les sous-formules. Pour les points fixes, on fait le calcul par itération jusqu à l atteinte du point fixe. Le point fixe est atteint dans un nombre fini d itérations puisque le système est fini. 2.5 Vérification de systèmes à pile Mu-calcul modal Une technique similaire à celle utilisée pour les systèmes finis ne peut être utilisée pour les systèmes infinis. La raison est que cette technique demande de traverser l espace d états, ce qui est impossible dans le cas des systèmes à pile puisqu ils ont un espace d états infini. Le calcul de points fixes par itération peut donc ne pas terminer. Les techniques de vérification du mu-calcul modal pour les systèmes à pile sont donc différentes [5, 7, 44]. Le problème de vérification du mu-calcul modal pour les PDS est EXPTIME- Complet 2 [44]. En pratique, les systèmes àvérifier sont souvent gros et les propriétés petites. À cause de cela, on ne s intéresse habituellement qu à l effet de la taille du système sur la complexité de l algorithme, comme si la formule était fixée dans ce dernier et n avait donc pas d effet sur la complexité. Dans ce cas-ci, le problème est EXPTIME-Complet même lorsque la formule est fixée [44]. Ceci fait en sorte qu on ne peut s attendre à des résultats intéressants en pratique même si on suppose que la formule est petite et n a donc pas d effet sur l efficacité de l algorithme. De plus, c est aussi le cas pour des logiques arborescentes moins expressives : il existe une formule de CTL pour laquelle le problème de vérification est PSPACE-Complet [5] LTL, mu-calcul linéaire et CTL Contrairement au mu-calcul modal, la vérification pour les logiques linéaires (LTL et mu-calcul linéaire) est efficace en pratique puisqu elle se fait en temps polynomial 2 Nous nommons les classes de complexité des algorithmes par leur nom anglophone. Les problèmes EXPTIME-Complets sont les problèmes de décision les plus difficiles parmi ceux pouvant être résolus par un algorithme qui utilise un temps exponentiel en fonction de la taille de l entrée. Les problèmes PSPACE-Complets sont les problèmes de décision les plus difficiles parmi ceux pouvant être résolus par un algorithme qui utilise un espace mémoire polynomial en fonction de la taille de l entrée. Les algorithmes connus pouvant résoudre ces deux types de problèmes sont inefficaces.

24 Chapitre 2. Vérification de modèles 19 lorsque la formule est fixée [5]. Ceci est vrai à condition d imposer des restrictions sur les valuations qu il est possible d utiliser. Le problème général (sans fixer la formule) est EXPTIME-Complet [5]. De plus, les techniques de vérification pour LTL, le mucalcul linéaire et CTL ressemblent beaucoup à celles vues pour les systèmes finis. L idée d utiliser un automate de Büchi qui représente la négation de la propriété à vérifier est utilisée. De la même façon, on calcule un produit synchronisé entre l automate de Büchi et le PDS. Le résultat de ce produit est un automate à pile sur des séquences infinies qu on appelle PDS de Büchi dans la littérature. Il faut ensuite vérifier, comme dans les systèmes finis, que le langage de ce dernier est vide. C est cette dernière étape qui cause une difficulté particulière si on compare aux systèmes finis. Schwoon donne dans [42] un algorithme pour la vérification sur les PDS de la logique LTL basée sur les états. Nous décrivons cet algorithme dans la présente section. Danslecasdessystèmes finis, nous n avons pas donné de restriction sur les valuations qui associent des sous-ensembles d états du système aux propositions atomiques puisque l algorithme fonctionne peu importe le sous-ensemble représenté par ces dernières. Dans le cas des PDS, ce n est plus le cas. On ne peut pas associer un ensemble quelconque d états du PDS à une proposition atomique sinon le problème de vérification est sûrement indécidable. Dans [42], on s intéresse à deux types de valuations : les valuations simples et les valuations régulières. (2.7) Définition. Étant donné unpdsp =(P, Γ,,c 0 ), un ensemble d états de P est simple s il a la forme {(p, γw) w Γ } pour un p P et un γ Γ. Une valuation ν : At P(P Γ ) est simple si ν(a) est l union d ensembles simples d états pour chaque A At. Les valuations simples permettent de spécifier des sous-ensembles d états en ne s intéressant qu au point de contrôle et au symbole directement sur le dessus de la pile. Bien que cela semble très restrictif, c est amplement suffisant pour décrire des propriétés à propos du flot de contrôle d un programme représenté par un PDS. Pour une plus grande expressivité, on définit les valuations régulières. Ceci nécessite l introduction d un automate fini spécial appelé P-automate (le P fait référence à un PDS ainsi nommé). (2.8) Définition. Soit P =(P, Γ,,c 0 ), un PDS. Un P-automate utilise Γ comme alphabet et P comme ensemble d états initiaux (il peut en avoir plusieurs). Formellement, un P-automate est un quintuplet A =(Q, Γ,,P,F)où Q P est un ensemble fini d états, Q Γ Q est un ensemble de transitions et F Q est un ensemble d états finaux. L automate A accepte un état (p, w) de P si le système de transitions (Q, Γ,,p) satisfait p w * q pour un q F. L ensemble des états acceptés par A est noté L(A). Un ensemble d états de P est régulier s il est accepté par un P-automate.

25 Chapitre 2. Vérification de modèles 20 Une valuation ν : At P(P Γ )estrégulière si pour chaque A At, ν(a) estun ensemble régulier d états qui ne contient pas d états avec la pile vide. La dernière condition n en est pas vraiment une puisqu il est toujours possible de modifier un PDS en lui ajoutant un symbole de bas de pile. Nous présentons de façon détaillée seulement l algorithme de vérification pour les formules de LTL interprétées par des valuations simples. Voici comment effectuer le produit synchronisé pour des automates de Büchi représentant de telles formules. (2.9) Définition. Soient P =(P, Γ,, (p 0,w 0 )) un PDS et B =(Q, PAt(φ),δ,q 0,F) un automate de Büchi qui accepte L( φ) pour une formule LTL φ dont la validité est interprétée par une valuation simple ν. Le produit synchronisé de P et B (par rapport à ν) donne un PDS de Büchi BP =(P Q, Γ,, ((p 0,q 0 ),w 0 ),G)où ((p, q),γ) BP ((p,q ),w)si(p, γ) P (p,w)et(q, A,q ) δ, où A = {A A At(φ) et(p, γ) ν(a)} ; (p, q) G si q F. Le système de transitions T BP associé à BP est égal à celui associé aupds(p Q, Γ,, ((p 0,q 0 ),w 0 )). Une fois le produit synchronisé construit, il faut vérifier si ce dernier a un langage vide. Cette opération est plus difficile pour les PDS de Büchi que pour les automates (finis) de Büchi. Elle se fait en plusieurs étapes. Avant d expliquer la méthode, nous devons expliquer comment on trouve les états à partir desquels on peut atteindre un état dans un ensemble régulier d états donné. Étant donné unpdsp =(P, Γ,,c 0 ) et un ensemble régulier d états C de P, nous voulons calculer l ensemble des états pre (C) à partir desquels il est possible d atteindre un état de C. Pour ce faire, il faut représenter l ensemble C au moyen d un P-automate A =(Q, Γ, 0,P,F). Sans perte de généralité, on peut supposer que A n a pas de transitions qui mènent dans un état initial puisqu il est possible de modifier un automate fini de façon à ce qu il satisfasse cette condition sans modifier son langage. Nous calculons pre (C) comme étant l ensemble des états acceptés par un P-automate A pre =(Q, Γ,,P,F)obtenuà partir de A en ajoutant des transitions selon la règle suivante jusqu à l atteinte d un point fixe :

26 Chapitre 2. Vérification de modèles 21 Si (p, γ) (p,w)etp (p, γ, q). w *q dans l automate courant, ajouter une transition (2.10) Définition. Soit BP =(P, Γ,,c 0,G), un PDS de Büchi. Une exécution acceptante de BP est une exécution qui visite infiniment souvent des états dont le point de contrôle est dans G. Larelation r entre les états de BP est définie comme suit : c r c si et seulement si c (g, w) + c pour un état (g, w) avecg G. Unetête (p, γ) estrépétitive s il existe v Γ tel que (p, γ) r (p, γv). L ensemble des têtes répétitives de BP est noté Rép BP. (2.11) Théorème. Soit c un état d un PDS de Büchi BP =(P, Γ,,c 0,G). BP a une exécution acceptante partant de c si et seulement s il existe une tête répétitive (p, γ) telle que c (p, γw) pour un w Γ. La preuve de ce théorème se trouve dans [42]. Nous allons maintenant voir une méthode permettant de calculer Rép BP qui nécessite la construction d un graphe. (2.12) Définition. Le graphe d accessibilité destêtes de BP =(P, Γ,,c 0,G)estun graphe orienté etétiqueté G =(P Γ, {0, 1}, ) dont les sommets sont les têtes de BP etlesarcssontétiquetés avec 0 ou 1. Nous avons (p, γ) b (p,γ ) si les conditions suivantes sont toutes satisfaites : il existe une règle (p, γ) (p,v 1 γ v 2 )pourv 1,v 2 Γ,p P ; (p,v 1 ) (p,ε); b = 1 si et seulement si p G ou (p,v 1 ) r (p,ε). Le calcul de r se fait en utilisant l algorithme de pre. (2.13) Théorème. Soit BP un PDS de Büchi et soit G le graphe d accessibilité des têtes associé. Une tête (p, γ) de BP est répétitive si et seulement si le sommet (p, γ) est dans une composante fortement connexe de G contenant un arc étiqueté 1. La preuve de ce théorème se trouve dans[42]. La théorie qui vient d être présentée est implantée dans un outil qui fait la vérification de LTL pour les valuations simples sur les PDS et qui est appelé Moped[42]. Ce problème est résoluentempspolynomial lorsque la formule est fixée tandis que le problème général est EXPTIME-Complet [5]. On peut vouloir trouver tous les états d un PDS P =(P, Γ,,c 0 ) qui satisfont une formule φ de LTL dont L( φ) est accepté parb =(Q, PAt(φ), B,q 0,F). Dans ce cas,

27 Chapitre 2. Vérification de modèles 22 on construit BP, le produit synchronisé deb et de P et on calcule Rép BP au moyen du graphe d accessibilité destêtes associé à BP. On construit ensuite l automate A pre qui accepte pre (Rép BP Γ ), où Rép BP Γ déf = {(p, γw) (p, γ) Rép BP et w Γ }.L état (p, w) viole φ si et seulement si A pre accepte ((p, q 0 ),w). On traite aussi dans [42] le problème de vérification de LTL dont les formules sont interprétées par des valuations régulières. La méthode explique comment on peut modifier le PDS àvérifier de façon à ramener ce problème àunproblèmedevaluations simples. Enfin, on peut vérifier une formule de CTL sur les PDS en utilisant le même algorithme que pour les systèmes finis qui consiste à calculer les états qui violent φ pour chaque sous-formule Eφ de la formule àvérifier. Pour ce faire, il faut utiliser l algorithme de LTL pour les valuations régulières, puisque l ensemble des états qui violent φ est régulier en général et ne peut être représenté par une valuation simple. Le problème de vérification de LTL pour les valuations régulières est EXPTIME- Complet autant pour le problème général que pour le problème avec la formule fixée [42], ce qui le rend inintéressant en pratique. Il en est donc de mêmepourleproblème de vérification de CTL.

28 Chapitre 3 Algèbres de Kleene et extensions Plusieurs classes de structures très utilisées en informatique sont des algèbres de Kleene (AK). La première structure qu on devrait nommer est sûrement celle des langages réguliers. En fait, les AK représentent la théorie axiomatique des langages réguliers. Cela signifie qu un langage régulier peut être représenté par une expression d une AK et que les axiomes des AK peuvent être utilisés pour montrer que deux langages réguliers sont égaux. Ceci étant dit, en plus des langages formels, les AK apparaissent dans d autres contextes tels que l algèbre des relations et la logique et la sémantique des programmes tel que nous le verrons au cours de ce chapitre. Ce chapitre, dont le but est de définir et d expliquer ce qu est une AK, débute par un bref historique à la section 3.1. Ensuite,lasection3.2 donne la définition de base d une AK et d autres structures algébriques reliées aux AK. La section 3.3 présente des extensions possibles à la définition d AK. Des modèles de ces extensions sont ensuite présentés (section 3.4). Enfin, le chapitre se termine par un survol rapide de diverses applications des AK en informatique (section 3.5). 3.1 Historique Les AK portent leur nom en l honneur de Stephen Cole Kleene, un mathématicien américain. C est ce dernier qui, en 1956, posa le problème d une axiomatisation pour la théorie équationnelle des langages réguliers [24]. La question a été étudiée pendant plusieurs années. En 1964, Redko a d abord

29 Chapitre 3. Algèbres de Kleene et extensions 24 montré qu il n existe pas d axiomatisation intègre et complète constituée d un ensemble fini d équations pour ce problème [39]. Ensuite, Salomaa a été le premier à axiomatiser la théorie des langages réguliers [41]. Son axiomatisation est intègre et complète pour les langages réguliers, mais elle ne l est pas sous toutes les interprétations. Au début des années 1970, une axiomatisation intègre et complète constituée d un ensemble de schémas d équations a été découverte par Conway. Un schéma peut représenter une infinité d équations. C est d ailleurs Conway qui a élaboré une très grande partie de la théorie des AK que l on retrouve dans sa monographie sur le sujet [11]. Depuis les années 1990, il y a eu un regain d intérêt pour les AK. Ceci est dû au fait qu elles peuvent être utilisées dans divers domaines de l informatique. Plusieurs chercheurs s intéressent donc présentement aux AK, dont un des plus importants est Dexter Kozen. Ce dernier a d ailleurs présenté sa propre axiomatisation des AK qui est la plus utilisée aujourd hui [27] et il a travaillé sur plusieurs applications des AK en informatique. 3.2 Définitions de base Dans cette section, nous présentons la définition de cinq classes d algèbres. Certaines de ces algèbres sont très importantes pour nous et nous serviront de base pour définir des extensions (section 3.3). D autres ne nous seront pas utiles par la suite, mais nous les présentons pour avoir une couverture assez générale au sujet des AK Algèbre de Kleene de Kozen La définition d AK que nous présentons ici, celle de Kozen, est la plus répandue dans les travaux de recherche récents [27]. De plus, c est la plus générale des définitions, ce qui veut dire que toutes celles que nous présentons par la suite satisfont la présente définition. Par la suite, nous appellerons simplement AK une algèbre qui satisfait cette définition. Une AK est une structure algébrique de la forme K, +,,, 0, 1 dans laquelle K est un ensemble, + et sont des opérateurs binaires sur K, est un opérateur unaire sur K tandis que 0 et 1 sont des constantes appartenant à K. Cesopérateurs et ces constantes satisfont certaines propriétés. Avant de poursuivre cette définition de façon formelle, débutons par deux exemples de structures bien connues qui sont des AK. Le

30 Chapitre 3. Algèbres de Kleene et extensions 25 fait de les connaître permettra d accepter plus facilement les axiomes lorsqu ils seront présentés. Les deux structures en question sont les langages formels et les algèbres de relations binaires. (3.1) Exemple. L ensemble des langages sur un certain alphabet Σ, c est-à-dire P(Σ ), forme une AK. Dans ce cas-ci, P(Σ ) correspond à l ensemble K des éléments de l algèbre tandis que les opérateurs et constantes sont définis comme suit : 0 1 A + B A B A déf = (3.1) déf = {ɛ} (3.2) déf = A B (3.3) déf = {xy x A y B} (3.4) déf = ( n:n : A n ) (3.5) où ɛ représente la chaîne vide, A 0 déf n+1 déf = {ɛ} et A = A A n. Il est aussi important de savoir que l ensemble des langages réguliers sur un alphabet Σ forme une AK en définissant les opérations comme en 3.1 à 3.5. (3.2) Exemple. L ensemble des relations binaires sur un ensemble X forme aussi une AK. L ensemble K des éléments de l algèbre est P(X X). Voici la définition des opérateurs et des constantes : 0 1 R + S R S R déf = (3.6) déf = {(x, x) x X} (3.7) déf = R S (3.8) déf = R S = {(x, y) ( z : (x, z) R (z,y) S)} (3.9) déf = ( n:n : R n ) (3.10) où R 0 déf n+1 déf = {(x, x) x X} et R = R R n. Suite à la présentation de ces exemples, nous sommes presque prêt à présenter la définition des AK. Avant de la présenter, nous devons définir quelques structures algébriques plus simples. (3.3) Définition. Un monoïde est une structure algébrique de la forme M,, 1, où M est un ensemble, est un opérateur binaire associatif sur M et 1 est une constante appartenant à M et est l élément neutre (à gauche et àdroite)de. (3.4) Définition. Un demi-anneau est une structure algébrique de la forme S, +,, 0, 1 telle que 1. S, +, 0 est un monoïde commutatif (l opérateur + est commutatif) ;

31 Chapitre 3. Algèbres de Kleene et extensions S,, 1 est un monoïde ; 3. se distribue sur + des deux côtés et 4. 0 est l élément absorbant de. Une structure très importante des AK est le demi-anneau idempotent. Il s agit en fait d un demi-anneau dont l opérateur + est idempotent (comme le montre la loi 3.13). En résumé, un demi-anneau idempotent S, +,, 0, 1 satisfait les axiomes suivants pour tout a, b, c S. a +(b + c) = (a + b)+c (3.11) a + b = b + a (3.12) a + a = a (3.13) a +0 = 0+a = a (3.14) a (b c) = (a b) c (3.15) a 1 = 1 a = a (3.16) a 0 = 0 a = 0 (3.17) a (b + c) = a b + a c (3.18) (b + c) a = b a + c a (3.19) Par la suite, nous omettrons d écrire l opérateur et utiliserons seulement la juxtaposition pour le désigner. Nous allons maintenant voir qu il est possible de définir une relation d ordre sur n importe quel monoïde commutatif idempotent et donc sur n importe quel demi-anneau idempotent. En effet, si M, +, 0 est un monoïde commutatif idempotent, la relation définie par a b a + b = b (3.20) pour tout a, b M est une relation d ordre et 0 est le minimum par rapport à cette dernière. Ceci est facile à démontrer à partir des axiomes des monoïdes commutatifs idempotents. De plus, a + b donne le supremum de a et b par rapport à puisque a a + b et b a + b (cequisignifiequea + b est un majorant de a et de b) et a c b c a + b c (a + b est plus petit que n importe quel c qui est un majorant de a et de b)

32 Chapitre 3. Algèbres de Kleene et extensions 27 sont des théorèmes. Donc a + b est bien le plus petit majorant de a et de b (la structure M, forme un demi-treillis 1 ). Enfin, dans un demi-anneau idempotent, on peut démontrer que les opérateurs + et sont monotones par rapport à. Nous avons maintenant tous les prérequis nécessaires pour définir une AK. (3.5) Définition. Une algèbre de Kleene est une structure algébrique de la forme K, +,,, 0, 1 telle que K, +,, 0, 1 est un demi-anneau idempotent et l opérateur est un opérateur unaire sur K qui satisfait les axiomes 1+aa a (3.21) 1+a a a (3.22) b + ac c a b c (3.23) b + ca c ba c (3.24) pour tout a, b, c K et où larelation est définie selon Ilestpossiblededémontrer la monotonie de l opérateur. De plus, l inégalité de 3.21 et 3.22 peut être remplacée par une égalité puisque l inégalité dans l autre sens peut être démontrée à partir des axiomes comme le montre la dérivation suivante. Démonstration. Voici la démonstration que 3.21 avec l inégalité dans l autre sens (c est-à-dire a 1+aa ) est un théorème. La démonstration de 3.22 avec l inégalité dans l autre sens est similaire. a 1+aa = Identité de a 1 1+aa a(1 + aa ) 1+aa Monotonie de + et de 1+aa a Les définitions de certaines structures algébriques telles que les treillis et les algèbres booléennes se trouvent dans [13].

33 Chapitre 3. Algèbres de Kleene et extensions 28 Les formules 3.23 et 3.24 sont des formules de Horn, c est-à-dire des formules ayant la forme d une implication dont le conséquent est une équation, et dont l antécédent est une équation ou une conjonction d équations. Il ne faut pas être surpris de la présence d axiomes qui ne sont pas des équations puisque nous avons déjà mentionné qu il n existe pas d axiomatisation équationnelle finie des AK. Les axiomes de l opérateur sont difficiles à comprendre et ils méritent plus d explications. En fait ces axiomes disent que a b est l unique plus petite solution pour x à l inéquation b + ax x et que ba est l unique plus petite solution pour x à l inéquation b + xa x. Ceci est clarifié à l aide des explications qui suivent. Démonstration. La dérivation suivante montre, en utilisant 3.21, quea b est une solution pour x à l inéquation b + ax x. Laformule3.23 dit exactement que c est la plus petite. La preuve que ba est la plus petite solution à l inéquation b + xa x est similaire. b + aa b a b = Distributivité de sur + (1 + aa )b a b Monotonie de 1+aa a 3.21 Nous comprenons maintenant ce que veulent dire les axiomes de. Comme nous l avons vu à l aide de l exemple des langages et celui des relations binaires, l opérateur représente la notion d itération finie, mais le lien entre la définition de dans ces exemples et les axiomes pour ce même opérateur n est pas du tout évident. Il sera plus clair avec la prochaine définition d AK (définition 3.6). La théorie équationnelle des AK est intègre et complète pour les langages réguliers et elle est décidable (PSPACE-Complet) [27]. La dernière affirmation veut dire qu il existe un algorithme permettant de déterminer si une équation est ou n est pas un théorème des AK. Par contre, ceci n est pas le cas pour les formules de Horn en général. Toutefois, les formules de Horn dont les hypothèses ont la forme E =0peuventêtre ramenées à des équations. Ceci permet d étendre le résultat de décidabilité à de telles formules, que l on nomme formules de Hoare. Ce résultat est dû à Cohen [9]. Enfin, voici une liste de théorèmes des AK, où a 0 =1eta n+1 = aa n.

34 Chapitre 3. Algèbres de Kleene et extensions 29 a b a + c b + c (3.25) a b ac bc (3.26) a b ca cb (3.27) a b a b (3.28) 1+aa = a (3.29) 1+a a = a (3.30) a a = aa (3.31) a = a a (3.32) a = a (3.33) (a + b) = a (ba ) (3.34) (ab) a = a(ba) (3.35) a = (1+a) n 1 (a n ) pour tout n N + (3.36) ba = ac b a = ac (3.37) ab 1 a b a + b (3.38) Algèbre de Kleene -continue, demi-anneau fermé etsalgèbre La définition des trois structures algébriques traitées dans cette section se trouve dans [25]. (3.6) Définition. Une AK -continue est une AK dans laquelle le supremum par rapport à (représenté par le symbole ) existe pour tout ensemble infini de la forme {ab n c n 0} et qui satisfait l axiome ab c = ( n:n : ab n c). (3.39) Cette propriété assure la distributivé de sur un supremum de la même forme, en plus, évidemment, de définir l opérateur. Il est possible de démontrer que les quatres axiomes (3.21 à 3.24) qui définissent le comportement de pour les AK découlent du nouvel axiome. On aurait donc pu définir une AK -continue comme étant un demi-anneau idempotent auquel on ajoute un opérateur satisfaisant 3.39.

35 Chapitre 3. Algèbres de Kleene et extensions 30 Ce dernier axiome ressemble beaucoup àladéfinition de des langages formels et des relations binaires et on voit donc de façon évidente que ces derniers sont des AK -continues. Les AK et les AK -continues ont la même théorie équationnelle. Ce n est donc qu en considérant les formules de Horn que l on peut différencier les AK des AK -continues. (3.7) Définition. Un demi-anneau fermé est un demi-anneau idempotent dans lequel tout ensemble dénombrable B a un supremum (par rapport à l ordre défini par 3.20) noté ( b:b : b) et qui satisfait l axiome a( b:b : b)c =( b:b : abc). (3.40) Cet axiome assure la distributivité de sur des supremums d ensembles dénombrables. L opérateur est défini par a déf =( n:n : a n ). (3.41) Tout demi-anneau fermé est une AK -continue par l application de la distributivé de (3.40) sur le supremum dénombrable. La définition d une S-algèbre (ce nom provient de la hiérarchie de Conway [11]) est exactement la même que celle du demi-anneau fermé sauf que le supremum est défini sur tout ensemble, contrairement aux demi-anneaux fermés pour lesquels il est défini sur les ensembles dénombrables. De même, 3.40 tient pour les ensembles non dénombrables en plus de ceux qui sont dénombrables. Une S-algèbre est donc un demi-anneau fermé Algèbre de Kleene sur un treillis complet Cette autre définition des AK semble un peu à part des autres puisqu elle ne se base pas sur un demi-anneau idempotent, mais sur un treillis complet. Elle est introduite par Desharnais et al. [16]. (3.8) Définition. Une algèbre de Kleene est une structure algébrique de la forme qui satisfait les propriétés K,,,, 0, 1

36 Chapitre 3. Algèbres de Kleene et extensions 31 (a) K, est un treillis complet dont le minimum est 0, le maximum est et le supremum d un ensemble {a, b} K est noté a + b ; (b) K,, 1 est un monoïde ; (c) l opération est universellement disjonctive des deux côtés, ce qui veut dire que a( b:b : b)c =( b:b : abc) pourtoutensembleb. Cette nouvelle définition d AK est un demi-anneau idempotent. D après (a), l opération + représente le supremum. Le supremum est une opération associative, commutative, idempotente et qui a l élément minimum comme élément neutre, soit 0. D après (b), l opérateur est défini exactement comme dans un demi-anneau idempotent. Ce dernier est distributif sur l opérateur + des deux côtés d après (c) puisque l opérateur + représente un supremum. Enfin, pour démontrer que 0 est l absorbant de la multiplication, il suffit de prendre (c) en sachant que le supremum de l ensemble vide est 0. Il est possible de définir dans cette algèbre un opérateur d itération finie pour tout a K par a = µ(x ax +1). L itération finie est bien définie puisque x ax + 1 est une fonction monotone (à cause de la monotonie de + et de ) et toute fonction monotone sur un treillis complet possède un plus petit point fixe. Dans [16], on montre que a =( n:n : a n ). Ceci dépend du fait que les opérations + et sont continues. Puisque la multiplication est universellement disjonctive et que le supremum de tout ensemble d éléments existe dans un treillis complet, nous avons qu une AK selon la présente définition est une S-algèbre. Puisque l infimum peut-être défini comme le supremum des minorants et que le supremum de tout ensemble d éléments existe dans une S-algèbre, l infimum de tout ensemble d éléments existe également. Il en découle donc que la structure des éléments d une S-algèbre forme un treillis complet et que toute S-algèbre est une AK selon la présente définition. La structure de treillis complet permet de démontrer des théorèmes intéressants et d écrire des expressions au moyen d opérateurs de points fixes. Si la structure est une algèbre booléenne complète, on peut en montrer encore plus, comme c est fait dans [16].

37 Chapitre 3. Algèbres de Kleene et extensions 32 On montre entre autres plusieurs propriétés intéressantes faisant intervenir des éléments t tels que t 1. Ces éléments sont appelés types. Dans la section 3.3.1, nousdéfinirons une extension des AK, appelée algèbre de Kleene avec tests, dans laquelle on porte un intérêt particulier à certains éléments qui sont des types et qu on appelera tests dans cette définition. Nous avons vu cinq définitions différentes d AK. Nous avons montré qu il existe une hiérarchie entre ces structures. D abord, les S-algèbres et les AK sur un treillis complet représentent la même classe d algèbres. Ensuite, toute S-algèbre est un demi-anneau fermé et tout demi-anneau fermé est une AK -continue. Enfin, toute AK -continue est une AK selon la définition de Kozen (définition 3.5). Parmi ces cinq définitions, seulement les définitions d AK (définition 3.5) et d AK -continues (définition 3.6) nous intéressent. C est parce que les modèles qui nous intéressent sont ceux des langages réguliers et des ensembles réguliers de traces (section 3.4.1) et qu ils satisfont seulement les deux premières définitions. Nous savons que l union d un ensemble infini dénombrable de langages réguliers peut être un langage non régulier. En fait, tout langage est l union dénombrable de singletons (qui sont des langages réguliers). 3.3 Extensions Dans cette section, nous donnons des extensions de la définition d AK 3.5, c està-dire que nous définissons d autres algèbres en ajoutant des axiomes supplémentaires aux axiomes de la définition 3.5. Nous présenterons des modèles de ces algèbres à la section Algèbre de Kleene avec tests Les algèbres de Kleene avec tests (AKT) ont été inventées par Kozen en 1997 [28]. C est une extension des AK qui représente très bien les programmes. Nous verrons comment elles les représentent après avoir donné leur définition. (3.9) Définition. Une algèbre de Kleene avec tests est une structure algébrique de la forme K, B, +,,, 0, 1,,

38 Chapitre 3. Algèbres de Kleene et extensions 33 où est un opérateur unaire sur B, et telle que B K ; K, +,,, 0, 1 est une AK dont les éléments sont appelés programmes et B,+,,, 0, 1 est une algèbre booléenne dont les éléments sont appelés tests. Par la suite, nous utiliserons les symboles b,c,...pour représenter des tests et p, q,... pour représenter des programmes. On remarque que les opérateurs + et et les constantes 0 et 1 sont surchargés pour les programmes et les tests. Pour les programmes, ils représentent respectivement le choix non déterministe, la séquence, le programme fail et le programme skip qui ne fait rien. Pour les tests, ils représentent respectivement la disjonction, la conjonction, faux et vrai. Ceci ne cause pas de conflits puisqu une algèbre booléenne est un demi-anneau idempotent. Par définition d une algèbre booléenne, tout test b satisfait b 1. Par contre, ce n est pas vrai que n importe quel programme p tel que p 1peutêtre considéré comme un test. Pour que p soit un test, il faut entre autres que pp = p, puisque c est une propriété des algèbres booléennes, ce qui n est pas le cas dans toute AK. Les algèbres de Kleene avec tests sont très utilisées, entre autres parce qu elles permettent de représenter la structure de contrôle de programmes sans appels de procédures de la façon suivante. p ; q = pq if b then p else q = bp + bq if b then p = bp + b while b do p = (bp) b Il est possible de représenter un programme par une expression en AKT. En fait il s agit d une abstraction. On peut tenter de montrer que deux programmes sont équivalents en montrant que les expressions associées à chacun d eux sont égales au moyen des axiomes. Bien qu il soit possible de vérifier l équivalence de certains programmes en vérifiant qu une équation est un théorème des AKT, ce n est pas le cas pour tous les programmes. Par exemple, il est évident que le programme x := x +1;x := x + 2 et le programme x := x + 3 sont équivalents. Par contre, le problème de leur équivalence se traduirait

39 Chapitre 3. Algèbres de Kleene et extensions 34 par une équation de la forme pq = r puisque les trois affectations sont différentes. Pour montrer l équivalence de deux programmes avec les AKT, il est parfois nécessaire de faire certaines constatations et de les traduire en hypothèses. Dans ce cas, il ne suffit plus de démontrer une équation, mais une implication. Les hypothèses de commutativité sont une forme importante d hypothèses. Elles expriment que l ordre d exécution de deux programmes n a pas d importance (pq = qp) ou qu un programme n a pas d effet sur la valeur d un test (bp = pb). Deux tests commutent toujours puisque c est un axiome des algèbres booléennes. Évidemment, on peut penser à d autres formes d hypothèses. La théorie équationnelle des AKT est décidable (PSPACE-Complet) [34]. Il y a donc un algorithme qui permet de dire si une équation est un théorème des AKT ou non. Malheureusement, vérifier qu une équation est un théorème sous certaines hypothèses n est pas décidable en général. Par contre, si toutes les hypothèses ont la forme E =0, alors le problème de validité de l implication peut être ramené àunproblème de validité d une équation, ce qui est décidable [34]. C est une extension du théorème de Cohen aux AKT. Heureusement, beaucoup d hypothèses peuvent être ramenées à ce cas, dont celles qui ont la forme bp = pb (3.45). Voici une liste de théorèmes des AKT, où b, c B et p K. bc = cb (3.42) b + b = 1 (3.43) bb = 0 (3.44) bp = pb bpb + bpb = 0 (3.45) bp = bpc bpc = 0 (3.46) Algèbre de Kleene avec domaine La prochaine extension d AK a été introduite par Desharnais et al. [17]. (3.10) Définition. Une algèbre de Kleene avec domaine (AKD) est une structure de la forme K, B, +,,,, 0, 1, telle que K, B, +,,, 0, 1, est une AKT et : K B satisfait les axiomes p pp (3.47) (bp) b (3.48)

40 Chapitre 3. Algèbres de Kleene et extensions 35 où p K et b B. Le nom de domaine donné à l opérateur se justifiera de lui-même en étudiant les différents modèles algébriques (section 3.4), entre autres celui des relations binaires (section 3.4.3) dans lequel la définition de cet opérateur s apparente grandement à la notion usuelle de domaine d une relation. Le du premier axiome peut être remplacé par une égalité puisque p est un test et donc p 1. Par monotonie de, on a donc pp p. Expliquons un peu ces axiomes. Le programme bp est une restriction du programme p aux états de départ qui satisfont b. C est-à-dire que si l état de départ satisfait b alors p s exécute et il ne s exécute pas sinon. Le domaine d un programme p est un test qui représente les étatsdedépart de p. Le premier axiome dit que de restreindre le programme p à tous ses états de départ n est pas une restriction pour p. Le deuxième dit qu après la restriction d un programme p par un test b, les états de départ (de bp) sont inclus dans les états de la restriction b. Certaines applications nécessitent l ajout de l axiome (p q) (pq), (3.49) où p, q K. On appelle cette propriété localité. Notons qu il est possible de remplacer l inégalité par une égalité dans cet axiome. En considérant l axiome avec une égalité, ce dernier signifie que pour calculer (pq), il n est pas nécessairedeconnaître pleinement q, mais seulement le domaine de q, d où le nom de localité. Dans certaines AKD, il est possible de définir un opérateur de codomaine : K B. Une façon de définir le codomaine est d utiliser un opérateur d inverse. Une algèbre de Kleene avec inverse faible est une structure K, telle que K = K, B, +,,, 0, 1, est une AKT et : K K satisfait p = p (3.50) (p + q) = p + q (3.51) (pq) = q p (3.52) (p ) = (p ) (3.53) b b (3.54) où p, q K et b B. Lesthéorèmes b = b et p q p q découlent de ces axiomes. Enfin, on définit le codomaine d un élément p par p déf = (p ). L opérateur de codomaine satisfait des lois similaires à celles de l opérateur de domaine.

41 Chapitre 3. Algèbres de Kleene et extensions 36 Voici une liste de théorèmes des AKD, où b B et p, q K. p =0 p = 0 (3.55) (p + q) = p + q (3.56) p q p q (3.57) b = b (3.58) p = p (3.59) p = pp (3.60) (bp) = b p (3.61) (pq) (p q) (3.62) b = (b) (3.63) (pb) b (p b) b (3.64) Oméga-algèbre Une oméga-algèbre (OA), telle qu introduite par Cohen [10], est une extension des AK avec un opérateur d itération infinie. Avec ce nouvel opérateur, les OA peuvent représenter des langages réguliers de séquences finies et infinies. Elle peuvent aussi traiter avec la possibilité de boucles infinies dans un programme. (3.11) Définition. Une oméga-algèbre (OA) est une structure algébrique de la forme K, +,,, ω, 0, 1 telle que K, +,,, 0, 1 est une AK et ω est un opérateur unaire qui satisfait pour tout a, b, c K. a ω = aa ω (3.65) c ac + b c a ω + a b (3.66) Ces deux axiomes stipulent que a ω + a b est la plus grande solution x de l équation x = ax + b. Ils garantissent l existence d une telle solution. Il est aussi possible d ajouter l opérateur ω à des extensions des AK. La structure K, B, +,,, ω, 0, 1, où 3.65 et 3.66 sont satisfaits est une oméga-algèbre avec tests (OAT) si la structure K, B, +,,, 0, 1, est une AKT. La structure algébrique K, B, +,,,, ω, 0, 1, est une oméga-algèbre avec domaine (OAD) si la structure K, B, +,,,, 0, 1, est une AKD et 3.65 et 3.66 sont satisfaits.

42 Chapitre 3. Algèbres de Kleene et extensions 37 (3.12) Définition. Une expression ω est une expression d une OA ou d une extension. Une expression ω-régulière est une expression ω telle que l opérateur ω n apparaît pas dans l argument d un autre opérateur ω, ni dans l argument de gauche de l opérateur. Une expression ω-régulière standard est une expression ω-régulière qui est une somme d expressions de la forme pq ω telle que pour aucun test b sauf 0, b q. Pour l utilisation que nous ferons des OA par la suite, les expressions ω-régulières standards sont très pertinentes. Ces dernières représentent des langages réguliers de séquences infinies (langages ω-réguliers), c est-à-dire des langages d automates de Büchi. Nous nous en servirons au chapitre 4. (3.13) Définition. Soient P un ensemble de programmes atomiques et B un ensemble de tests atomiques. On note l ensemble des expressions ω pouvant contenir l opérateur de domaine sur P par ω -Exp P. On note les ensembles des expressions ω-régulières standards pouvant contenir l opérateur de domaine sur P et B et sur P seulement respectivement par ω -SExp P,B et ω -SExp P. On note les deux ensembles précédents restreints aux expressions sans domaine respectivement par ω -SExp P,B et ω -SExp P. Voici une liste de théorèmes des OAD, où b B et p, q K. p q p ω q ω (3.67) p 1 ω (3.68) b ω = b1 ω (3.69) p ω q p ω (3.70) p ω = p ω 1 ω (3.71) p1 ω =1 ω p ω =1 ω (3.72) p p ω = p ω (3.73) pp ω = p ω (3.74) p(qp) ω = (pq) ω (3.75) (p + q) ω = p ω + p q(p + q) ω (3.76) (p + q) ω = (p q) ω +(p q) p ω (3.77)

43 Chapitre 3. Algèbres de Kleene et extensions Autres extensions Pour chacune des extensions d AK définies dans cette section, on peut en définir une autre en faisant la même extension, mais à partir d une AK -continue. Dans ce cas, selon l extension faite, on appellera la structure obtenue AKT -continue, AKD -continue et ainsi de suite. D autres extensions d AK sont possibles. Certains y ajoutent des opérateurs de résidu [23, 26]. Il est possible de définir les AK avec inverse [12] ; nous avons touché un peu aux inverses en définissant les AKD. Il est aussi possible d étendre les AK en supposant que certains éléments de l algèbre sont des relations [15]. Enfin, on peut définir des AK dans lesquelles l opérateur est commutatif [11]. D un autre côté, on peut imposer des restrictions aux AK. Par exemple, pour certains, la distributivité de sur + est définie d un seul côté et 0 est l élément absorbant de d un seul côté également [38]. Il est aussi possible de définir des AK typées [29, 36]. Les types restreignent l application des opérations. 3.4 Modèles Dans cette section, nous présentons des modèles des OAD. Étant donnée la hiérarchie des structures algébriques présentées à la section 3.3, ces modèles sont aussi des modèles de ces structures. Les modèles que nous présentons sont les modèles de traces sur un cadre de Kripke, de langages, de relations binaires et de matrices dont les entrées sont les éléments d une OAD Traces Nous présentons dans cette section le modèle des traces sur un cadre de Kripke. (3.14) Définition. Un cadre de Kripke sur un ensemble de programmes atomiques P et un ensemble de tests atomiques B est une structure K, m K telle que K est un ensemble d états, m K : P P(K K) etm K : B PK. Un cadre de Kripke ressemble à un LTS(définition 2.1). Les deux représentent des structures (pouvant être infinies) composées d états et de transitions. Dans les

44 Chapitre 3. Algèbres de Kleene et extensions 39 deux cas, les transitions sont étiquetées ; les programmes atomiques pour les cadres de Kripke jouent le même rôle que les actions pour les LTS. Les états des cadres de Kripke sont étiquetés par des tests atomiques. Les états des LTS ne sont pas étiquetés, mais la valuation qui interprète les propositions atomiques au moment de la vérification d une propriété joue le même rôle que la fonction m K sur les tests atomiques. Une autre différence est l absence d état racine pour les cadres de Kripke comparés aux LTS. Notons aussi qu une trace sur un cadre de Kripke est l équivalent d une exécution (définition 2.2) pour un LTS. Le modèle des traces pour les AKT a été présenté dans[32]. Ce modèlenesupporte que les traces finies. Ensuite, dans [4], on définit l opération ω sur les ensembles de traces pour définir un modèle des OAT. Il faut noter que le modèle des traces sur les OAT traite les traces infinies puisque l opérateur ω a le comportement de l itération infinie. Nous allons donc présenter cette définition et y ajouter le domaine pour en faire un modèle des OAD. Soit K déf = K, m K un cadre de Kripke. Une trace finie de K est une séquence de la forme k 0 p 0 k 1...k n 1 p n 1 k n telle que n 0,k i K, p i P et (k i,k i+1 ) m K (p i )pour 0 i n 1 et telle que k n K. Unetrace infinie de K est une séquence de la forme k 0 p 0 k 1 p 1... telle que k i K, p i P et (k i,k i+1 ) m K (p i )pouri 0. On note Trace K l ensemble de toutes les traces finies et infinies sur K. Nous utiliserons les symboles σ,τ,... pour représenter des traces. Le premier état d une trace σ est noté first(σ). La longueur d une trace est le nombre de programmes atomiques qu elle contient. Notons que K Trace K, c est l ensemble des traces de longueur 0. Le produit fusion στ d une trace finie σ de la forme k 0 p 0 k 1...k n 1 p n 1 k n avec une trace arbitraire τ est défini par { k 0 p 0 k 1...k n 1 p n 1 τ si first(τ) =k n, στ = indéfini autrement. En utilisant le produit fusion, il est possible de définir des opérations sur les ensembles de traces. Nous imposons d abord des restrictions sur les ensembles sur lesquels les opérations sont définies. Soit S f, un ensemble de traces finies, S +, un ensemble de traces finies de longueur positive et T, un ensemble de traces arbitraires. Plus bas, les expressions Sf et S+ se lisent respectivement comme (S f ) et (S + ). C est aussi le cas lorsqu un autre opérateur est utilisé en exposant. Les opérations suivantes sont définies. S f T déf = {στ σ S f et τ T }

45 Chapitre 3. Algèbres de Kleene et extensions 40 S f S + f S ω + déf = ( i i 0:Sf), i où Sf 0 = K et S i+1 f = S f Sf i déf = S f Sf déf = {σ 0 σ 1 σ 2... ( i i 0:σ i S + )} Soit P déf = {kpk p P et (k, k ) m K (p)}. Puisque P (à ne pas confondre avec P) contient seulement des traces de longueur 1, P et P ω sont définis et P P ω = Trace K. Maintenant, pour n importe quel ensemble de traces S, ondéfinit les sous-ensembles de S suivants. S K S + S f S déf = S K déf = S P + déf = S K S + déf = S P ω Il est maintenant possible de définir ST,S,S ω et S pour des ensembles arbitraires de traces S et T. ST déf = { S f T S si T = si T S S ω S déf = Sf Sf S déf = S+ ω S+S S+S K (P P ω ) déf = {first(σ) σ S} Avec ces opérations, la structure P(Trace K ), PK,,,,, ω,,k, forme une OAD ( est le complément par rapport à K). D après la définition de, il s agit aussi d une algèbre -continue. Les tests sont les ensembles de traces de longueur 0. La relation correspond à. Le modèle ainsi défini est appelé l algèbre complète des traces sur K. Voici la démonstration que notre définition du domaine satisfait les deux axiomes de cet opérateur (3.47 et 3.48). Elle satisfait aussi la localité (3.49). Démonstration. 1. Soit un ensemble de traces S sur un cadre de Kripke K, m K. Montrons que S SS.

46 Chapitre 3. Algèbres de Kleene et extensions 41 σ S Définition de first(σ) S et σ S Définition de σ SS 2. Soient deux ensembles de traces S et T sur un cadre de Kripke K, m K tels que S K. Montrons que (ST) S. k (ST) Définition de ( σ : σ ST et first(σ) =k) Définition de & S K ( σ : ( k,τ : k S et τ T et k τ = τ = σ) etfirst(σ) =k) ( σ : ( k,τ : k S et τ T et k τ = τ = σ et first(σ) =k)) ( σ : ( k,τ : k S et τ T et τ = σ et first(τ) =k et first(σ) =k)) ( σ : ( k,τ : k S et τ T et k = k)) ( σ : ( k,τ : k S)) k S 3. Soient deux ensembles de traces S et T sur un cadre de Kripke K, m K. Montrons que (S T ) (ST). Pour les besoins de la démonstration, définissons last(σ) =k n si σ = k 0 p 0 k 1...k n 1 p n 1 k n. k (S T ) Définition de ( σ : σ S T et first(σ) =k) Définition de & T = T = ( σ : σ S et T et first(σ) =k) ou( σ : σ S f T et first(σ) =k) Définition de ( σ : σ ST et first(σ) =k) ou( σ : σ S f T et first(σ) =k) Définition de & définition de k (ST) ou ( σ : ( k,τ : τ S f et k T et last(τ) =k et τk = τ = σ) etfirst(σ) =k)

47 Chapitre 3. Algèbres de Kleene et extensions 42 k (ST) ou ( σ : ( k,τ : τ S f et k T et last(τ) =k et τk = τ = σ et first(σ) =k)) k (ST) ou( σ : ( k,τ : τ S f et k T et last(τ) =k et first(τ) =k)) k (ST) ou( k,τ : τ S f et k T et last(τ) =k et first(τ) =k) Définition de k (ST) ou ( k,τ : τ S f et ( σ : σ T et first(σ) =k )etlast(τ) =k et first(τ) =k) k (ST) ou ( k,τ : ( σ : τ S f et σ T et first(σ) =k et last(τ) =k et first(τ) =k)) τσ existe puisque last(τ) =first(σ) k (ST) ou( k,τ : ( σ : τσ S f T et first(τσ)=first(τ) =k)) S f T ST puisque S f S k (ST) ou( k,τ : ( σ : τσ ST et first(τσ)=first(τ) =k)) Définition de k (ST) ou( k,τ : ( σ : k (ST))) k (ST) ouk (ST) k (ST) On peut définir une interprétation canonique [ ] K pourlesexpressionsdesoadsur P et B vers l algèbre complète des traces sur K par [p] [b] déf = {kpk (k, k ) m K (p)} déf = m K (b) étendu homomorphiquement et où p P et b B. L image de cet homomorphisme est noté Tr K Langages Nous avons déjà défini un modèle de langages pour les AK (section 3.2), mais il est possible d étendre ce modèle. On peut s intéresser à des langages de séquences finies seulement ou à des langages contenant des séquences finies ou infinies. Dans [34], les auteurs définissent un modèle de langages pour les AKT qui ne traite que

48 Chapitre 3. Algèbres de Kleene et extensions 43 les séquences finies. Les séquences de ces langages sont appelées séquences gardées. Les séquences infinies sont ajoutées en présence de l opérateur ω puisque ce dernier représente l itération infinie. Nous allons définir un modèle de langages pour les OAD. Supposons que nous avons deux ensembles finis et disjoints P et B dont les éléments sont appelés respectivement programmes atomiques et tests atomiques. Soit Atomes B, l ensemble des atomes (éléments minimaux non nuls) de l algèbre booléenne libre engendrée par B. Les symboles α, β, α 0... représentent des atomes. Pour un atome α et un test b B, onpeutécrire α b si α b est une proposition logique valide. Une séquence gardée finie sur P et B est une séquence α 0 p 0 α 1...α n 1 p n 1 α n où α i Atomes B pour tout 0 i n et p i P pour tout 0 i n 1. Une séquence gardée infinie sur P et B est une séquence α 0 p 0 α 1 p 1... où α i Atomes B et p i P pour tout i 0. L ensemble des séquences gardées sur P et B est noté SG P,B. Les symboles σ,τ,... représentent des séquences gardées. On note first(σ) le premier atome de σ. On peut remarquer une similarité entre une trace sur un cadre de Kripke et une séquence gardée. La différence est que la séquence gardée est composée d atomes d une algèbre booléenne au lieu d états. La concaténation de séquences gardées est appelée produit fusion comme pour les traces. Le produit fusion στ est défini exactement de la même façon pour les séquences gardées que pour les traces. Également, les opérations sur les langages de séquences gardées sont définies de la même façon que pour les ensembles de traces. La structure P(SG P,B ), PAtomes B,,,,, ω,, Atomes B, forme donc une OAD -continue. On peut définir une interprétation canonique G qui associe un langage de séquences gardées à une expression des OAD sur P et B par G(p) G(b) déf = {αpβ α, β Atomes B } déf = {α Atomes B α b} étendu homomorphiquement et où p P et b B Relations binaires Dans cette section, nous étendons le modèle des relations binaires sur un ensemble X défini àlasection3.2 pour en faire un modèle des OAD. La structure P{(x, x) x X},,,,, {(x, x) x X} forme une algèbre booléenne. Ses éléments sont les tests du modèle. Il nous faut maintenant définir les

49 Chapitre 3. Algèbres de Kleene et extensions 44 opérateurs ω et. Pour une relation R sur X, larelationr ω contient tous les couples de la forme (x, y) tels qu il existe un chemin infini à partir du sommet x dans le graphe représenté par la relation R [10]. Un élément x X est donc soit en relation avec aucun élément de X par la relation R ω, soit en relation avec tous les éléments de X par la relation R ω. Par exemple, pour la relation R = {(1, 1), (1, 3)} sur {1, 2, 3}, R ω = {(1, 1), (1, 2), (1, 3)}. Ondéfinit R déf = {(x, x) ( y:x : (x, y) R)}, c est-à-dire que R contient tous les couples (x, x) telsquex est l origine d un arc dans le graphe représenté par la relation R. Cette définition justifie le nom de domaine donné à l opérateur. Voici la démonstration que cette définition satisfait les axiomes du domaine (3.47 et 3.48) ainsi que la propriété delocalité(3.49). Démonstration. 1. Soit R P(X X). Montrons que R RR. (x, y) R Définition de (x, x) R et (x, y) R Définition de (x, y) RR 2. Soient R, S P(X X) telsquer {(x, x) x X}. Montrons que (RS) R. (x, x) (RS) Définition de ( y:x : (x, y) RS) Définition de ( y:x : ( z:x : (x, z) R et (z,y) S)) x = z puisque R {(x, x) x X} ( y:x : ( z:x : (x, x) R et (x, y) S)) ( y:x : ( z:x : (x, x) R)) (x, x) R 3. Soient R, S P(X X). Montrons que (R S) (RS). (x, x) (R S) Définition de ( y:x : (x, y) R S)

50 Chapitre 3. Algèbres de Kleene et extensions 45 Définition de ( y:x : ( z:x : (x, z) R et (z,y) S)) y = z puisque S {(x, x) x X} ( y:x : ( z:x : (x, z) R et (z,z) S)) ( z:x : (x, z) R et (z,z) S) Définition de ( z:x : (x, z) R et ( y:x : (z,y) S)) ( z:x : ( y:x : (x, z) R et (z,y) S)) ( y:x : ( z:x : (x, z) R et (z,y) S)) Définition de ( y:x : (x, y) RS) Définition de (x, x) (RS) Nous pouvons donc en conclure qu étant donné un ensemble X, lastructure P(X X), P{(x, x) x X},,,,, ω,, {(x, x) x X}, forme une OAD -continue Matrices Étant donné une algèbre de Kleene K, l ensemble des matrices carrées de taille n dont les entrées sont des éléments de K, notémat(n, K), forme une algèbre de Kleene [27]. Nous allons étendre ce résultat aux matrices sur une OAD. Étant donné une matrice A, onnotea[i, j] l entrée à la ligne i et à la colonne j de A. Lesopérations 0, 1, + et sur les matrices sont définies de la façon naturelle. 0[i, j] 1[i, j] (A + B)[i, j] (AB)[i, j] déf = 0 (3.78) { déf 1 si i = j = (3.79) 0 si i j déf = A[i, j]+b[i, j] (3.80) déf = ( k : A[i, k]b[k, j]) (3.81)

51 Chapitre 3. Algèbres de Kleene et extensions 46 De 3.80, ondéduit facilement A B ( i, j : A[i, j] B[i, j]). L opération est définie récursivement. Si A =(a), alors A =(a ). Une matrice de taille plus grande peut être séparée en sous-matrices, ce qui mène àladéfinition ( ) ( ) B C déf F F CE = D E E DF E + E DF CE (3.82) où B et E sont carrées et F = B + CE D. Nous allons maintenant définir le complément (pour les tests), l opérateur ω et le domaine pour les matrices. Une matrice A sur une OAD K est un test si A 1. Dans ce cas le complément est défini par { déf A[i, j] si i = j A[i, j] = (3.83) 0 si i j. Il est facile de vérifier que A + A = 1 et AA = 0. L opérateur ω est défini récursivement. Le résultat de cet opérateur sur une matrice carrée doit être une matrice carrée de mêmes dimensions puisque l algèbre qui nous intéresse est celle des matrices carrées. Une définition de l opération ω sur les matrices est disponible dans [14], mais elle est erronée dû àunproblème de typage. Avant de définir ω, nous allons définir l opérateur ωc qui s applique sur une matrice n n et retourne un vecteur colonne de n lignes. Cet opérateur est aussi défini récursivement et il satisfait les axiomes de ω. De plus, sa définition permet d éviter l erreur de [14]. L opération ω sur les matrices sera ensuite définie en fonction de ωc. Si A =(a), alors A ωc =(a ω ). Une matrice de taille plus grande peut être séparée en sous-matrices, ce qui mène àladéfinition ( ) ωc ( B C déf F ω c ) + F CE ωc = D E G ωc + G (3.84) DB ωc où B et E sont carrées, F = B + CE D et G = E + DB C. La preuve qui suit montre que l opérateur ωc satisfait les axiomes de ω. Il s agit d une preuve dans le même style que celle de Conway pour la définition de l opérateur sur les matrices [11]. De plus, elle est grandement inspirée de celle se trouvant dans [14]. Démonstration. Lorsque l opérateur ωc est appliqué à une matrice contenant une seule entrée, il est évident d après la définition que cette dernière satisfait les axiomes de l opérateur ω.

52 Chapitre 3. Algèbres de Kleene et extensions 47 Nous allons maintenant dériver la définition de l opérateur ωc pour des matrices plus grandes et constater que la définition obtenue est celle donnée plus tôt. Cette dérivation utilise la propriété que la plus grande solution pour x àl équation x = ax+b est a ω +a b. ( ) B C Nous avons A = et nous voulons trouver A ωc = D E ( ) F. G ( ) ( )( ) F B C F D après 3.65, il faut donc que =.Deplus,A ωc ( ) G D E G F grand qui satisfait cette équation. G Nous avons donc est le plus F = BF + CG, G = DF + EG. Les plus grands F et G qui satisfont ces équations satisfont donc F = B ωc + B CG, G = E ωc + E DF. En remplaçant G dans la première des deux équations précédentes par le côté droit de la deuxième équation et en remplaçant F dans la deuxième par le côté droit de la première, on obtient F = BF + C(E ωc + E DF), G = EG + D(B ωc + B CG). En faisant une mise en évidence de F et de G dans les équations précédentes, on obtient F = (B + CE D)F + CE ωc, G = (E + DB C)G + DB ωc.

53 Chapitre 3. Algèbres de Kleene et extensions 48 LesplusgrandsF et G qui satisfont ces équations sont donc F = (B + CE D) ωc +(B + CE D) CE ωc, G = (E + DB C) ωc +(E + DB C) DB ωc. Ce qui nous donne donc la définition donnée plus tôt, c est-à-dire ( (B + CE D) ωc +(B + CE D) CE ωc A ωc = (E + DB C) ωc +(E + DB C) DB ωc ). Nous définissons donc A ω = A ωc si A n a qu une seule entrée. Autrement, A ω est définie en faisant des copies de A ωc de façon à obtenir une matrice carrée. La preuve que cette définition est correcte découle de la preuve faite pour ωc tel que montré ci-dessous. Démonstration. Pour les besoins de la démonstration, nous définissons A i, le vecteur colonne correspondant àlai e colonne de la matrice A. Par exemple, nous avons ( i : (A ω ) i = A ωc ). 1. Voici la preuve de A ω = AA ω. Il suffit de montrer que l égalité est vraie pour chaque colonne de A ω et AA ω,c est-à-dire (A ω ) i =(AA ω ) i. (A ω ) i = Définition de A ω A ωc = ωc satisfait 3.65 AA ωc = Définition de A ω A(A ω ) i = Définition de (AA ω ) i 2. VoicilapreuvedeC AC +B C A ω +A B. Notons que les matrices A, B et C doivent être carrées et de même dimensions pour que l expression soit bien typée.

54 Chapitre 3. Algèbres de Kleene et extensions 49 C AC + B Définition de ( i : C i (AC + B) i ) Définition de + et de ( i : C i AC i + B i ) ωc satisfait 3.66 ( i : C i A ωc + A B i ) Définition de A ω ( i : C i (A ω ) i + A B i ) Définition de + et de ( i : C i (A ω + A B) i ) Définition de C A ω + A B Lorsquecelanecausepasdeproblème de typage (opérations sur des matrices de dimensions incompatibles), il est possible d utiliser l opérateur ωc au lieu de ω pour un calcul plus efficace. Pour des matrices A et B données, puisque toutes les colonnes de A ω sont identiques, il en serait de même pour une matrice BA ω. C est le cas lorsqu on travaille avec des expressions ω-régulières standards. Puisque nous travaillerons uniquement avec ce type d expressions au chapitre 4, nous effectuerons l opération ω sur les matrices comme s il s agissait de l opération ωc. Nous définissons maintenant l opérateur de domaine sur les matrices. Pour une matrice A on définit { déf ( k : (A[i, k])) si i = j ( A)[i, j] = (3.85) 0 si i j. Cette définition satisfait les deux axiomes du domaine (3.47 et 3.48). De plus, si l algèbre des entrées satisfait la loi de localité (3.49), alors l algèbre de matrices satisfait aussi cette loi. Voici la preuve. Démonstration. 1. Voici la preuve de A AA. A[i, j]

55 Chapitre 3. Algèbres de Kleene et extensions (A[i, j])a[i, j] Monotonie de ( k : (A[i, k]))a[i, j] = Définition de ( A)[i, i]a[i, j] ( k : ( A)[i, k]a[k, j]) = Définition de ( AA)[i, j] 2. Voici la preuve de (AB) A où A 1. Sii j, ( (AB))[i, j] =0 A[i, j]. Voici donc la preuve pour le cas i = j. ( (AB))[i, i] = Définition de ( k : ((AB)[i, k])) = Définition de ( k : ( l : A[i, l]b[l, k])) = A[i, l] =0lorsquei l ( k : (A[i, i]b[i, k])) 3.48 & monotonie de + ( k : A[i, i]) = A[i, i] 3. En supposant que l algèbre des entrées satisfait l axiome de localité (3.49), voici la preuve que (A B) (AB). Si i j, ( (A B))[i, j] =0 ( (AB))[i, j]. Voici donc la preuve pour le cas i = j. ( (A B))[i, i] = Définition de ( k : ((A B)[i, k])) = Définition de ( k : ( l : A[i, l]( B)[l, k]))

56 Chapitre 3. Algèbres de Kleene et extensions 51 = ( B)[l, k] =0lorsquel k ( k : (A[i, k]( B)[k, k])) = Définition de ( k : (A[i, k]( l : (B[k, l])))) = 3.56 ( k : (A[i, k] ( l : B[k, l]))) 3.49 ( k : (A[i, k]( l : B[k, l]))) = Distributivité de sur + ( k : ( l : A[i, k]b[k, l])) = 3.56 & échange de quantificateurs ( l : ( k : A[i, k]b[k, l])) = Définition de ( l : ((AB)[i, l])) = Définition de ( (AB))[i, i] Il est aussi possible de s intéresser à des matrices qui ne sont pas carrées, mais les opérations ne sont pas définies sur des matrices de dimensions arbitraires dans ce cas. La matrice 0 peut avoir des dimensions quelconques. Les opérations + et sont définies dans les mêmes conditions que le sont les opérations d addition et de multiplication sur les matrices de nombres réels en algèbre linéaire. De plus, le domaine d une matrice quelconque de m lignes et n colonnes est défini et le résultat est une matrice carrée de m lignes et m colonnes. Finalement, les matrices sur lesquelles il est possible d appliquer les opérations et ω sont obligatoirement carrées, tout comme la matrice 1. Onnote Mat(K) l ensemble des matrices dont les entrées sont des éléments de K. 3.5 Applications Cette section fait un survol rapide au moyen de références de quelques applications des AK en informatique. Un autre survol peut être trouvé dans[1].

57 Chapitre 3. Algèbres de Kleene et extensions 52 Les AK et leurs extensions sont très utiles pour étudier la sémantique des programmes. Comme nous l avons vu, ces derniers peuvent être représentés au moyen d expressions en AK et peuvent être manipulés au moyen des théorèmes présentés. Les AKT sont suffisamment expressives pour représenter la logique propositionnelle de Hoare (PHL) [30]. PHL correspond à la logique de Hoare sans l axiome traitant l affectation. D un autre côté, les AKD représentent la logique propositionnelle dynamique [21, 37], une logique plus expressive que PHL. Dans certains articles, on s intéresse à la sémantique démoniaque des programmes [16, 43]. On compte plusieurs autres applications des AK telles que la correction des optimisations de compilateurs [33], l analyse de pointeurs [18], l analyse statique de programmes [4, 31], l analyse de flot de données [19] et la synthèse de contrôleurs [2].

58 Chapitre 4 Vérification des systèmes à pile au moyen des algèbres de Kleene Dans ce chapitre, nous introduisons notre méthode de vérification des PDS au moyen d extensions des AK. Cette méthode a aussi fait l objet d une publication [35]. La section 4.1 explique comment représenter un PDS au moyen de matrices et la section 4.2, comment représenter une propriété à vérifier par une expression algébrique. Par la suite, nous donnons deux définitions algébriques de ce qu est la satisfaction d une propriété par un PDS (section 4.3) et nous traitons de l intégrité etdelacomplétude de ces dernières (section 4.4). Enfin, nous discutons du cas des systèmes finis comme étant un cas particulier des PDS (section 4.5) et nous comparons notre méthode àdeux autres méthodes de vérification existantes (section 4.6). 4.1 Représentation de PDS Nous allons représenter un PDS au moyen de matrices sur une OAD. Avant de débuter, nous modifions la définition de PDS (définition 2.3) afin qu elle supporte la présence d actions sur les transitions et qu il soit possible de dépiler aucun, un ou plusieurs symboles de la pile à chaque transition. La définition 2.3 est nécessaire pour pouvoir utiliser la méthode de vérification présentée à la section tandis que notre méthode accepte une définition plus générale de PDS.La deuxième modification apportée àladéfinition de PDS n agrandit pas la classe des LTS qu il est possible de représenter par rapport à l ancienne définition de PDS (définition 2.3) [6]. Voici la nouvelle définition.

59 Chapitre 4. Vérification des systèmes à pile au moyen des algèbres de Kleene 54 (4.1) Définition. Un système àpile(pds) est un quintuplet P =(P, A, S,,c 0 )tel que P est un ensemble fini de points de contrôle, A est un ensemble d actions, S est un alphabet de pile fini et c 0 est l état initial. Une configuration de pile est un mot fini w S.Unétat de P est un couple (p, w) telquep P et w S. On associe à P le LTS T P =(P S,A, P,c 0 )ayantc 0 comme état initial. est un sous-ensemble fini de (P S ) A (P S ). Si ((p, w),a,(p,w )), nous écrivons (p, w) a P (p,w ). La relation de transition de T P est déterminée par comme suit : Si (p, w) a P (p,w )alors(p, ww ) a P (p,w w )pourtoutw S. Par la suite, nous écrirons parfois (p, w) a (p,w ) au lieu de (p, w) a P (p,w )lorsque le PDS auquel on fait référence est évident d après le contexte Algèbre de piles et d actions Dans cette section, étant donné unpdsp =(P, A, S,,c 0 ), nous définissons une OAD permettant de raisonner à propos des actions de contrôle (éléments de A) et des actions de pile (ou manipulations de pile). Nous décrirons P au moyen de matrices sur cette algèbre. Nous définissons l ensemble des actions de pile atomiques (dont la signification des éléments sera expliquée plus bas) par S déf = S {s s S} {ε}. Soit la structure K, B, +,,,, ω, 0, 1,, où K déf = {R(p) p ω -Exp S } et B déf = {b K b 1} et où l interprétation R est définie par son effet sur S, R(s) R(s ) R(ε) déf = {(x, sx) x S }, déf = l inverse de R(s), déf = {(ɛ, ɛ)}, et étendue homomorphiquement, les opérateurs et constantes étant interprétés de la même façon que pour les relations binaires et ɛ représentant la pile vide. Cette structure

60 Chapitre 4. Vérification des systèmes à pile au moyen des algèbres de Kleene 55 forme une OAD -continue puisque c est le cas pour les relations binaires sur un ensemble (section 3.4.3). Les éléments de cette algèbre sont des relations sur des piles finies. Rappelons qu une pile est une séquence de symboles et que le dessus de la pile est à gauche par définition. Ces relations représentent donc des manipulations de pile. L interprétation R stipule que s S représente l empilement de s S. Il ne faut pas confondre s S qui est une manipulation de pile et s S qui est un symbole de l alphabet de pile. Nous avons ici surchargé lesymboles. Ensuite, nous avons que s S représente le dépilement de s S. Il faut comprendre ici que le symbole n est pas un opérateur, mais que s est atomique. Enfin, ε est un test qui représente la pile vide. En plus de satisfaire les lois des OAD -continues, les éléments de S satisfont les lois suivantes pour tout s, t S. ss = 1 (4.1) ε +( s:s : s s) = 1 (4.2) st = 0 si s t (4.3) εs = 0 (4.4) L équation 4.1 stipule qu empiler un symbole et le dépiler immédiatement après est équivalent à ne rien faire. Une conséquence de 4.2 est que s s 1. Ceci signifie que dépiler un symbole et le rempiler immédiatement après est un test. En fait, cela correspond à tester si ce symbole se trouve sur le dessus de la pile. L équation 4.2 stipule donc que la pile est soit vide, soit elle contient un élément de S sur le dessus. Finalement, 4.3 et 4.4 stipulent respectivement qu empiler un symbole donné et en dépiler un différent immédiatement après ou bien tenter de dépiler un symbole lorsque la pile est vide ne sont pas des manipulations de pile valides. Nous définissons maintenant l ensemble des actions de contrôle atomiques A déf = A. À partir de l ensemble A, onpeutgénérer une OAD -continue en utilisant une interprétation similaire à celle du modèle des langages. Les éléments d une telle algèbre sont des ensembles de séquences d actions de contrôle atomiques. Une telle séquence est une exécution dans laquelle on supprime les états entre les actions. Par la suite, lorsque nous utiliserons le terme action sans mentionner s il s agit d actions de pile ou de contrôle, il s agira d actions de contrôle. Nous définissons l algèbre O dont nous utiliserons les éléments pour former les ma-

61 Chapitre 4. Vérification des systèmes à pile au moyen des algèbres de Kleene 56 trices qui représentent les PDS. Les éléments de l algèbre O sont les expressions de ω -SExp A S sous les axiomes des OAD -continues, les équations 4.1 à 4.4 et l équation ax = xa (4.5) pour tout a A et x S. Ce dernier axiome stipule que les actions de contrôle atomiques et les actions de pile atomiques n ont pas d effet entre elles. Nous allons manipuler les expressions seulement au moyen des lois. Par contre, si on veut un modèle de l algèbre O, on peut penser que chaque élément de l algèbre représente un ensemble de séquences composées d actions de contrôle atomiques et d actions de pile atomiques avec la particularité que les actions de contrôle atomiques et les actions de pile atomiques n ont pas d effet entre elles (4.5) et que les actions de piles atomiques se comportent entre elles de la façon spécifiée plus tôt (4.1 à 4.4). Voici des théorèmes de l algèbre O, où a A, s, t S et x S. ax = xa (4.6) (ax) a x (4.7) s s 1 (4.8) sε = 0 (4.9) s ω = 1 ω (4.10) s = 1 (4.11) (s ) = s s (4.12) (s t ) = s t ts (4.13) s s = ε +( t:s {s} : t t) (4.14) Voici la démonstration de ces théorèmes en débutant par 4.6. Démonstration. L équation 4.6 est vraie si a A et x S d après 4.5. C est aussi le cas lorsque a =1oux = 1. Ceci correspond àl étape de base. Le reste se fait par induction. Supposons x S et faisons une induction sur la structure de a. Montrons que si a = b + c est tel que bx = xb et cx = xc, alorsax = xa. ax =(b + c)x = bx + cx = xb + xc = x(b + c) =xa Montrons maintenant que si a = bc est tel que bx = xb et cx = xc, alorsax = xa.

62 Chapitre 4. Vérification des systèmes à pile au moyen des algèbres de Kleene 57 ax = bcx = bxc = xbc = xa Montrons maintenant que si a = b est tel que bx = xb, alorsax = xa. Ladeuxième égalité de la preuve qui suit est justifiée par ax = b x = xb = xa Cette induction montre ax = xa dans le cas où a A et x S. En refaisant une induction similaire sur la structure de x, on montre que c est le cas lorsque a A et x S. Voicilapreuvede4.7. Démonstration. (ax) a x 3.23 axa x a x = 4.6 aa xx a x = 3.29 (deux fois) & élément neutre de + (deux fois) (0 + aa )(0 + xx ) (1 + aa )(1 + xx ) Monotonie de + et de Voicilapreuvede4.8. Démonstration. s s Monotonie de + ε +( s:s : s s) = 4.2 1

63 Chapitre 4. Vérification des systèmes à pile au moyen des algèbres de Kleene 58 Voicilapreuvede4.9. Démonstration. sε = 4.1 ss sε = Par 4.2 & 4.8, s s et ε sont des tests et commutent donc (3.42) sεs s = 4.4 s0s = Élément absorbant de 0 Voicilapreuvede4.10. Démonstration. Nous avons s ω 1 ω d après Voici maintenant la dérivation pour 1 ω s ω. 1 ω s ω ω s1 ω 4.8 & transitivité de & monotonie de ω et 1 ω s(s s) ω = ω (ss ) ω = ω 1 ω Voicilapreuvede4.11. Démonstration. Nous avons s 1pardéfinition du domaine. Voici maintenant la dérivation pour 1 s.

64 Chapitre 4. Vérification des systèmes à pile au moyen des algèbres de Kleene 59 1 = = 4.1 (ss ) = 3.49 (s (s )) Définition du domaine (s1) = Identité de s Voicilapreuvede4.12. Démonstration. s s = 4.8 & 3.58 (s s) = 3.49 (s s) = 4.11 (s 1) = Identité de s Voicilapreuvede4.13. Démonstration. s t ts = 4.8 (deux fois) & 3.58

65 Chapitre 4. Vérification des systèmes à pile au moyen des algèbres de Kleene 60 (s t ts) = 3.49 (s t t s) = 4.11 (s t t1) = Identité de (s t t) = 3.49 (s t t) = 4.11 (s t 1) = Identité de (s t ) Voicilapreuvede4.14. Démonstration. Rappelons que l ensemble des tests d une OAD forme une algèbre booléenne. Il faut montrer que le complément du test s s est le test ε+( t:s {s} : t t). Ceci est le cas si le supremum (opération +) des deux tests est le maximum de l algèbre booléenne (élément 1), et si leur infimum (opération ) est le minimum (élément 0). Montrons donc s s + ε +( t:s {s} : t t)=1ets s(ε +( t:s {s} : t t)) = 0. s s + ε +( t:s {s} : t t) = Insertion d un terme dans la quantification ε +( t:s : t t) = s s(ε +( t:s {s} : t t)) = Distributivité de sur + s sε + s s( t:s {s} : t t) = Distributivité de sur + s sε +( t:s {s} : s st t)

66 Chapitre 4. Vérification des systèmes à pile au moyen des algèbres de Kleene 61 = 4.9 s 0+( t:s {s} : s st t) = Élément absorbant de & élément neutre de + ( t:s {s} : s st t) = 4.3 ( t:s {s} : s 0t) = Élément absorbant de ( t:s {s} :0) = Idempotencede+ 0 Voici un autre théorème qui nous sera utile par la suite. (4.2) Théorème. Pour toute expression E ω -SExp A S telle que E ne contient pas d opérateur de complément, le fait de remplacer tous les symboles de A ou de S dans E par 1 donne une expression F telle que E F. Démonstration. Soit une expression E ω -SExp A S sans complément. Montrons que l expression F obtenue en remplaçant tous les symboles de A dans E par 1 satisfait E F.Ladémonstration pour une expression construite en remplaçant les symboles de S est similaire. La démonstration se découpe en deux grandes étapes. La première consiste à manipuler l expression E, la deuxième, l expression F. D abord, manipulons l expression E de façon à obtenir une expression égale ayant la forme ( i : z i (z i) ω ) telle que, pour tout indice i, z i et z i ne contiennent pas de + ni de ω. L expression E est amenée sous cette forme en utilisant les lois permettant d éliminer l opérateur + à l intérieur des opérateurs (3.34) et ω (3.77) et en utilisant la distributivité de sur +. De plus, assurons-nous que la nouvelle expression ne contienne pas la constante 0. Ceci se fait en utilisant autant de fois que nécessaire des lois simples comme 0x = x0 =0, 0+x = x, 0 =1et0 ω = 0. Le seul cas pour lequel il n est pas possible de trouver une expression sans 0 de cette manière est si l application des lois permet de montrer que E = 0. Dans ce cas, nous avons automatiquement E F puisque 0 est l élément minimum de toute OAD. Une fois que nous avons une expression de la forme ( i : z i (z i) ω ) sans occurrence de 0, nous devons manipuler chaque expression z i et z i de façon àceque,d unpointdevue

67 Chapitre 4. Vérification des systèmes à pile au moyen des algèbres de Kleene 62 syntaxique, tous les symboles de A soient à gauche de tous les symboles de S. Autrement dit, il faut amener l expression ( i : z i (z i) ω ) sous la forme ( i : a i x i (b i y i ) ω ) telle que les a i et les b i ne contiennent que des symboles de A, etlesx i et y i, que des symboles de S. Ceci se fait en utilisant les lois 4.6 (ax = xa) et4.7 ((ax) a x ). La première loi sert à amener les symboles de A et de S du bon côté. La deuxième loi doit obligatoirement être utilisée si des symboles de A et de S se trouvent à l intérieur d un même opérateur. Ces deux lois doivent être utilisées autant de fois que nécessaire et possiblement en alternance. Remarquons qu à cause du symbole de 4.7, nousavons ( i : z i (z i) ω ) ( i : a i x i (b i y i ) ω ) par la monotonie des opérateurs impliqués. Montrons maintenant que ( i : a i x i (b i y i ) ω ) ( i : x i (y i ) ω ). Ceci se démontre par la dérivation suivante et la monotonie de +. a i x i (b i y i ) ω x i (y i ) ω = 4.6 x i a i (b i y i ) ω x i (y i ) ω Monotonie de a i (b i y i ) ω (y i ) ω 3.66 a i (b i y i ) ω y i a i (b i y i ) ω = 4.6 a i (b i y i ) ω a i y i (b i y i ) ω = 3.75 a i (b i y i ) ω a i (y i b i ) ω = 4.6 a i (b i y i ) ω a i (b i y i ) ω Nous avons donc E ( i : x i (y i ) ω ). Nous allons maintenant montrer que F = ( i : x i (y i ) ω ). Ceci permettra de conclure E F. Par définition, l expression F alamême forme que l expression E, ladifférence étant que les symboles de A dans E ont été remplacés par la constante 1 dans F. Étant donné cela, il est possible d appliquer à F lesloisquiontété appliquées à E (dans le même ordre et au même endroit dans l expression) jusqu à l étape qui avait permis d avoir une expression de la forme ( i : z i (z i) ω )sansoccurrencede0.

68 Chapitre 4. Vérification des systèmes à pile au moyen des algèbres de Kleene 63 La suite utilisait les lois 4.6 et 4.7. Or, les sous-expressions qui étaient composées uniquement de symboles de A au moment de manipuler E sont, àl étape courante, des expressions ne contenant que la constante 1 ainsi que les opérateurs et (les occurrences de 0 sont impossibles). Une telle expression, que nous notons a,estnécessairement égale à 1 puisque 1 1=1et1 = 1. Donc, à chaque fois où laloi4.6 était utilisée, utilisons maintenant la loi a x = xa,età chaque fois où laloi4.7 était utilisée, utilisons maintenant la loi (a x) = a x. Remarquons que ces deux lois sont des égalités et qu elles sont des théorèmes des OAD sous l hypothèse a = 1. L expression obtenue est ( i : a ix i (b iy i ) ω ), les a i et b i étant composés uniquement de la constante 1 ainsi que des opérateurs et. Pour les raisons déjà exprimées, ces expressions sont égales à1et nous avons donc ( i : a ix i (b iy i ) ω )=( i : x i (y i ) ω ). Étant donné que toutes les lois utilisées pour manipuler F sont des égalités, nous avons F =( i : x i (y i ) ω ). Nous pouvons en conclure que E F Représentation au moyen de matrices La représentation d un PDS P se fait au moyen de matrices sur O. L idée de cette représentation est la même que celle pour les automates finis présentée dans [27]. Un PDS est représenté par un couple de matrices (I, M) servant respectivement àdécrire l état initial et la relation de transition de P. Dans le cas où P a n points de contrôle nommés p 1,...,p n, M est une matrice n n dont l entrée àlalignei et colonne j est une somme d expressions de la forme as l...s 2s 1t 1 t 2...t m pour tous a A et a s 1...s l,t 1...t m S telles que (p i,s 1...s l ) P (p j,t 1...t m ). Une entrée de M, qui sert àreprésenter le passage d un point de contrôle à un autre, contient donc, en plus des actions de contrôle effectuées (comme c est le cas dans la représentation d automates finis), les actions de pile effectuées, c est-à-dire les symboles dépilés (s l...s 2s 1)etles symboles empilés (t 1 t 2...t m ). La matrice I est un vecteur ligne de n colonnes tel que l entrée àlacolonnei de I est s k...s 1εs 1...s k si (p i,s 1...s k ) est l état initial. Les autres entrées contiennent 0. Notons qu il est facile de démontrer que s k...s 1εs 1...s k 1. (4.3) Exemple. Soit P = {{p 1,p 2,p 3,p 4 }, {a, b, c, d}, {s, t},, (p 1,ɛ)},où ɛ représente le mot vide sur {s, t} et est défini par : (p 1,ɛ) c (p 2,s), (p 3,t) b (p 3,ɛ), (p 2,ɛ) a (p 2,t), (p 3,s) c (p 4,ɛ), (p 2,ɛ) c (p 3,ɛ), (p 4,ɛ) d (p 4,ɛ). Par exemple, (p 1,ɛ) c (p 2,s) signifie qu il est possible d aller du point de contrôle p 1 au point de contrôle p 2 en faisant l action c et en empilant s. Ceci est représenté par

69 Chapitre 4. Vérification des systèmes à pile au moyen des algèbres de Kleene 64 l arc étiqueté cs allant de p 1 à p 2 dans le graphe ci-dessous. De plus, ceci est représenté par le fait que M[1, 2] = cs dans la représentation matricielle ci-dessous. Voici une représentation graphique de la relation. at bt d p 1 cs p 2 c p 3 cs p 4 Le PDS P est représenté par(i, M), où 0 cs 0 0 I =(ε 0 0 0) et M = 0 at c bt cs d Toute séquence infinie d actions associée à une exécution de P partant de l état initial (p 1,ɛ) a la forme ca ω ou ca n cb n cd ω pour n N. 4.2 Représentation de propriétés àvérifier Nous allons maintenant expliquer comment décrire de façon algébrique une propriété àvérifier sur un PDS représenté au moyen de matrices. L idée est d écrire une expression non interprétée qui nous donnera, une fois interprétée par rapport au PDS à vérifier (nous décrirons cette interprétation à la section 4.3), l ensemble des états ou exécutions qui satisfont ou violent la propriété exprimée. En fait, cela ressemble beaucoup au modèle de traces (section 3.4.1) dans lequel l interprétation canonique nous donne l ensemble des traces du cadre de Kripke qui «satisfont» ce qui est exprimé par l expression non interprétée. Au chapitre 2, nous nous sommes intéressés à des logiques temporelles pouvant exprimer des propriétés basées sur les actions et les états d un LTS à vérifier. Nous avons présenté quelques logiques dont les plus intéressantes pour nous étaient LTL et CTL. Nous voulons ici expliquer comment trouver l expression non interprétée sur une OAD associée à une formule de ces logiques. Cette expression appartient à l ensemble ω -SExp A,At où At est un ensemble de propositions atomiques servant àreprésenter des ensembles d états du PDS à vérifier. Nous utiliserons les variables p et q pour représenter les propositions atomiques (tests atomiques) et, comme dans l exemple 4.3, les variables a, b, c et d pour représenter les actions de contrôle atomiques (programmes atomiques).

70 Chapitre 4. Vérification des systèmes à pile au moyen des algèbres de Kleene 65 Dans un premier temps, intéressons-nous uniquement à LTL. Une formule LTL φ peut être exprimée par un automate de Büchi dont les transitions sont étiquetées par des actions et les états par des sous-ensembles de l ensemble des propositions atomiques At. Le langage de cet automate correspond à une expression de ω -SExp A,At,c est-à-dire une expression sur une OAT. On note E l expression correspondant au langage de l automate de Büchi pour φ. Donc E représente les exécutions qui satisfont φ. On note E l expression correspondant au langage de l automate de Büchi pour φ. Donc E représente les exécutions qui violent φ. Dans un second temps, intéressons-nous à CTL. Nous savons qu il est possible de définir une expression E qui représente les exécutions qui satisfont une formule de LTL φ. Sionpenseaumodèle des traces, E représente les états à partir desquels il est possible de faire une exécution qui satisfait φ. Donc E représente Eφ. Puisque CTL est obtenue en ajoutant l opérateur E à LTL, nous savons maintenant représenter une formule de CTL par une expression non interprétée. Par contre, au lieu d utiliser une expression de la forme E, nous utiliserons l expression E( a:a : a) ω. Ces deux expressions représentent la même propriété. La première la voit comme une formule dont la sémantique est un ensemble d états (c est un test) et la deuxième, comme un ensemble d exécutions(lesexécutions dont le premier état satisfait E). D après la sémantique de CTL, toute formule de cette logique peut être interprétée comme étant une formule dont la sémantique est un ensemble d exécutions. Nous faisons cela pour que les expressions représentant des formules de CTL appartiennent à ω -SExp A,At. Par la suite, nous utiliserons toujours E et E pour représenter respectivement les exécutions qui satisfont et violent la propriété désirée. (4.4) Exemple. Reprenons le PDS de l exemple 4.3. Lapropriété qui nous intéresse est φ déf = G((a)vrai G(a)vrai F(b)vrai). Elle signifie qu à chaque fois que l action a est exécutée, alors soit a est toujours exécutée ou bien b est exécutée par la suite. Nous donnerons seulement l expression E qui représente les exécutions qui violent φ et satisfont φ déf = F((a)vrai F (a)vrai G (b)vrai). L expression qui correspond au langage de l automate de Büchi pour φ est E déf =(a + b + c + d) a(a + c + d) (c + d)(a + c + d) ω. Elle signifie que, pour violer la propriété φ, une action a doit être exécutée àunmoment donné (ce qui est représenté par(a+b+c+d) a), être suivie par une séquence d actions ne contenant pas b (ce qui est représenté par(a + c + d) )etêtre suivie par une action autre que a ou b (ce qui est représenté parc + d). À partir de ce point, l action b ne doit jamais être exécutée (ce qui est représenté par(a + c + d) ω ).

71 Chapitre 4. Vérification des systèmes à pile au moyen des algèbres de Kleene Vérification de la satisfaction d une propriété Il faut maintenant définir une interprétation qui associe à une expression non interprétée E ou E des exécutions d un PDS (I, M). Ensuite, nous définirons ce qu est la satisfaction d une propriété E par un PDS. Nous définissons le concept d interprétation d une expression de ω -SExp A,At par rapport à M comme étant une fonction ( ) M : ω -SExp A,At Mat(O). Pour a A, on définit a M par a M [i, j] déf = ax si a A et M[i, j] =ax +( b:a b a : by b ). (4.15) Notons que dans cette partie de la définition, x représente les manipulations de pile possibles pour l action a, ety b, les manipulations de pile possibles pour une action b. Certaines de ces valeurs peuvent être égales à 0, ce qui permet d appliquer la définition en tout temps. Par exemple, si M[i, j] = bs (l ensemble des actions est {a, b}), M[i, j] = a0+bs. Dans ce cas, a M [i, j] =a0 = 0. Voici maintenant la suite de la définition. Pour p At, p M est une matrice qui est un test et qui représente les états qui satisfont p selon la valuation désirée. Le tout est étendu homomorphiquement. Lorsqu une proposition p est interprétée par une valuation simple (définition 2.7), l usage du domaine n est jamais nécessaire alors qu il peut l être pour les valuations régulières (définition 2.8). Voici quelques exemples pour illustrer comment interpréter une proposition atomique en matrices. (4.5) Exemple. Soit le PDS P = ({p 1,p 2 },A,{s, t},,c 0 )représenté delafaçon habituelle par (I, M). Le fait que s soit sur le sommet de la pile est représenté pars s. Le fait que la pile soit vide ou qu elle contienne t sur le dessus est représenté parε + t t. Le fait que la pile contienne un s est représenté par (t s ). Cette expression veut dire qu il est possible, à partir de l état courant, de dépiler un nombre fini de fois le symbole t jusqu à ce que le symbole s puisse être dépilé. Maintenant, si la proposition p est vraie au point de contrôle p 1 en tout temps et n est jamais vraie au point de contrôle p 2 alors il faut définir ( ) déf 1 0 p M =. 0 0 Si la proposition q est vraie au point de contrôle p 1 lorsque le symbole sur le dessus de la pile est s ou que la pile est vide et vraie au point de contrôle p 2 lorsque la pile contient un s alors il faut définir déf q M = ( ) s s + ε 0 0 (t. s )

72 Chapitre 4. Vérification des systèmes à pile au moyen des algèbres de Kleene 67 Un premier exemple complet d interprétation est fait à l exemple 4.7. Notons que, par la définition de ( ) M,(E ω ) M =(E M ) ω et (E ) M =(E M ).Nous écrirons donc habituellement EM ω et E M.Nousécrirons aussi E M àlaplacede(e ) M. Pour une expression E, E M est un vecteur colonne puisque nous utilisons la définition de l opérateur ωc pour le calcul ω dans les exemples. L entrée à la ligne i de ce vecteur représente les séquences d actions associées aux exécutions de (I, M) qui partent du point de contrôle p i et qui satisfont E. Nous donnons maintenant deux définitions de satisfaction. (4.6) Définition. 1. Soit E ω -SExp A une expression spécifiant les séquences d actions que le système peut exécuter. Le PDS (I, M) satisfait E ssi IM ω IE M. 2. Soit E ω -SExp A,At une expression spécifiant les séquences d actions et d états (les états sont représentés par des éléments de At) que le systèmenedoitpas exécuter. Le PDS (I, M) satisfait E ssi IE M =0. Voici deux exemples qui illustrent l utilisation de la deuxième définition de satisfaction. Nous donnerons plus de détails sur le sens des deux définitions de satisfaction après les exemples. (4.7) Exemple. Reprenons le PDS de l exemple 4.3 et l expression E de l exemple 4.4. Montrons que IE M =0. IE M = Définition de E I((a + b + c + d) a(a + c + d) (c + d)(a + c + d) ω ) M = Définition de ( ) M I(a + b + c + d) M a M (a + c + d) M (c + d) M (a + c + d) ω M = Définition de ( ) M et de M IM a M (a + c + d) M (c + d) M (a + c + d) ω M = Définition de ( ) M 0 cs 0 0 IM a M (a + c + d) M (c + d) 0 at c 0 M cs d ω

73 Chapitre 4. Vérification des systèmes à pile au moyen des algèbres de Kleene 68 = Calcul de ω IM a M (a + c + d) M (c + d) M = Définition de ( ) M 0 cs 0 0 IM a M (a + c + d) 0 0 c 0 M cs d = Calcul de & 3.74 IM a M (a + c + d) M = Définition de ( ) M 0 cs 0 0 IM a M 0 at c cs d cs((at) ω +(at) ccs d ω ) (at) ω +(at) ccs d ω cs d ω d ω cs((at) ω +(at) ccs d ω ) ccs d ω cs d ω d ω cs((at) ω +(at) ccs d ω ) (at) ω +(at) ccs d ω cs((at) ω +(at) ccs d ω ) ccs d ω cs d ω d ω = Calcul de 0 cs(at) cs(at) c cs(at) ccs d IM a M 0 (at) (at) c (at) ccs d cs d d = Calcul de & 3.73 cs(at) ccs d ω (at) ccs d ω IM a M cs d ω d ω = Définition de ( ) M IM 0 at = Calcul de cs(at) ccs d ω (at) ccs d ω cs d ω d ω cs d ω d ω cs((at) ω +(at) ccs d ω ) ccs d ω cs d ω d ω

74 Chapitre 4. Vérification des systèmes à pile au moyen des algèbres de Kleene 69 0 IM at(at) ccs d ω 0 0 = IM (at) atccs d ω 0 0 = IM (at) accts d ω 0 0 = IM (at) acc0d ω 0 0 = Élément absorbant de IM 0 = Élément absorbant de 0 Ceci montre qu aucune exécution spécifiée par E ne peut être exécutée par le PDS (I, M). (4.8) Exemple. Reprenons le PDS de l exemple 4.3 et vérifions qu il satisfait la formule LTL Fp où p représente les états dont le point de contrôle est p 4 et la pile contient le symbole s. Cette formule stipule qu il est impossible d atteindre le point de contrôle p 4 et d avoir s dans la pile (lorsque le contrôle se trouve à ce point de contrôle). La première définition de satisfaction exige d avoir E ω -SExp A. Elle empêche donc d utiliser une variable p At pour spécifier une propriété àproposdesétats. Il faut donc utiliser la deuxième définition de satisfaction. Nous avons E déf =(a + b + c + d) p(a + b + c + d) ω parce que la seule façon de violer la propriété est de satisfaire p à un moment donné au

75 Chapitre 4. Vérification des systèmes à pile au moyen des algèbres de Kleene 70 coursdel exécution. Nous avons aussi déf p M = (t s ) Il faut montrer IE M = 0. IE M = 0 = Définition de E I((a + b + c + d) p(a + b + c + d) ω ) M = 0 = Définition de ( ) M I(a + b + c + d) M p M(a + b + c + d) ω M = 0 Élément absorbant de I(a + b + c + d) M p M = 0 = Définition de ( ) M 0 cs ( ε 0 0 0) 0 at c bt cs = d (t s ) = Calcul de 1 cs(at) cs(at) c(bt ) cs(at) c(bt ) cs d ( ε 0 0 0) 0 (at) (at) c(bt ) (at) c(bt ) cs d 0 0 (bt ) (bt ) cs d = d (t s ) = Calcul de εcs(at) c(bt ) cs d (t s )=0 = Par 3.55 et 3.49, a b =0 (a b) =0 (ab) =0 ab =0 εcs(at) c(bt ) cs d t s =0 4.7 (deux fois) εcsa t cb t cs d t s =0 = 4.6 ca cb cd εst t s t s =0 Par 4.1 et 3.38, t t t + t εs(t + t )s t s =0

76 Chapitre 4. Vérification des systèmes à pile au moyen des algèbres de Kleene 71 = 3.29 & 3.30 εs(1 + t t + t t )s t s =0 = Distributivité de sur + (deux fois) ε(ss + st ts + st t s )t s =0 = 4.1 & 4.3 (deux fois) & 3.29 ε(t t +1)s =0 = Distributivité de sur + (deux fois) εt t s + εs =0 = 4.4 (deux fois) vrai Ceci montre qu aucune exécution spécifiée par E ne peut être exécutée par le PDS (I, M). Expliquons maintenant les définitions 4.6. La première définition spécifie que la propriété E est satisfaite si et seulement si l ensemble des séquences d actions du PDS (I, M) partant de l état initial (représenté parim ω ) est inclus dans l ensemble des séquences d actions qui sont spécifiées par E et qui sont des séquences d actions de (I, M) partant de l état initial (représenté parie M ). La deuxième définition spécifie que la propriété E est satisfaite si et seulement si l ensemble des séquences d actions du PDS (I, M) partant de l état initial et qui violent la propriété E (représentéparie M )est vide. Par la suite, nous référerons à ces deux définitions en les nommant respectivement première définition de satisfaction et deuxième définition de satisfaction. La première définition de satisfaction est plus restrictive pour l expression E que ne l est la deuxième pour E. En fait, elle n est pas intègre si on ne satisfait pas E ω -SExp A. Ceci veut dire que l expression IM ω IE M peut être un théorème même si (I, M) viole E. La première restriction imposée à E est de ne pas contenir d éléments de At. Ceci veut dire que E exprime une propriété à propos des actions du système uniquement. La deuxième restriction est de ne pas contenir l opérateur de domaine. Ceci empêche d exprimer des propriétés arborescentes. Ces dernières ayant un ensemble d états comme sémantique, ceci enlève la possibilité que E exprime de façon indirecte une propriété à propos des états du système à vérifier. Nous avons ces restrictions parce que l interprétation que nous utilisons ne fournit pas un ensemble d exécutions en réalité (une exécution est une suite alternée d états et d actions), mais un ensemble de suites d actions correspondant à une exécution. Dans un PDS, il est

77 Chapitre 4. Vérification des systèmes à pile au moyen des algèbres de Kleene 72 possible que toute les exécutions correspondent à la même suite d actions (en passant par des états différents). Certaines peuvent satisfaire E et d autres pas si E spécifie un comportement à propos des états. Dans ce cas, l ensemble des suites d actions possibles du PDS et l ensemble des suites d actions correspondant aux exécutions qui satisfont E seraient identiques et, ainsi, IM ω IE M serait un théorème. Voici un exemple qui illustre cela. (4.9) Exemple. Soit le PDS P =({p 1,p 2 }, {a},,, (p 1,ɛ)), où estdéfini par (p 1,ɛ) a (p 1,ɛ), (p 1,ɛ) a (p 2,ɛ)et(p 2,ɛ) a (p 2,ɛ). Ce PDS ne satisfait pas la formule LTL Fp si p est satisfait au point de contrôle p 2 et non satisfait au point de contrôle p 1. Ceci est dû au fait que le contrôle peut demeurer au point de contrôle p 1 indéfiniment. Le PDS P est représenté par(i, M) où I =(ε 0) et M = ( ) a a. 0 a L expression E correspondant à Fp est a pa ω puisque a est la seule action possible dans P. Selon la description de p que nous avons donnée, nous définissons déf p M = ( ) Nous allons maintenant montrer que IM ω IE M est un théorème malgré le fait que le PDS (I, M) ne satisfait pas E. IM ω ( a a = (ε 0) 0 a ( ) a ω = (ε 0) a ω = (εa ω ) ) ω IE M = (ε 0)(a pa ω ) M

78 Chapitre 4. Vérification des systèmes à pile au moyen des algèbres de Kleene 73 = (ε 0)a M p Ma ω M ( ) a a ( )( ) 0 0 a a ω = (ε 0) 0 a a ( )( )( ) a aa 0 0 a ω = (ε 0) 0 a 0 1 a ω ( )( ) 0 0 a ω = (εa εaa ) 0 1 a ω ( ) a ω = (0 εaa ) a ω = (εaa a ω ) = 3.73 ( εaa ω ) = 3.74 ( εa ω ) Nous voulons démontrer l équivalence des deux définitions de satisfaction lorsque E ω -SExp A. Puisqu une des définitions utilise E et l autre E,nousreprésentons le fait que les ensembles d exécutions spécifiés par E et E sont complémentaires par les lois suivantes. E + E = ( a:a : a) ω (4.16) x E x E x = 0 (4.17) Les deux théorèmes suivants sont utiles pour la démonstration. (4.10) Théorème. Soit [a] m,n, une matrice pleine de a de m lignes et n colonnes. Nous avons que [a] m,n +[b] m,n =[a + b] m,n, [a] m,n [b] n,p =[ab] m,p, [a] n,n [a ] n,n et [a] ω n,n =[a ω ] n,n. Démonstration. Les dérivations qui suivent ne montrent pas toujours que les dimensions des matrices sont telles qu énoncées dans le théorème, ce qui découle directement de la définition des opérateurs sur les matrices. Voici un exemple pour expliquer ce quecelasignifie.lapremière dérivation sert à montrer [a] m,n +[b] m,n =[a + b] m,n, mais, en fait, elle ne montre que chaque entrée de [a] m,n +[b] m,n est égale à a + b sans spécifier les dimensions de cette matrice. Or, nous savons d après la définition de + sur

79 Chapitre 4. Vérification des systèmes à pile au moyen des algèbres de Kleene 74 les matrices qu elle a m lignes et n colonnes. ([a] m,n +[b] m,n )[i, j] = Définition de + [a] m,n [i, j]+[b] m,n [i, j] = Définition de [ ] a + b ([a] m,n [b] n,p )[i, j] = Définition de ( k : [a] m,n [i, k][b] n,p [k, j]) = Définition de [ ] ( k : ab) = k n est pas libre dans ab & idempotence de + ab [a] n,n [a ] n,n [a] n,n [a ] n,n [a ] n,n 1 [1] & monotonie de + & transitivité de [1 ] n,n +[a] n,n [a ] n,n [a ] n,n = [a] + [b] = [a + b] & [a][b] = [ab] [1 + aa ] n,n [a ] n,n = 3.29 [a ] n,n [a ] n,n [a ω ] n,n [a] ω n,n 3.66 [a ω ] n,n [a] n,n [a ω ] n,n = [a][b] = [ab]

80 Chapitre 4. Vérification des systèmes à pile au moyen des algèbres de Kleene 75 [a ω ] n,n [aa ω ] n,n = 3.74 [a ω ] n,n [a ω ] n,n L expression [a] ω n,n [a ω ] n,n est un théorème par la dérivation [a] ω n,n[i, j] =[a] ωc n,n[i, 1] a ω. La transformation correspondant à se démontre par induction sur la taille de la matrice. Comme état de base, nous avons (a) ωc =(a ω ) pour toute expression a d après la définition de ωc.pourl étape d induction, supposons [a] ωc n,n [a ω ] n,1 pour toute expression a et montrons [a] ωc n+1,n+1 [a ω ] n+1,1. [a] ωc n+1,n+1 ( [a]n,n [a] n,1 = [a] 1,n [a] 1,1 ) ωc = Définition de ωc ( ) ([a]n,n +[a] n,1 [a] 1,1 [a] 1,n ) ωc +([a] n,n +[a] n,1 [a] 1,1 [a] 1,n ) [a] n,1 [a] ωc 1,1 ([a] 1,1 +[a] 1,n [a] n,n [a] n,1 ) ωc +([a] 1,1 +[a] 1,n [a] n,n [a] n,1 ) [a] 1,n [a] ωc n,n [a] [a ] & monotonie de +,, et ωc ( ) ([a]n,n +[a] n,1 [a ] 1,1 [a] 1,n ) ωc +([a] n,n +[a] n,1 [a ] 1,1 [a] 1,n ) [a] n,1 [a] ωc 1,1 ([a] 1,1 +[a] 1,n [a ] n,n [a] n,1 ) ωc +([a] 1,1 +[a] 1,n [a ] n,n [a] n,1 ) [a] 1,n [a] ωc n,n = [a][b] = [ab] & monotonie de +,, et ωc ( ) ([a]n,n +[aa a] n,n ) ωc +([a] n,n +[aa a] n,n ) [a] n,1 [a] ωc 1,1 ([a] 1,1 +[aa a] 1,1 ) ωc +([a] 1,1 +[aa a] 1,1 ) [a] 1,n [a] ωc n,n = [a] + [b] = [a + b] & monotonie de +,, et ωc ( ) [a + aa a] ωc n,n +[a + aa a] n,n [a] n,1 [a] ωc 1,1 [a + aa a] ωc 1,1 +[a + aa a] 1,1 [a] 1,n [a] ωc n,n [a] [a ] & (a) ωc = (a ω ) & hypothèse d induction & monotonie de + et ( ) [(a + aa a) ω ] n,1 +[(a + aa a) ] n,n [a] n,1 [a ω ] 1,1 [(a + aa a) ω ] 1,1 +[(a + aa a) ] 1,1 [a] 1,n [a ω ] n,1 = [a][b] = [ab] & monotonie de + ( ) [(a + aa a) ω ] n,1 +[(a + aa a) aa ω ] n,1 [(a + aa a) ω ] 1,1 +[(a + aa a) aa ω ] 1,1

81 Chapitre 4. Vérification des systèmes à pile au moyen des algèbres de Kleene 76 = [a] + [b] = [a + b] ( ) [(a + aa a) ω +(a + aa a) aa ω ] n,1 [(a + aa a) ω +(a + aa a) aa ω ] 1,1 = Distributivité de sur + ( ) [((1 + aa )a) ω + ((1 + aa )a) aa ω ] n,1 [((1 + aa )a) ω + ((1 + aa )a) aa ω ] 1,1 = 3.29 ( ) [(a a) ω +(a a) aa ω ] n,1 [(a a) ω +(a a) aa ω ] 1,1 = 3.74 ( ) [(a a) ω +(a a) a ω ] n,1 [(a a) ω +(a a) a ω ] 1,1 = 3.77 ( ) [(a + a) ω ] n,1 [(a + a) ω ] 1,1 = Idempotencede+ ( ) [a ω ] n,1 [a ω ] 1,1 =[a ω ] n+1,1 (4.11) Théorème. Pour toute expression E ω -SExp A telle que E ne contient pas d opérateur de complément et pour toute matrice M représentant le système de transitions d un PDS, E M [i, 1] E pour tout i. Démonstration. Soit i N et soit l expression F i obtenue de E M [i, 1] en remplaçant tous les symboles de S par 1. Par le théorème 4.2, E M [i, 1] F i.d après la définition des opérateurs sur les matrices, une autre façon d obtenir F i est de remplacer les symboles de S par 1 directement dans M pour obtenir une matrice M. Dans ce cas, E M [i, 1] = F i. Voici maintenant la démonstration du théorème. E M [i, 1] Paragraphe ci-dessus E M [i, 1] Puisque M 1 M 2 a M1 a M2 et par monotonie des opérateurs formant E, M 1 M 2 E M1 E M2 E [( a:a : [i, 1] a)]

82 Chapitre 4. Vérification des systèmes à pile au moyen des algèbres de Kleene 77 b [( a:a : = [b] & théorème 4.10 & monotonie des a)] opérateurs formant E E (4.12) Théorème. Les deux définitions de satisfaction sont équivalentes lorsque E ω -SExp A. Démonstration. Tout d abord, mentionnons que lorsque E ω -SExp A,nousavons aussi E ω -SExp A. Ceci est dû aufaitquee, par cette restriction, représente le langage d un automate (fini) de Büchi sur des séquences non gardées, c est-à-dire un automate de Büchi classique. Le complément de cet automate est du mêmetypeet donc E, qui représente le langage du complément, satisfait aussi cette restriction. Voici la démonstration de IM ω IE M IE M = 0. Supposons IMω IE M et montrons IE M = 0. Puisque IE M est une matrice d une seule entrée, montrons (IE M )[1, 1] = 0. D après 4.17, ilsuffitdemontrer(ie M )[1, 1] E et (IE M )[1, 1] E. (IE M )[1, 1] 4.16 (I(( a:a : a) ω ) M )[1, 1] = Définition de ( ) M (I(( a:a : a) M ) ω )[1, 1] = Définition de ( ) M (IM ω )[1,1] Hypothèse (IE M )[1,1] = Définition de ( i : I[1,i]E M [i, 1]) I[1,i] 1 pour tout i ( i : E M [i, 1]) Théorème 4.11 ( i : E) = i non libre dans E & Idempotence de + E

83 Chapitre 4. Vérification des systèmes à pile au moyen des algèbres de Kleene 78 (IE M )[1, 1] = Définition de ( i : I[1,i]E M [i, 1]) I[1,i] 1 pour tout i ( i : E M [i, 1]) Théorème 4.11 ( i : E ) = i non libre dans E & Idempotence de + E Voici maintenant la démonstration de IE M =0 IMω IE M. Supposons IE M =0 et montrons IM ω IE M. IM ω = Définition de ( ) M et de M I(( a:a : a) M ) ω = Définition de ( ) M I(( a:a : a) ω ) M = 4.16 I(E + E ) M = Définition de ( ) M I(E M + E M ) = Distributivité de sur + IE M + IE M = Hypothèse IE M +0 = Élément neutre de + IE M

84 Chapitre 4. Vérification des systèmes à pile au moyen des algèbres de Kleene Intégrité etcomplétude de la méthode Dans cette section, nous traitons de l intégrité et de la complétudedes deuxdéfinitions de satisfaction (définition 4.6) Intégrité Une définition de satisfaction est intègre si le fait que l expression à démontrer soit un théorème implique que le PDS considéré satisfait nécessairement la propriété spécifiée par E. Débutons par la deuxième définition. L expression E M représente les séquences d actions associées aux exécutions de (I, M) (partant d un état quelconque) qui violent E. L expression IE M restreint cet ensemble aux exécutions partant de l état initial. Puisqu à chaqueexécution correspond une séquence d actions, le fait que cet ensemble soit vide signifie qu aucune exécution ne viole la propriété E et donc toute exécution satisfait E. Cet ensemble est vide si IE M =0.Ladéfinition est donc intègre. Pour la preuve d intégrité delapremière définition lorsque E satisfait les restrictions de ladite définition, on peut utiliser le théorème démontré IM ω IE M IE M =0 et l intégrité de la deuxième définition pour en conclure que la première définition est intègre Complétude La complétude d une définition de satisfaction signifie que lorsque le PDS considéré satisfait la propriété énoncée par E, ceci implique nécessairement que l expression à démontrer est un théorème. Nous n avons pas de résultat de complétude, que ce soit pour la première ou la deuxième définition de satisfaction. Voici tout de même deuxidées afin de trouver ce résultat pour la deuxième définition de satisfaction lorsque l expression E ne contient pas d opérateur de domaine (ceci afin de faciliter le problème). Premièrement, Kozen s inspire de la procédurededécision servant àvérifier si deux automates finis ont le même langage pour montrer la complétude des AK pour les langages réguliers [27]. Si E ω -SExp A,At, IE M est une matrice dont l unique entrée est une expression ω-régulière de O. Cette expression ressemble beaucoup au langage

85 Chapitre 4. Vérification des systèmes à pile au moyen des algèbres de Kleene 80 d un PDS de Büchi (définition 2.9). En fait, les PDS de Büchi n ont pas d action sur les transitions. Comme Kozen l a fait pour les AK, il faudrait voir si l algorithme servant à déterminer si un PDS de Büchi a un langage vide (section 2.5.2) peut être utilisé pour démontrer le résultat de complétude qui nous intéresse. Deuxièmement, on pourrait créer un algorithme qui modifierait l entrée de la matrice IE M au moyen des théorèmes de notre algèbre de façon à ce que l expression modifiée ne contiennent pas de séquence non valide lorsqu elle est interprétée selon le modèle des langages (section 3.4.2). Par exemple, l expression st interprétée selon le modèle des langages donne un singleton contenant la séquence st tandis qu une interprétation qui satisfait tous les axiomes de notre algèbre doit donner un ensemble vide puisque st est une séquence non valide (st =0d après 4.3). Un tel algorithme permettrait donc de modifier une expression et de l amener sous une forme telle que seulement les axiomes des OA sont nécessaires pour montrer qu elle est égale à 0 puisque toutes les séquences non valides ont étééliminées. Dans [34], Kozen et Smith ont défini un tel algorithme afin de démontrer la complétude des AKT pour les langages réguliers de séquences gardées finies en se ramenant au problème de complétude des AK pour les langages réguliers classiques. Un résultat affirmant la complétude de la deuxième définition, combiné au théorème IE M = 0 IMω IE M, permettrait de conclure que la première définition est complète. 4.5 Discussion à propos des systèmes finis Nous pouvons voir les systèmes finis comme étant un cas particulier des PDS. Il suffit de considérer que la pile est vide àl état initial et que chaque transition ne manipule pas la pile. Dans ce cas, on considère que l alphabet de pile est vide et nous avons donc que ε =1par4.2. Nous avons aussi que chaque point de contrôle correspond àunétat puisque la pile ne peut être dans une autre configuration que vide. En se limitant aux systèmes finis, nos définitions de satisfaction sont complètes et décidables lorsqu il n y a pas d opérateur de domaine dans l argument d un complément pour E.Pourladeuxième définition, il suffit de prouver qu une expression sur A est égale à 0. Puisqu il n y a plus de symboles de S à manipuler ni de ε, les lois des OAD suffisent. Il faut savoir que dans ce cas, les seules expressions égales à 0 sont obtenues par 0x, x0, 0+0, 0 ω, 1et 0. En utilisant ces lois, il est facile de vérifier si une expression est égale ou non à 0. Cela ne demande aucune intuition, il ne s agit que d un simple

86 Chapitre 4. Vérification des systèmes à pile au moyen des algèbres de Kleene 81 calcul. Il est même possible de faire mieux, puisqu on peut calculer tous les états ou séquences d actions correspondant aux exécutions qui satisfont une expression E. Il suffit de simplifier l expression E M avec les lois données plus tôt dans ce paragraphe et de savoir que x =1six 0 puisque 0 et 1 sont les seuls tests pour les expressions sur A (voir 3.55). Il faut cependant mentionner qu il n est pas possible de montrer x 0 de façon axiomatique puisque les axiomes ne permettent pas de démontrer des inégalités. Il faut donc raisonner dans le modèle des langages pour tirer profit de cette loi qui permet aussi de traiter l opérateur de domaine dans l argument d un complément. Enfin, comme nous l avons montré, le problème avec la première définition se ramène à celui de la deuxième, donc la première définition est aussi complète et décidable. Un fait intéressant est que la première définition peut-être utilisée sans revenir à la deuxième. L expression àdémontrer est par contre de la forme x y plutôt que x =0cequiest plus difficile, mais cela peut être très pratique si l expression E est très longue par rapport à E ou difficile àobtenir. (4.13) Exemple. Reprenons l exemple 4.9 dont le PDS correspond à un système fini. L expression E = a pa ω correspond à Fp. L expression E =(pa) ω correspond à Fp = G p. Rappelonsquel état initial ne satisfait pas Fp. Il satisfait donc EG p, représenté par E. Trouvons tous les états qui satisfont EG p en calculant E M. E M = ((pa) ω M ) = ((p M a M ) ω ) ( 0 0 = (( 0 1 ( 1 0 = (( 0 0 ( ) a a ω) = ( 0 0 ( ) a ω = = 0 ( (a ω ) )( a a 0 a )( a a 0 a ) ) ) ω ) ) ) ω ) = D après le modèle des langages ( )

87 Chapitre 4. Vérification des systèmes à pile au moyen des algèbres de Kleene 82 Nous en concluons que la propriété EG p est satisfaite dans l état p 1, mais pas dans l état p Comparaisons Il existe une méthode de vérification qui utilise les OAT. Cette méthode, introduite par Bolduc et Desharnais [4] (voir aussi [3]), est l extension d une méthode d analyse statique de Kozen [31]. Elle permet de vérifier une propriété exprimée au moyen d un automate de Büchi sur un programme ayant des exécutions infinies. Elle ne traite que des programmes non récursifs, c est-à-dire ceux qui peuvent être représentés par un système fini. Les propriétés ne sont que sur les actions et il n est pas possible d exprimer des propriétés arborescentes. Cette approche ressemble beaucoup à la nôtre avec la première définition de satisfaction. D ailleurs, avec cette définition de satisfaction, notre méthode ne permet pas non plus d exprimer des propriétés sur les états et des propriétés arborescentes. Dans la méthode de Bolduc et Desharnais, l automate de Büchi est codé au moyen d hypothèses (ces hypothèses sont de la forme x = 0, ce qui permet de conserver la décidabilité) et il faut montrer que les exécutions du programme sont toutes des exécutions de l automate. Il s agit donc de démontrer qu une expression de la forme x y est un théorème sous certaines hypothèses dans OAT. Une procédure de décision peut être utilisée, comme c est le cas dans notre méthode si on la restreint aux systèmes finis. Notre approche avec la deuxième définition de satisfaction est par contre meilleure. D abord, elle permet d exprimer et de vérifier des propriétés sur les états et aussi des propriétés arborescentes. De plus, comme nous l avons expliqué, il est beaucoup plus facile de démontrer une expression de la forme x = 0 qu une de la forme x y. Enfin, notre approche permet de traiter les PDS qui peuvent représenter des programmes récursifs, ce que ne permet pas la méthode de Bolduc et Desharnais. À notre connaissance, notre méthode est la seule méthode axiomatique pour la vérification des PDS. La méthode que nous connaissons qui s approche le plus de la nôtre est celle présentée au chapitre 2 et qui provient de Schwoon [42]. Cette méthode effectue le produit synchronisé d un PDS et d un automate de Büchi qui représente les exécutions qui violent la propriétédésirée. Le résultat de ce produit est un PDS de Büchi et ce dernier doit avoir un langage vide pour que la propriété soit satisfaite. Il existe un algorithme pour vérifier cela. Cette méthode ressemble beaucoup à notre méthode si on utilise la deuxième définition de satisfaction. L équivalent du produit synchronisé dans notre méthode est le fait d interpréter l expression E (qui représente le langage de l automate de Büchi) sur la matrice qui représente le diagramme de transition du PDS. Dans notre méthode, le fait d utiliser l expression du langage de l automate plutôt que

88 Chapitre 4. Vérification des systèmes à pile au moyen des algèbres de Kleene 83 l automate lui-même est sûrement un désavantage puisque l expression peut être assez grosse par rapport à l automate. Pour ce qui est de la partie qui consiste àvérifier que le PDS de Büchi a un langage vide, elle se traduit par le fait de vérifier dans notre méthode que l expression IE M =0estunthéorème. Évidemment, les deux méthodes donnent le même résultat à condition que la nôtre soit complète. Dans ce cas, l expression IE M peut être ramenée àunpdsdebüchi et l algorithme pour vérifier que ce dernier a un langage vide peut être utilisé. Comme la méthode de Schwoon, la nôtre permet de vérifier des propriétés sur les états dont les propositions atomiques sont interprétées par des valuations régulières correspondant à celles pouvant être exprimées par la logique CTL. Notre méthode permet de vérifier des propriétés sur les actions, ce que ne permet pas la méthode de Schwoon, quoiqu il serait facile de la modifier pour qu elle le fasse en utilisant l idée présentée dans [8] et que nous avons brièvement expliquée au chapitre 2.

89 Chapitre 5 Implantation Nous avons implanté un prototype d application pouvant évaluer des expressions sur divers modèles d OAD. Cette application prend en entrée une liste d expressions à évaluer et retourne une liste de valeurs, sous forme d un code L A TEX, correspondant au résultat de l évaluation de chaque expression. L application, qui est en fait un simple interpréteur, a été développée à l aide du langage Java. L implantation se divise en deux parties. 1. La définition d une grammaire attribuée dont les règlesdeproductiondéfinissent les expressions que l application peut évaluer et les actions sémantiques définissent comment évaluer ces expressions (section 5.1). 2. La programmation d un ensemble de classes définissant les éléments de divers types d OAD et comment évaluer les opérations sur ces derniers. Des instances de ces classes, représentant le résultat de l évaluation d une sous-expression, sont associées aux symboles non terminaux dans l arbre syntaxique au cours de l interprétation (section 5.2). 5.1 Analyse lexicale et syntaxique La grammaire attribuée définit les expressions acceptées par le programme. Pour cette partie, les outils JLex 1 et Cup 2 ont été utilisés pour générer respectivement l ana

90 Chapitre 5. Implantation 85 lyseur lexical et l analyseur syntaxique. Voici le fichier qui décrit les symboles terminaux du langage et qui a été fourni à JLex. package Kleene; import java_cup.runtime.symbol; %% %cup %eofval{ return new Symbol(sym.EOF); %eofval} %% <YYINITIAL> ";" { return new Symbol(sym.FIN); } <YYINITIAL> "+" { return new Symbol(sym.SUP); } <YYINITIAL> "*" { return new Symbol(sym.FTR); } <YYINITIAL> "^" { return new Symbol(sym.OMEGA); } <YYINITIAL> "." { return new Symbol(sym.COMP); } <YYINITIAL> "\neg" { return new Symbol(sym.NEG); } <YYINITIAL> "\dom" { return new Symbol(sym.DOM); } <YYINITIAL> "(" { return new Symbol(sym.PARENG); } <YYINITIAL> ")" { return new Symbol(sym.PAREND); } <YYINITIAL> "[" { return new Symbol(sym.CROCHETG); } <YYINITIAL> "]" { return new Symbol(sym.CROCHETD); } <YYINITIAL> "," { return new Symbol(sym.VIRGULE); } <YYINITIAL> ":=" { return new Symbol(sym.AFFECT); } <YYINITIAL> "\mat" { return new Symbol(sym.MAT); } <YYINITIAL> "\1" { return new Symbol(sym.UN); } <YYINITIAL> "\0" { return new Symbol(sym.ZERO); } <YYINITIAL> [0-9]+ { return new Symbol(sym.NAT, new Integer(yytext())); } <YYINITIAL> [A-Z]+[0-9A-Z]* { return new Symbol(sym.VAR, new String(yytext())); } <YYINITIAL> [a-z]+[0-9a-z]* { return new Symbol(sym.ALPHANUM, new String(yytext())); } <YYINITIAL> [ \t\r\n\f] { /* caractères à ignorer. */ } <YYINITIAL>. { System.err.println("Caractère illégal: "+yytext()); } Voici le fichier qui décrit les règles de production et les actions sémantiques du langage. Il a été fourni à Cup. Des commentaires dans le fichier expliquent l utilité de chaque règle. package Kleene; import java_cup.runtime.*; import java.util.hashtable; import java.util.arraylist; import Kleene.KleeneElem; action code {: Hashtable variables = new Hashtable(); :} parser code {:

91 Chapitre 5. Implantation 86 :} public static void main(string args[]) throws Exception { new parser(new Yylex(System.in)).parse(); } terminal FIN, SUP, FTR, OMEGA, NEG, COMP, DOM, PARENG, PAREND, CROCHETG, CROCHETD, VIRGULE, AFFECT, MAT, UN, ZERO; terminal Integer NAT; terminal String VAR, ALPHANUM; non terminal liste_expr, expr; non terminal KleeneElem expr_kleene, expr_mat, expr_lan; non terminal ArrayList liste_kleene; precedence left SUP; precedence left COMP; precedence left NEG; precedence left DOM; precedence left FTR; precedence left OMEGA; liste_expr expr expr_kleene ::= liste_expr:e FIN expr:f expr:e ; ::= VAR:x AFFECT expr_kleene:e {: //Ajoute à la table de hachage que la variable x a la //valeur e et affiche cette information. variables.put(x,e); System.out.println("$\\mathit{" + x + "}=" + e + "$\n"); :} expr_kleene:e {: //Affiche la valeur e. System.out.println("$" + e + "$\n"); :} ; ::= expr_kleene:e SUP expr_kleene:f {: //Calcule e + f. RESULT = e.sup(f); :} expr_kleene:e COMP expr_kleene:f {: //Calcule la composition de e et f. RESULT = e.comp(f); :} expr_kleene:e FTR {: //Calcule l étoile de Kleene sur e. RESULT = e.ftr(); :} expr_kleene:e OMEGA {: //Calcule l opération oméga sur e. RESULT = e.omega(); :} NEG expr_kleene:e {: //Calcule le complément de e par rapport à 1. RESULT = e.neg(); :} DOM expr_kleene:e {: //Calcule le domaine de e. RESULT = e.dom(); :} PARENG expr_kleene:e PAREND {: //Retourne la valeur e. RESULT = e;:} VAR:x {: //Retourne la valeur de la variable x selon les informations //contenues dans la table de hachage. RESULT = (KleeneElem) variables.get(x); :}

92 Chapitre 5. Implantation 87 expr_mat:e {: //Retourne la valeur e. RESULT = e; :} expr_lan:e {: //Retourne la valeur e. RESULT = e; :} ; liste_kleene expr_mat expr_lan ::= liste_kleene:e VIRGULE expr_kleene:f {: //Ajoute f à la liste e. RESULT = e; RESULT.add(f); :} expr_kleene:e {: //Crée une liste contenant e. RESULT = new ArrayList(); RESULT.add(e); :} {: //Crée une liste vide. RESULT = new ArrayList(); :} ; ::= MAT PARENG NAT:m VIRGULE NAT:n VIRGULE CROCHETG liste_kleene:e CROCHETD PAREND {: //Retourne la matrice de m lignes et n colonnes dont les entrées, //énumérées ligne par ligne, sont les éléments de la liste e. RESULT = new Matrice(m.intValue(),n.intValue(),e); :} ; ::= ALPHANUM:e {: //Retourne le langage contenant le symbole e. RESULT = new ExpReg(e); :} NAT:n {: //Retourne le langage contenant le symbole n. RESULT = new ExpReg(n.toString()); :} ZERO {: //Retourne le langage vide. RESULT = new ExpReg(); :} UN {: //Retourne le langage contenant la cha^ıne vide. RESULT = new ExpReg(); RESULT.setUn(true); :} ; En plus d accepter les expressions àévaluer, la grammaire donne la possibilité d écrire des affectations. L usager peut donc conserver le résultat d une expression évaluée pour le réutiliser plus tard. L interpréteur garde ces résultats dans une table de hachage tout au long de son exécution. 5.2 Implantation de diverses OAD Cette partie correspond à un ensemble de classes décrivant les éléments de diverses OAD et les opérations sur ces éléments. Des instances de ces classes sont associées aux

93 Chapitre 5. Implantation 88 symboles non terminaux au cours de l interprétation. Il y a d abord une classe abstraite qui représente un élément d une OAD quelconque. Pour chaque type d OAD implantée, une sous-classe de cette classe a été définie. Les types d OAD ayant été implantés sont les langages réguliers de séquences finies et infinies non gardées, les ensembles finis, les relations binaires sur un ensemble fini et les matrices dont les entrées sont des éléments d une OAD implantée. Les matrices sur des ensembles finis peuvent résoudre des problèmes d analyse de flot de données sur des programmes non récursifs en utilisant la méthode de Fernandes et Desharnais [19]. Autrement dit, notre application implante cette méthode. Pour la méthode de vérification de modèles décrite dans ce mémoire, seules les matrices et les langages sont utiles. Nous nous limiterons à ces deux modèles dans nos explications. D ailleurs, la grammaire qui a été décrite à la section 5.1 est celle d une version de l application qui ne traite que les langages et les matrices. Cette implantation ne permet pas de vérifier des PDS, mais seulement des systèmes finis puisque l algèbre permettant de représenter des manipulations de piles n a pas été implantée. Voici quelques détails à propos de l implantation des matrices et des langages. Les matrices sont représentées au moyen de deux entiers correspondant respectivement au nombre de lignes et de colonnes ainsi que d un vecteur qui contient l ensemble des entrées de la matrice. L amélioration la plus importante à apporter pour un gain d efficacité serait sûrement à ce niveau. De façon générale, on peut supposer que la majorité des entrées des matrices représentant de vrais programmes sont égales à 0. Ces matrices sont appelées matrices creuses [40]. Il existe des structures de données et des algorithmes plus efficaces que pour la représentation classique dans un tel cas. En ce qui a trait aux langages, ils sont implantés au moyen d une simple chaîne de caractères correspondant à une expression ω-régulière qui les définit. Cette représentation permet peu de manipuler les opérations, mais elle est suffisante pour vérifier qu un système fini satisfait une propriété en utilisant la deuxième définition de satisfaction (définition 4.6). La raison de cela est, comme nous l avons mentionné à la section 4.5, que ce problème se résout en faisant un simple calcul. L application permet aussi de trouver tous les états d un système fini qui satisfont une propriété donnée. Pour pouvoir appliquer des lois sur les expressions ω-régulières, il faudrait les représenter au moyen de leur arbre syntaxique. Il serait aussi possible de représenter les langages au moyen d automates. Voici un exemple d utilisation de l application. (5.1) Exemple. Reprenons le PDS (I, M) et les expressions E et E utilisés aux

94 Chapitre 5. Implantation 89 exemples 4.9 et RappelonsqueE = a pa ω, E =(pa) ω, ( ) a a I =(ε 0)=(1 0), M = et p M = 0 a ( ) Rappelons aussi que ε =1d après 4.2 puisque l alphabet de pile est vide. Dans notre application, il n est pas possible d effectuer l interprétation par rapport à M. Il faut le faire manuellement. Remarquons que a M = M. Nousreprésenterons I, a M et p M respectivement par les variables I, AM et PM (AM et PM sont des variables et non le résultat de la composition de deux variables). Nous évaluerons les expressions IM ω, IE M et E M déjà calculées aux exemples 4.9 et Les deux dernières expressions, une fois l interprétation par rapport à M effectuée, sont égales à Ia M p Ma ω M et (p Ma M ) ω.voici le fichier d entrée pour définir, dans l ordre, I, a M et p M et évaluer les trois expressions IM ω, Ia M p Ma ω M et (p Ma M ) ω. I := \mat(1,2,[\1,\0]); AM := \mat(2,2,[a,a,\0,a]); PM := \mat(2,2,[\0,\0,\0,\1]); I.AM^; I.AM*.PM.AM^; \dom((\negpm.am)^) Voici les résultats retournés par l application. I =(1 0) ( ) a a AM = 0 a ( ) 0 0 PM = 0 1 ( a ω + a a a ω ) a a a a ω ) ( ) En ce qui a trait aux deux premières expressions évaluées, l entrée de la matrice est égale à a ω d après les lois de l opérateur ω. C est ce que nous avions trouvé à l exemple 4.9. L application ne fait pas cette simplification. Enfin, la dernière expression évaluée donne le même matrice qu à l exemple 4.13, ce qui signifie que la propriété considérée est satisfaite dans l état p 1, mais pas dans l état p 2.

95 Chapitre 5. Implantation 90 Il est possible d étendre l implantation afin de pouvoir vérifier tous les PDS en utilisant la deuxième définition de satisfaction (définition 4.6). Il suffit d implanter partiellement le modèle d OAD décrit au chapitre 4. Tout ce que l interpréteur doit être en mesure de faire, c est de découvrir, lorsqu une expression correspondant à l entrée unique de la matrice IE M est entrée, si cette expression est égale à 0 ou si ce n est pas le cas. Pour faire cela, dans le cas où l expression ne contient pas de domaine ni de complément, il suffit d amener l expression sous forme d un automate et d enlever les actions de contrôle sur les transitions afin d obtenir un PDS de Büchi. La dernière transformation ne modifie pas le fait que l automate a ou non un langage vide. Il faut ensuite vérifier si ce dernier a un langage vide en utilisant l algorithme donnéà la section Si c est le cas, l interpréteur retourne la valeur 0 puisque l expression entrée au départ est égale à 0. Sinon il peut retourner, par exemple, l expression telle qu entrée au départ afin de signifier que cette dernière n est pas égale à 0. Dans le premier cas, le PDS (I, M) satisfait E, alors que c est l inverse dans le second. Il est important de noter que, d après la méthode utilisée, l application a raisonné defaçon purement sémantique, comme elle le fait d ailleurs pour les autres modèles d OAD implantés. Cela veut dire que lorsque l application retourne 0, il n est pas nécessairement possible de démontrer que l expression entrée au départ est égale à0aveclesystème algébrique défini au chapitre 4. Pour qu il en soit ainsi, il faudrait prouver la complétude de ce système algébriquepourleproblèmedevérification des PDS.

96 Chapitre 6 Conclusion 6.1 Résumé Dans ce mémoire, nous avons présenté une approche algébrique permettant de représenter un système à pile, d énoncer une propriété à propos des exécutions de ce dernier et de vérifier si elle est satisfaite par le système à pile. Le formalisme utilisé est celui des algèbres de Kleene, plus particulièrement d une extension appelée omégaalgèbre avec domaine. L utilisation de cette extension nous permet d exprimer n importe quelle propriété de la logique CTL avec une sémantique basée à la fois sur les états et les actions du modèle. La beauté de ce formalisme réside dans le fait qu on n utilise pas de structures hétérogènes telles que les systèmes de transitions étiquetées et les formules d une logique temporelle comme c est fait de façon habituelle en vérification de modèles. Le système à pile est représenté par une matrice sur une oméga-algèbre avec domaine tandis que la propriété àvérifier est représentée par une expression d une oméga-algèbre avec domaine qui, une fois interprétée, est une expression sur des matrices. Afin de prouver que le système satisfait la propriété exprimée, il suffit de démontrer qu une certaine équation faisant intervenir cette expression est un théorème. Nous avons expliqué pourquoi notre méthode de vérification de systèmes à pile est intègre, c est-à-dire que lorsqu on démontre qu un système à pile satisfait une propriété donnée en l utilisant, c est le cas en réalité. Nous avons aussi montré que notre méthode est complète pour un certain sous-ensemble de propriétés lorsqu on se limite aux systèmes finis, un cas particulier de système à pile. Cela signifie que lorsqu un système fini satisfait une propriété, il est possible de montrer que ce système satisfait la propriété en utilisant notre méthode algébrique. Nous avons aussi implanté notre méthode pour la vérification des systèmes finis.

97 Chapitre 6. Conclusion Travaux futurs Nous n avons pas été en mesure de démontrer la complétude de notre méthode pour les systèmes à pile en général. Il faudrait trouver une telle preuve. Si cela s avère difficile ou impossible (notre méthode peut être incomplète), il serait possible d essayer de trouver cette preuve en supposant que l expression représentant la propriété à vérifier provient d une extension des algèbres de Kleene moins expressive que les oméga-algèbres avec domaine. Cela voudrait dire que notre méthode est complète, mais pour un ensemble de propriétés plus restreint que celui que nous pouvons exprimer. On pourrait étudier la possibilité de modifier l axiomatisation de l algèbre pour être en mesure de représenter et de vérifier un éventail de propriétés encore plus grand. Nous avons entre autres présenté brièvement le mu-calcul modal et les logiques non régulières. Certaines propriétés pouvant être exprimées au moyen de ces logiques ne peuvent pas l être avec notre méthode. Il serait aussi possible d étudier la possibilité de représenter une plus grande classe de modèles que les systèmes à pile. Par exemple, on pourrait essayer de représenter des systèmes à plusieurs piles. Ces systèmes ont la même expressivité que les machines de Turing [21]. La méthode permettrait donc de démontrer qu une machine de Turing satisfait certaines propriétés en se servant des axiomes. Avoir un système d axiomes pouvant servir à démontrer qu une machine de Turing satisfait une propriété de LTL ou CTL serait intéressant puisqu il s agit d un problème indécidable. Nous pourrions aussi tenter de représenter des réseaux de Petri. Un réseau de Petri est en fait un système à pile (selon la définition 4.1) pourlequel l ordre des éléments dans la pile n a pas d importance [6]. Autrement dit, il s agit d un système de transitions ayant une structure de multi-ensemble au lieu d une pile. Il serait aussi possible d étudier la possibilité d utiliser une représentation des systèmes à pile autre que les matrices. À la section 4.3, nousavonsdécouvert que la première définition de satisfaction (définition 4.6) est non intègre lorsqu on spécifie des propriétés àvérifier àproposdesétats puisque la structure de matrice ne conserve pas les états parcourus dans une exécution. Une autre représentation pourrait peut-être éviter ce problème. Enfin, lorsque la définition 4.1 de système à pile est utilisée, tout système à pile peut être ramené àunsystème à pile ayant un seul point de contrôle en ajoutant un nouveau symbole de pile pour chaque point de contrôle ; ces symboles de pile peuvent être empilés sur le dessus de la pile afin de représenter le point de contrôle courant [6]. Cela signifie donc que tout système à pile peut-être représenté au moyen d une matrice ayant une seule entrée, ce qui revient en fait à ne pas utiliser de matrice du tout. Le fait

98 Chapitre 6. Conclusion 93 de ne pas utiliser de matrice rendrait notre méthode algébrique encore plus homogène. De plus, cela pourrait aider à démontrer certaines propriétés qui demandent autrement un raisonnement particulier à propos des matrices tel que le théorème 4.12 qui montre l équivalence des deux définitions de satisfaction.

99 Bibliographie [1] R. Backhouse, D. Kozen et B. Möller. Applications of Kleene algebra. Rap. tech., Schloss Dagstuhl international conference and research center for computer science, [2] H. Bherer, J. Desharnais, M. Frappier et R. St-Denis. Investigating discrete controllability with Kleene algebra. Dans R. Berghammer, B. Möller et G. Struth, éds. RelMiCS 7 Relational and Kleene-Algebraic Methods in Computer Science, vol de Lecture Notes in Computer Science, p Springer, [3] C. Bolduc. Oméga-algèbre Théorie et application en vérification de programmes. Mémoire de maîtrise, Université Laval, Québec, Canada, [4] C. Bolduc et J. Desharnais. Static analysis of programs using omega algebra with tests. Dans W. MacCaull, M. Winter et I. Düntsch, éds. 8th International Seminar on Relational Methods in Computer Science, vol de Lecture Notes in Computer Science, p Springer, fév [5] A. Bouajjani, J. Esparza et O. Maler. Reachability analysis of pushdown automata : Application to model-checking. Dans A. W. Mazurkiewicz et J. Winkowski, éds. International Conference on Concurrency Theory, vol de Lecture Notes in Computer Science, p Springer, [6] O. Burkart, D. Caucal, F. Moller et B. Steffen. Verification on infinite structures. Dans J. A. Bergstra, A. Ponse et S. A. Smolka, éds. Handbook of Process Algebra, p Elsevier, [7] O. Burkart et B. Steffen. Composition, decomposition and model checking of pushdown processes. Nordic J. of Computing, 2(2):89 125, [8] S. Chaki, E. M. Clarke, J. Ouaknine,N. Sharygina et N. Sinha. State/eventbased software model checking. Dans E. Boiten, J. Derrick et G. Smith, éds. Proceedings of IFM 04, vol de Lecture Notes in Computer Science, p Springer, avr [9] E. Cohen. Hypotheses in Kleene algebra. Rap. tech. TM-ARH , Bellcore, Disponible à citeseer.nj.nec.com/1688.html.

100 Bibliographie 95 [10] E. Cohen. Separation and reduction. Dans R. Backhouse et J. N. Oliveira, éds. Proceedings of the 5th International Conference on Mathematics of Program Construction, vol de Lecture Notes in Computer Science, p Springer, [11] J. H. Conway. Regular Algebra and Finite Machines. Chapman and Hall, London, [12] S. Crvenkovic, I.Dolinka et Z. Ésik. The variety of Kleene algebras with conversion is not finitely based. Theoretical Comput. Sci., 230: , nov [13] B. A. Davey et H. A. Priestley. Introduction to Lattices and Order. Cambridge University Press, [14] J.-L. De Carufel. Une vision structurée des structures algébriques en sémantique des programmes. Proposition de recherche, déc [15] J. Desharnais. Kleene algebra with relations. Dans R. Berghammer, B. Möller et G. Struth, éds. RelMiCS 7 Relational and Kleene-Algebraic Methods in Computer Science, vol de Lecture Notes in Computer Science, p Springer, [16] J. Desharnais, B. Möller et F. Tchier. Kleene under a demonic star. Dans T. Rus,éd.. Proc. of the 9th Internat. Conf. on Algebraic Methodology and Software Technology (AMAST 00), vol de Lecture Notes in Computer Science, p Springer, [17] J. Desharnais, B.Möller et G. Struth. Kleene algebra with domain. Paraîtra dans ACM Transaction on Computational Logic (TOCL). Version préliminaire Rap. tech , Institut für Informatik, Universität Augsburg, juin Disponible à [18] T. Ehm. Pointer Kleene algebra. Dans R. Berghammer, B. Möller et G. Struth, éds. RelMiCS 7 Relational and Kleene-Algebraic Methods in Computer Science, vol de Lecture Notes in Computer Science, p Springer, [19] T. Fernandes et J. Desharnais. Describing gen/kill static analysis techniques with Kleene algebra. Dans D. Kozen, éd.. Mathematics of Program Construction, vol de Lecture Notes in Computer Science, p Springer, [20] D. Gries et F. B. Schneider. A Logical Approach to Discrete Math. Text and monographs in computer science. Springer, [21] D. Harel, D.Kozen et J. Tiuryn. Dynamic Logic. MIT Press, [22] G. J. Holzmann. The model checker SPIN. IEEE Trans. Softw. Eng., 23(5): , [23] P. Jipsen. From semirings to residuated Kleene lattices. Studia Logica, 76(2): , 2004.

101 Bibliographie 96 [24] S. C. Kleene. Representation of events in nerve nets and finite automata. Dans C. E. Shannon et J. McCarthy, éds. Automata Studies, p University Press, [25] D. Kozen. On Kleene algebras and closed semirings. Dans B. Rovan, éd.. Mathematical Foundations of Computer Science, vol. 452 de Lecture Notes in Computer Science, p Springer, [26] D. Kozen. On action algebras. Dans J. van Eijick et A. Visser, éds. Logic and Information Flow, p MIT Press, [27] D. Kozen. A completeness theorem for Kleene algebras and the algebra of regular events. Information and Computation, 110: , mai [28] D. Kozen. Kleene algebra with tests. ACM Transactions on Programming Languages and Systems (TOPLAS), 19(3): , mai [29] D. Kozen. Typed Kleene algebra. Rap. tech , Cornell University, mars Disponible à [30] D. Kozen. On Hoare logic and Kleene algebra with tests. ACM Transactions on Computational Logic, 1(1):60 76, [31] D. Kozen. Kleene algebra with tests and the static analysis of programs. Rap. tech , Cornell University, nov Disponible à [32] D. Kozen. Some results in dynamic model theory. Sci. Comput. Program., 51(1 2):3 22, [33] D. Kozen et M.-C. Patron. Certification of compiler optimizations using Kleene algebra with tests. Dans J. W. Lloyd, V. Dahl, U. Furbach, M. Kerber, K.-K. Lau, C. Palamidessi, L. M. Pereira, Y. Sagiv et P. J. Stuckey, éds. Computational Logic, vol de Lecture Notes in Artificial Intelligence, p Springer, [34] D. Kozen et F. Smith. Kleene algebra with tests : Completeness and decidability. Dans D. van Dalen et M. Bezem, éds. Computer Science Logic (CSL 96), vol de Lecture Notes in Computer Science. Springer. [35] V. Mathieu et J. Desharnais. Verification of pushdown systems using omega algebra with domain. Dans W. MacCaull, M. Winter et I. Düntsch, éds. 8th International Seminar on Relational Methods in Computer Science, vol de Lecture Notes in Computer Science, p Springer, fév [36] B. Möller. Typed Kleene algebras. Rap. tech , Institut für Informatik, Universität Augsburg, Disponible à citeseer.nj.nec.com/ html. [37] B. Möller et G. Struth. Modal Kleene algebra and partial correctness. Rap. tech , Institut für Informatik, Universität Augsburg, Disponible à

102 Bibliographie 97 [38] B. Möller. Lazy Kleene algebra. Dans D. Kozen, éd.. Mathematics of Program Construction, vol de Lecture Notes in Computer Science, p Springer, [39] V. N. Redko. On defining relations for the algebra of regular events. Ukrain. Mat. Z., 16: , En russe. [40] Y. Saad. Iterative Methods for Sparse Linear Systems. PWS, [41] A. Salomaa. Two complete axiom systems for the algebra of regular events. J. ACM, 13(1): , jan [42] S. Schwoon. Model-Checking Pushdown Systems. Thèse de doctorat, Technische Universität München, [43] J. von Wright. From Kleene algebra to refinement algebra. Dans E. Boiten et B. Möller, éds. Mathematics of Program Construction, vol de Lecture Notes in Computer Science, p Springer, [44] I. Walukiewicz. Pushdown processes : Games and model checking. Dans R. Alur et T. A. Henzinger, éds. CAV 96, vol de Lecture Notes in Computer Science, p Springer, 1996.

103 Index algèbre de Kleene, 27 de Kleene -continue, 29 de Kleene avec domaine, 34 de Kleene avec inverse, 38 de Kleene avec tests, 32 de Kleene sur un treillis complet, 30 de Kleene typée, 38 de piles et d actions, 54 demi-anneau, 25 demi-anneau fermé, 30 monoïde, 25 oméga-algèbre, 36 oméga-algèbre avec domaine, 36 oméga-algèbre avec tests, 36 S-algèbre, 30 analyse de programmes dynamique, 1 flot de contrôle, 2 flot de données, 2, 52, 88 interprocédurale, 2 intraprocédurale, 2 statique, 1, 52, 82 automate de Büchi, 15, 37 Bolduc, 82 cadredekripke,38 Cohen, 28, 34, 36 Conway, 24, 30 Desharnais, 30, 34, 82, 88 expression ω, 37 ω-régulière, 37 ω-régulière standard, 37 Fernandes, 88 Kleene, 23 Kozen, 24, 32, 79, 80, 82 langage ω-régulier, 15, 37 modèle algébrique, 25, 42 séquence gardée, 43 logiciels Cup, 84 JLex, 84 Moped, 21 Spin, 15 logique arborescente, 10 CTL, 11, 17 CTL, 13, 17, 18, 65 HML, 10 linéaire, 8 LTL, 9, 15, 18, 64 mu-calcul linéaire, 10, 15, 18 mu-calcul modal, 12, 17, 18 non régulière, 14 propositionnelle de Hoare, 52 propositionnelle dynamique, 52 représentation algébrique, 64 SE-LTL, 16 temporelle, 7 WL, 9 machinedeturing,92

104 Index 99 modèle d algèbres implantation, 84 langages, 25, 42 matrices, 45 relations binaires, 25, 43 traces, 38 produit synchronisé, 16, 20 réseau de Petri, 92 Redko, 23 Salomaa, 24 Schwoon, 19, 82 système à pile définition, 7, 54 représentation algébrique, 63 vérification, 18 vérification algébrique, 66 système de transitions étiquetées définition, 6 exécution, 6, 14 système fini définition, 6 vérification, 14 vérification algébrique, 80 vérification algébrique algèbre de piles et d actions, 54 complétude, 79 implantation, 84 intégrité, 79 interprétation, 66 représentation de propriété, 64 représentation de système à pile, 63 satisfaction, 67 système fini, 80 vérification de modèles, 4, 5 valuation régulière, 20 simple, 19

Model checking temporisé

Model checking temporisé Model checking temporisé Béatrice Bérard LAMSADE Université Paris-Dauphine & CNRS [email protected] ETR 07, 5 septembre 2007 1/44 Nécessité de vérifier des systèmes... 2/44 Nécessité de vérifier

Plus en détail

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,

Plus en détail

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

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

Plus en détail

MIS 102 Initiation à l Informatique

MIS 102 Initiation à l Informatique MIS 102 Initiation à l Informatique Responsables et cours : Cyril Gavoille Catherine Pannier Matthias Robine Marc Zeitoun Planning : 6 séances de cours 5 séances de TD (2h40) 4 séances de TP (2h40) + environ

Plus en détail

Limites finies en un point

Limites finies en un point 8 Limites finies en un point Pour ce chapitre, sauf précision contraire, I désigne une partie non vide de R et f une fonction définie sur I et à valeurs réelles ou complees. Là encore, les fonctions usuelles,

Plus en détail

Calculabilité Cours 3 : Problèmes non-calculables. http://www.irisa.fr/lande/pichardie/l3/log/

Calculabilité Cours 3 : Problèmes non-calculables. http://www.irisa.fr/lande/pichardie/l3/log/ Calculabilité Cours 3 : Problèmes non-calculables http://www.irisa.fr/lande/pichardie/l3/log/ Problèmes et classes de décidabilité Problèmes et classes de décidabilité Nous nous intéressons aux problèmes

Plus en détail

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

Chapitre 1 Régime transitoire dans les systèmes physiques Chapitre 1 Régime transitoire dans les systèmes physiques Savoir-faire théoriques (T) : Écrire l équation différentielle associée à un système physique ; Faire apparaître la constante de temps ; Tracer

Plus en détail

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

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test Grandes lignes Analyseur Statique de logiciels Temps RÉel Embarqués École Polytechnique École Normale Supérieure Mercredi 18 juillet 2005 1 Présentation d 2 Cadre théorique de l interprétation abstraite

Plus en détail

Programmation linéaire

Programmation linéaire 1 Programmation linéaire 1. Le problème, un exemple. 2. Le cas b = 0 3. Théorème de dualité 4. L algorithme du simplexe 5. Problèmes équivalents 6. Complexité de l Algorithme 2 Position du problème Soit

Plus en détail

Utilisation des tableaux sémantiques dans les logiques de description

Utilisation des tableaux sémantiques dans les logiques de description Utilisation des tableaux sémantiques dans les logiques de description IFT6281 Web Sémantique Jacques Bergeron Département d informatique et de recherche opérationnelle Université de Montréal [email protected]

Plus en détail

Fondements de l informatique Logique, modèles, et calculs

Fondements de l informatique Logique, modèles, et calculs Fondements de l informatique Logique, modèles, et calculs Cours INF423 de l Ecole Polytechnique Olivier Bournez Version du 20 septembre 2013 2 Table des matières 1 Introduction 9 1.1 Concepts mathématiques........................

Plus en détail

Model checking temporisé Algorithmes efficaces et complexité

Model checking temporisé Algorithmes efficaces et complexité Model checking temporisé Algorithmes efficaces et complexité (Mémoire d habilitation à diriger des recherches) François Laroussinie Laboratoire Spécification et Vérification ENS de Cachan & CNRS UMR 8643

Plus en détail

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

Suites numériques 3. 1 Convergence et limite d une suite Suites numériques 3 1 Convergence et limite d une suite Nous savons que les termes de certaines suites s approchent de plus en plus d une certaine valeur quand n augmente : par exemple, les nombres u n

Plus en détail

Modélisation et Simulation

Modélisation et Simulation Cours de modélisation et simulation p. 1/64 Modélisation et Simulation G. Bontempi Département d Informatique Boulevard de Triomphe - CP 212 http://www.ulb.ac.be/di Cours de modélisation et simulation

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN Les contenues de ce document sont la propriété exclusive de la société REVER. Ils ne sont transmis qu à titre d information et ne peuvent en aucun cas

Plus en détail

Résolution d équations non linéaires

Résolution d équations non linéaires Analyse Numérique Résolution d équations non linéaires Said EL HAJJI et Touria GHEMIRES Université Mohammed V - Agdal. Faculté des Sciences Département de Mathématiques. Laboratoire de Mathématiques, Informatique

Plus en détail

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

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2) Objectifs du cours d aujourd hui Informatique II : Cours d introduction à l informatique et à la programmation objet Complexité des problèmes Introduire la notion de complexité d un problème Présenter

Plus en détail

Contribution à l algorithmique de la vérification

Contribution à l algorithmique de la vérification Contribution à l algorithmique de la vérification (Mémoire d habilitation à diriger des recherches) Jean-Michel COUVREUR Laboratoire Bordelais de Recherche en Informatique CNRS UMR 5800 - Université Bordeaux

Plus en détail

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas [email protected] PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

Formula Negator, Outil de négation de formule.

Formula Negator, Outil de négation de formule. Formula Negator, Outil de négation de formule. Aymerick Savary 1,2, Mathieu Lassale 1,2, Jean-Louis Lanet 1 et Marc Frappier 2 1 Université de Limoges 2 Université de Sherbrooke Résumé. Cet article présente

Plus en détail

Cours de Master Recherche

Cours de Master Recherche Cours de Master Recherche Spécialité CODE : Résolution de problèmes combinatoires Christine Solnon LIRIS, UMR 5205 CNRS / Université Lyon 1 2007 Rappel du plan du cours 16 heures de cours 1 - Introduction

Plus en détail

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

Chapitre 2 Le problème de l unicité des solutions Université Joseph Fourier UE MAT 127 Mathématiques année 2011-2012 Chapitre 2 Le problème de l unicité des solutions Ce que nous verrons dans ce chapitre : un exemple d équation différentielle y = f(y)

Plus en détail

Machines virtuelles Cours 1 : Introduction

Machines virtuelles Cours 1 : Introduction Machines virtuelles Cours 1 : Introduction Pierre Letouzey 1 [email protected] PPS - Université Denis Diderot Paris 7 janvier 2012 1. Merci à Y. Régis-Gianas pour les transparents Qu est-ce qu une

Plus en détail

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

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France. La NP-complétude Johanne Cohen PRISM/CNRS, Versailles, France. Références 1. Algorithm Design, Jon Kleinberg, Eva Tardos, Addison-Wesley, 2006. 2. Computers and Intractability : A Guide to the Theory of

Plus en détail

Introduction à la théorie des files d'attente. Claude Chaudet [email protected]

Introduction à la théorie des files d'attente. Claude Chaudet Claude.Chaudet@enst.fr Introduction à la théorie des files d'attente Claude Chaudet [email protected] La théorie des files d'attente... Principe: modélisation mathématique de l accès à une ressource partagée Exemples réseaux

Plus en détail

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

La demande Du consommateur. Contrainte budgétaire Préférences Choix optimal La demande Du consommateur Contrainte budgétaire Préférences Choix optimal Plan du cours Préambule : Rationalité du consommateur I II III IV V La contrainte budgétaire Les préférences Le choix optimal

Plus en détail

Eteindre. les. lumières MATH EN JEAN 2013-2014. Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

Eteindre. les. lumières MATH EN JEAN 2013-2014. Mme BACHOC. Elèves de seconde, première et terminale scientifiques : MTH EN JEN 2013-2014 Elèves de seconde, première et terminale scientifiques : Lycée Michel Montaigne : HERITEL ôme T S POLLOZE Hélène 1 S SOK Sophie 1 S Eteindre Lycée Sud Médoc : ROSIO Gauthier 2 nd PELGE

Plus en détail

LE PROBLEME DU PLUS COURT CHEMIN

LE PROBLEME DU PLUS COURT CHEMIN LE PROBLEME DU PLUS COURT CHEMIN Dans cette leçon nous définissons le modèle de plus court chemin, présentons des exemples d'application et proposons un algorithme de résolution dans le cas où les longueurs

Plus en détail

Les indices à surplus constant

Les indices à surplus constant Les indices à surplus constant Une tentative de généralisation des indices à utilité constante On cherche ici en s inspirant des indices à utilité constante à définir un indice de prix de référence adapté

Plus en détail

Vérification de programmes et de preuves Première partie. décrire des algorithmes

Vérification de programmes et de preuves Première partie. décrire des algorithmes Vérification de programmes et de preuves Première partie. décrire des algorithmes Yves Bertot September 2012 1 Motivating introduction A partir des années 1940, il a été compris que l on pouvait utiliser

Plus en détail

aux différences est appelé équation aux différences d ordre n en forme normale.

aux différences est appelé équation aux différences d ordre n en forme normale. MODÉLISATION ET SIMULATION EQUATIONS AUX DIFFÉRENCES (I/II) 1. Rappels théoriques : résolution d équations aux différences 1.1. Équations aux différences. Définition. Soit x k = x(k) X l état scalaire

Plus en détail

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Recherche opérationnelle Les démonstrations et les exemples seront traités en cours Souad EL Bernoussi Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Table des matières 1 Programmation

Plus en détail

Cours 1 : Qu est-ce que la programmation?

Cours 1 : Qu est-ce que la programmation? 1/65 Introduction à la programmation Cours 1 : Qu est-ce que la programmation? Yann Régis-Gianas [email protected] Université Paris Diderot Paris 7 2/65 1. Sortez un appareil qui peut se rendre

Plus en détail

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

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies INF 232: Langages et Automates Travaux Dirigés Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies Année Académique 2013-2014 Année Académique 2013-2014 UNIVERSITÉ JOSEPH

Plus en détail

Conception des systèmes répartis

Conception des systèmes répartis Conception des systèmes répartis Principes et concepts Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Octobre 2012 Gérard Padiou Conception des systèmes répartis 1 / 37 plan

Plus en détail

Calculer avec Sage. Revision : 417 du 1 er juillet 2010

Calculer avec Sage. Revision : 417 du 1 er juillet 2010 Calculer avec Sage Alexandre Casamayou Guillaume Connan Thierry Dumont Laurent Fousse François Maltey Matthias Meulien Marc Mezzarobba Clément Pernet Nicolas Thiéry Paul Zimmermann Revision : 417 du 1

Plus en détail

Programmes des classes préparatoires aux Grandes Ecoles

Programmes des classes préparatoires aux Grandes Ecoles Programmes des classes préparatoires aux Grandes Ecoles Filière : scientifique Voies : Mathématiques, physique et sciences de l'ingénieur (MPSI) Physique, chimie et sciences de l ingénieur (PCSI) Physique,

Plus en détail

Cours d Analyse. Fonctions de plusieurs variables

Cours d Analyse. Fonctions de plusieurs variables Cours d Analyse Fonctions de plusieurs variables Licence 1ère année 2007/2008 Nicolas Prioux Université de Marne-la-Vallée Table des matières 1 Notions de géométrie dans l espace et fonctions à deux variables........

Plus en détail

Image d un intervalle par une fonction continue

Image d un intervalle par une fonction continue DOCUMENT 27 Image d un intervalle par une fonction continue La continuité d une fonction en un point est une propriété locale : une fonction est continue en un point x 0 si et seulement si sa restriction

Plus en détail

Métriques de performance pour les algorithmes et programmes parallèles

Métriques de performance pour les algorithmes et programmes parallèles Métriques de performance pour les algorithmes et programmes parallèles 11 18 nov. 2002 Cette section est basée tout d abord sur la référence suivante (manuel suggéré mais non obligatoire) : R. Miller and

Plus en détail

Introduction à l étude des Corps Finis

Introduction à l étude des Corps Finis Introduction à l étude des Corps Finis Robert Rolland (Résumé) 1 Introduction La structure de corps fini intervient dans divers domaines des mathématiques, en particulier dans la théorie de Galois sur

Plus en détail

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

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 Communiquédepresse Mars2013 LeCollègedeFrancecréeunechairepérenned Informatique, Algorithmes,machinesetlangages, etnommeleprgérardberrytitulaire Leçoninauguralele28mars2013 2009avait marquéunpas importantdans

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

Plus en détail

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1 Chap 4: Analyse syntaxique 1 III- L'analyse syntaxique: 1- Le rôle d'un analyseur syntaxique 2- Grammaires non contextuelles 3- Ecriture d'une grammaire 4- Les méthodes d'analyse 5- L'analyse LL(1) 6-

Plus en détail

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

Université Paris-Dauphine DUMI2E 1ère année, 2009-2010. Applications Université Paris-Dauphine DUMI2E 1ère année, 2009-2010 Applications 1 Introduction Une fonction f (plus précisément, une fonction réelle d une variable réelle) est une règle qui associe à tout réel x au

Plus en détail

Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé

Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé EXERCICE 1 5 points Commun à tous les candidats 1. Réponse c : ln(10)+2 ln ( 10e 2) = ln(10)+ln ( e 2) = ln(10)+2 2. Réponse b : n 13 0,7 n 0,01

Plus en détail

Annexe 6. Notions d ordonnancement.

Annexe 6. Notions d ordonnancement. Annexe 6. Notions d ordonnancement. APP3 Optimisation Combinatoire: problèmes sur-contraints et ordonnancement. Mines-Nantes, option GIPAD, 2011-2012. [email protected] Résumé Ce document

Plus en détail

Chapitre 7. Récurrences

Chapitre 7. Récurrences Chapitre 7 Récurrences 333 Plan 1. Introduction 2. Applications 3. Classification des récurrences 4. Résolution de récurrences 5. Résumé et comparaisons Lectures conseillées : I MCS, chapitre 20. I Rosen,

Plus en détail

Rappels sur les suites - Algorithme

Rappels sur les suites - Algorithme DERNIÈRE IMPRESSION LE 14 septembre 2015 à 12:36 Rappels sur les suites - Algorithme Table des matières 1 Suite : généralités 2 1.1 Déition................................. 2 1.2 Exemples de suites............................

Plus en détail

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

Baccalauréat ES/L Amérique du Sud 21 novembre 2013 Baccalauréat ES/L Amérique du Sud 21 novembre 2013 A. P. M. E. P. EXERCICE 1 Commun à tous les candidats 5 points Une entreprise informatique produit et vend des clés USB. La vente de ces clés est réalisée

Plus en détail

VIII- Circuits séquentiels. Mémoires

VIII- Circuits séquentiels. Mémoires 1 VIII- Circuits séquentiels. Mémoires Maintenant le temps va intervenir. Nous avions déjà indiqué que la traversée d une porte ne se faisait pas instantanément et qu il fallait en tenir compte, notamment

Plus en détail

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

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007 Vision industrielle et télédétection - Détection d ellipses Guillaume Martinez 17 décembre 2007 1 Table des matières 1 Le projet 3 1.1 Objectif................................ 3 1.2 Les choix techniques.........................

Plus en détail

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

Définitions. Numéro à préciser. (Durée : ) Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.

Plus en détail

Le langage SQL Rappels

Le langage SQL Rappels Le langage SQL Rappels Description du thème : Présentation des principales notions nécessaires pour réaliser des requêtes SQL Mots-clés : Niveau : Bases de données relationnelles, Open Office, champs,

Plus en détail

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

Exercices - Polynômes : corrigé. Opérations sur les polynômes Opérations sur les polynômes Exercice 1 - Carré - L1/Math Sup - Si P = Q est le carré d un polynôme, alors Q est nécessairement de degré, et son coefficient dominant est égal à 1. On peut donc écrire Q(X)

Plus en détail

Chapitre 1 Qu est-ce qu une expression régulière?

Chapitre 1 Qu est-ce qu une expression régulière? Chapitre 1 Qu est-ce qu une expression régulière? Les ordinateurs n ont pas du tout la même conception des textes que nous : pour nous, un texte est un ensemble d idées couchées sur papier. Nous nous en

Plus en détail

Probabilité. Table des matières. 1 Loi de probabilité 2 1.1 Conditions préalables... 2 1.2 Définitions... 2 1.3 Loi équirépartie...

Probabilité. Table des matières. 1 Loi de probabilité 2 1.1 Conditions préalables... 2 1.2 Définitions... 2 1.3 Loi équirépartie... 1 Probabilité Table des matières 1 Loi de probabilité 2 1.1 Conditions préalables........................... 2 1.2 Définitions................................. 2 1.3 Loi équirépartie..............................

Plus en détail

Analyse stochastique de la CRM à ordre partiel dans le cadre des essais cliniques de phase I

Analyse stochastique de la CRM à ordre partiel dans le cadre des essais cliniques de phase I Analyse stochastique de la CRM à ordre partiel dans le cadre des essais cliniques de phase I Roxane Duroux 1 Cadre de l étude Cette étude s inscrit dans le cadre de recherche de doses pour des essais cliniques

Plus en détail

Techniques d interaction dans la visualisation de l information Séminaire DIVA

Techniques d interaction dans la visualisation de l information Séminaire DIVA Techniques d interaction dans la visualisation de l information Séminaire DIVA Zingg Luca, [email protected] 13 février 2007 Résumé Le but de cet article est d avoir une vision globale des techniques

Plus en détail

Trépier avec règle, ressort à boudin, chronomètre, 5 masses de 50 g.

Trépier avec règle, ressort à boudin, chronomètre, 5 masses de 50 g. PHYSQ 130: Hooke 1 LOI DE HOOKE: CAS DU RESSORT 1 Introduction La loi de Hooke est fondamentale dans l étude du mouvement oscillatoire. Elle est utilisée, entre autres, dans les théories décrivant les

Plus en détail

Rédiger et administrer un questionnaire

Rédiger et administrer un questionnaire Rédiger et administrer un questionnaire Ce document constitue une adaptation, en traduction libre, de deux brochures distinctes : l une produite par l American Statistical Association (Designing a Questionnaire),

Plus en détail

Raisonnement probabiliste

Raisonnement probabiliste Plan Raisonnement probabiliste IFT-17587 Concepts avancés pour systèmes intelligents Luc Lamontagne Réseaux bayésiens Inférence dans les réseaux bayésiens Inférence exacte Inférence approximative 1 2 Contexte

Plus en détail

CORRIGE LES NOMBRES DECIMAUX RELATIFS. «Réfléchir avant d agir!»

CORRIGE LES NOMBRES DECIMAUX RELATIFS. «Réfléchir avant d agir!» Corrigé Cours de Mr JULES v3.3 Classe de Quatrième Contrat 1 Page 1 sur 13 CORRIGE LES NOMBRES DECIMAUX RELATIFS. «Réfléchir avant d agir!» «Correction en rouge et italique.» I. Les nombres décimaux relatifs.

Plus en détail

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

Modèles à Événements Discrets. Réseaux de Petri Stochastiques Modèles à Événements Discrets Réseaux de Petri Stochastiques Table des matières 1 Chaînes de Markov Définition formelle Idée générale Discrete Time Markov Chains Continuous Time Markov Chains Propriétés

Plus en détail

Rapport d'analyse des besoins

Rapport d'analyse des besoins Projet ANR 2011 - BR4CP (Business Recommendation for Configurable products) Rapport d'analyse des besoins Janvier 2013 Rapport IRIT/RR--2013-17 FR Redacteur : 0. Lhomme Introduction...4 La configuration

Plus en détail

4.2 Unités d enseignement du M1

4.2 Unités d enseignement du M1 88 CHAPITRE 4. DESCRIPTION DES UNITÉS D ENSEIGNEMENT 4.2 Unités d enseignement du M1 Tous les cours sont de 6 ECTS. Modélisation, optimisation et complexité des algorithmes (code RCP106) Objectif : Présenter

Plus en détail

Correction du baccalauréat ES/L Métropole 20 juin 2014

Correction du baccalauréat ES/L Métropole 20 juin 2014 Correction du baccalauréat ES/L Métropole 0 juin 014 Exercice 1 1. c.. c. 3. c. 4. d. 5. a. P A (B)=1 P A (B)=1 0,3=0,7 D après la formule des probabilités totales : P(B)=P(A B)+P(A B)=0,6 0,3+(1 0,6)

Plus en détail

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

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes PLAN CYCLE DE VIE D'UN LOGICIEL EXPRESSION DES BESOINS SPÉCIFICATIONS DU LOGICIEL CONCEPTION DU LOGICIEL LA PROGRAMMATION TESTS ET MISE AU POINT DOCUMENTATION CONCLUSION C.Crochepeyre Génie Logiciel Diapason

Plus en détail

Chapitre 2. Eléments pour comprendre un énoncé

Chapitre 2. Eléments pour comprendre un énoncé Chapitre 2 Eléments pour comprendre un énoncé Ce chapitre est consacré à la compréhension d un énoncé. Pour démontrer un énoncé donné, il faut se reporter au chapitre suivant. Les tables de vérité données

Plus en détail

Filtrage stochastique non linéaire par la théorie de représentation des martingales

Filtrage stochastique non linéaire par la théorie de représentation des martingales Filtrage stochastique non linéaire par la théorie de représentation des martingales Adriana Climescu-Haulica Laboratoire de Modélisation et Calcul Institut d Informatique et Mathématiques Appliquées de

Plus en détail

Organisation de dispositifs pour tous les apprenants : la question de l'évaluation inclusive

Organisation de dispositifs pour tous les apprenants : la question de l'évaluation inclusive Organisation de dispositifs pour tous les apprenants : la question de l'évaluation inclusive Transcription et traduction de la communication de Verity DONNELLY colloque Éducation inclusive, la question

Plus en détail

CEG4566/CSI4541 Conception de systèmes temps réel

CEG4566/CSI4541 Conception de systèmes temps réel CEG4566/CSI4541 Conception de systèmes temps réel Chapitre 6 Vivacité, sécurité (Safety), fiabilité et tolérance aux fautes dans les systèmes en temps réel 6.1 Introduction générale aux notions de sécurité

Plus en détail

MASTER SIS PRO : logique et sécurité DÉTECTION D INTRUSIONS. Odile PAPINI, LSIS. Université de Toulon et du Var. papini@univ-tln.

MASTER SIS PRO : logique et sécurité DÉTECTION D INTRUSIONS. Odile PAPINI, LSIS. Université de Toulon et du Var. papini@univ-tln. MASTER SIS PRO : logique et sécurité DÉTECTION D INTRUSIONS Odile PAPINI, LSIS. Université de Toulon et du Var. [email protected] Plan Introduction Généralités sur les systèmes de détection d intrusion

Plus en détail

Algorithmique et Programmation Fonctionnelle

Algorithmique et Programmation Fonctionnelle Algorithmique et Programmation Fonctionnelle RICM3 Cours 9 : Lambda-calcul Benjamin Wack Polytech 2014-2015 1 / 35 La dernière fois Typage Polymorphisme Inférence de type 2 / 35 Plan Contexte λ-termes

Plus en détail

Correction de l examen de la première session

Correction de l examen de la première session de l examen de la première session Julian Tugaut, Franck Licini, Didier Vincent Si vous trouvez des erreurs de Français ou de mathématiques ou bien si vous avez des questions et/ou des suggestions, envoyez-moi

Plus en détail

Chap. 3: Le modèle de données entité-association (E.A.)

Chap. 3: Le modèle de données entité-association (E.A.) Chap. 3: Le modèle de données entité-association (E.A.) En anglais: Entity-Relationship (ER) Origines: C.Bachman (1969), P.Chen (1976). Modèle de données > décrire la réalité perçue à travers les données

Plus en détail

Calculs de probabilités

Calculs de probabilités Calculs de probabilités Mathématiques Générales B Université de Genève Sylvain Sardy 13 mars 2008 1. Définitions et notations 1 L origine des probabilités est l analyse de jeux de hasard, tels que pile

Plus en détail

CHAPITRE I INTRODUCTION

CHAPITRE I INTRODUCTION CHAPITRE I INTRODUCTION A. Histoire D un certain point de vue le début de l histoire de la théorie des nœuds date du temps d Alexandre de Macédoine, plus précisément de sa résolution du problème du fameux

Plus en détail

Les mathématiques financières

Les mathématiques financières Chapitre 13 Les mathématiques financières Gérer ses finances personnelles ou jouer le rôle de conseiller dans ce domaine demande que l on ait une bonne connaissance des produits financiers et des marchés

Plus en détail

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

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme? Exercices Alternatifs Quelqu un aurait-il vu passer un polynôme? c 2004 Frédéric Le Roux, François Béguin (copyleft LDL : Licence pour Documents Libres). Sources et figures: polynome-lagrange/. Version

Plus en détail

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

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme? Exercices Alternatifs Quelqu un aurait-il vu passer un polynôme? c 2004 Frédéric Le Roux, François Béguin (copyleft LDL : Licence pour Documents Libres). Sources et figures: polynome-lagrange/. Version

Plus en détail

Algorithme. Table des matières

Algorithme. Table des matières 1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............

Plus en détail

Intégration et probabilités TD1 Espaces mesurés Corrigé

Intégration et probabilités TD1 Espaces mesurés Corrigé Intégration et probabilités TD1 Espaces mesurés Corrigé 2012-2013 1 Petites questions 1 Est-ce que l ensemble des ouverts de R est une tribu? Réponse : Non, car le complémentaire de ], 0[ n est pas ouvert.

Plus en détail

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

Informatique Théorique : Théorie des Langages, Analyse Lexicale, Analyse Syntaxique Jean-Pierre Jouannaud Professeur Université Paris-Sud Licence d Informatique Informatique Théorique : Théorie des Langages, Analyse Lexicale, Analyse Syntaxique Jean-Pierre Jouannaud Professeur Adresse de l auteur : LIX École Polytechnique

Plus en détail

Texte Agrégation limitée par diffusion interne

Texte Agrégation limitée par diffusion interne Page n 1. Texte Agrégation limitée par diffusion interne 1 Le phénomène observé Un fût de déchets radioactifs est enterré secrètement dans le Cantal. Au bout de quelques années, il devient poreux et laisse

Plus en détail

Processus d Informatisation

Processus d Informatisation Processus d Informatisation Cheminement de la naissance d un projet jusqu à son terme, deux grandes étapes : Recherche ou étude de faisabilité (en amont) L utilisateur a une idée (plus ou moins) floue

Plus en détail

Des réels aux flottants : préservation automatique de preuves de stabilité de Lyapunov

Des réels aux flottants : préservation automatique de preuves de stabilité de Lyapunov Des réels aux flottants : préservation automatique de preuves de stabilité de Lyapunov Olivier Hermant et Vivien Maisonneuve CRI, MINES ParisTech, PSL Research University [email protected]

Plus en détail

PRIME D UNE OPTION D ACHAT OU DE VENTE

PRIME D UNE OPTION D ACHAT OU DE VENTE Université Paris VII - Agrégation de Mathématiques François Delarue) PRIME D UNE OPTION D ACHAT OU DE VENTE Ce texte vise à modéliser de façon simple l évolution d un actif financier à risque, et à introduire,

Plus en détail

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1 Exemples de problèmes et d applications INF6953 Exemples de problèmes Sommaire Quelques domaines d application Quelques problèmes réels Allocation de fréquences dans les réseaux radio-mobiles Affectation

Plus en détail

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude INF 1250 INTRODUCTION AUX BASES DE DONNÉES Guide d étude Sous la direction de Olga Mariño Télé-université Montréal (Québec) 2011 INF 1250 Introduction aux bases de données 2 INTRODUCTION Le Guide d étude

Plus en détail

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des

Plus en détail

Cours d initiation à la programmation en C++ Johann Cuenin

Cours d initiation à la programmation en C++ Johann Cuenin Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................

Plus en détail

Polynômes à plusieurs variables. Résultant

Polynômes à plusieurs variables. Résultant Polynômes à plusieurs variables. Résultant Christophe Ritzenthaler 1 Relations coefficients-racines. Polynômes symétriques Issu de [MS] et de [Goz]. Soit A un anneau intègre. Définition 1.1. Soit a A \

Plus en détail

La fonction exponentielle

La fonction exponentielle DERNIÈRE IMPRESSION LE 2 novembre 204 à :07 La fonction exponentielle Table des matières La fonction exponentielle 2. Définition et théorèmes.......................... 2.2 Approche graphique de la fonction

Plus en détail

FONDEMENTS MATHÉMATIQUES 12 E ANNÉE. Mathématiques financières

FONDEMENTS MATHÉMATIQUES 12 E ANNÉE. Mathématiques financières FONDEMENTS MATHÉMATIQUES 12 E ANNÉE Mathématiques financières A1. Résoudre des problèmes comportant des intérêts composés dans la prise de décisions financières. [C, L, RP, T, V] Résultat d apprentissage

Plus en détail

Dualité dans les espaces de Lebesgue et mesures de Radon finies

Dualité dans les espaces de Lebesgue et mesures de Radon finies Chapitre 6 Dualité dans les espaces de Lebesgue et mesures de Radon finies Nous allons maintenant revenir sur les espaces L p du Chapitre 4, à la lumière de certains résultats du Chapitre 5. Sauf mention

Plus en détail

Logique : ENSIIE 1A - contrôle final

Logique : ENSIIE 1A - contrôle final 1 Logique : ENSIIE 1A - contrôle final - CORRIGÉ Mardi 11 mai 2010 - Sans documents - Sans calculatrice ni ordinateur Durée : 1h30 Les exercices sont indépendants. Exercice 1 (Logique du premier ordre

Plus en détail

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun> 94 Programmation en OCaml 5.4.8. Concaténation de deux listes Définissons maintenant la fonction concat qui met bout à bout deux listes. Ainsi, si l1 et l2 sont deux listes quelconques, concat l1 l2 constitue

Plus en détail

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique La programmation linéaire : une introduction Qu est-ce qu un programme linéaire? Qu est-ce qu un programme linéaire? Exemples : allocation de ressources problème de recouvrement Hypothèses de la programmation

Plus en détail