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

Model checking temporisé

Model checking temporisé Model checking temporisé Béatrice Bérard LAMSADE Université Paris-Dauphine & CNRS berard@lamsade.dauphine.fr 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

Les limites théoriques de l informatique Les problèmes indécidables

Les limites théoriques de l informatique Les problèmes indécidables Les limites théoriques de l informatique Les problèmes indécidables Samuel Fiorini - Gilles Geeraerts - Jean-François Raskin Université Libre de Bruxelles Académie Royale des Sciences Bruxelles 3/3/2010

Plus en détail

Fondements de l informatique: Examen Durée: 3h

Fondements de l informatique: Examen Durée: 3h École polytechnique X2013 INF412 Fondements de l informatique Fondements de l informatique: Examen Durée: 3h Sujet proposé par Olivier Bournez Version 3 (corrigé) L énoncé comporte 4 parties (sections),

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

Machine de Turing. Informatique II Algorithmique 1

Machine de Turing. Informatique II Algorithmique 1 Machine de Turing Nous avons vu qu un programme peut être considéré comme la décomposition de la tâche à réaliser en une séquence d instructions élémentaires (manipulant des données élémentaires) compréhensibles

Plus en détail

Calculabilité Cours 2 : Machines de Turing

Calculabilité Cours 2 : Machines de Turing Calculabilité Cours 2 : Machines de Turing Introduction Un autre type de modèle de calcul Les fonctions récursives et les fonctions λ représentables définissent des modèles de calculs dans k N Nk N Nous

Plus en détail

Support du cours de Probabilités IUT d Orléans, Département d informatique

Support du cours de Probabilités IUT d Orléans, Département d informatique Support du cours de Probabilités IUT d Orléans, Département d informatique Pierre Andreoletti IUT d Orléans Laboratoire MAPMO (Bât. de Mathématiques UFR Sciences) - Bureau 126 email: pierre.andreoletti@univ-orleans.fr

Plus en détail

Analyse abstraite de missions sous PILOT

Analyse abstraite de missions sous PILOT Analyse abstraite de missions sous PILOT Damien Massé EA 3883, Université de Bretagne Occidentale, Brest damien.masse@univ-brest.fr Résumé Nous étudions la possibilité de réaliser un analyseur par interprétation

Plus en détail

Exercices théoriques

Exercices théoriques École normale supérieure 2008-2009 Département d informatique Algorithmique et Programmation TD n 9 : Programmation Linéaire Avec Solutions Exercices théoriques Rappel : Dual d un programme linéaire cf.

Plus en détail

Correction de programmes : Logique de Hoare

Correction de programmes : Logique de Hoare 16 juillet 2009 Logique et informatique Vis-à-vis de l informatique la logique a au moins 2 rôles : 1 Externe et théorique (fondements de l informatique - Électif en S4) : Logique comme méta-informatique

Plus en détail

Résolution générique à la volée de systèmes d équations booléennes et applications

Résolution générique à la volée de systèmes d équations booléennes et applications Résolution générique à la volée de systèmes d équations booléennes et applications Radu Mateescu INRIA Rhône-Alpes / VASY Plan Introduction Systèmes d équations booléennes d alternance 1 Algorithmes de

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

Algorithmique et Analyse d Algorithmes

Algorithmique et Analyse d Algorithmes Algorithmique et Analyse d Algorithmes L3 Info Cours 11 : Arbre couvrant Prétraitement Benjamin Wack 2015-2016 1 / 32 La dernière fois Rappels sur les graphes Problèmes classiques Algorithmes d optimisation

Plus en détail

Arbres. Alphabet Σ = Σ 0 Σ k. Exemples

Arbres. Alphabet Σ = Σ 0 Σ k. Exemples Arbres Alphabet Σ = Σ 0 Σ k Σ i : alphabet fini de symboles de rang i (Σ i Σ j possible). Un arbre t de rang k est défini par un ensemble (fini) dom(t) {1,..., k} clos par préfixe (domaine de t) : si v,

Plus en détail

Introduction au model-checking et application à la vérification des protocoles cryptographiques

Introduction au model-checking et application à la vérification des protocoles cryptographiques Introduction au model-checking et application à la vérification des protocoles cryptographiques Prof. John MULLINS École Polytechnique de Montréal Prof. John MULLINS (École Polytechnique) Introduction

Plus en détail

Démonstrations. Chapitre 4. 4.1 Introduction

Démonstrations. Chapitre 4. 4.1 Introduction Chapitre 4 Démonstrations L objectif de ce chapitre est de commencer à aborder la question fondamentale suivante : qu est-ce qu une démonstration? Pour cela, plus précisément, on va se focaliser dans ce

Plus en détail

L enseignement de l algorithmique au Lycée

L enseignement de l algorithmique au Lycée L enseignement de l algorithmique au Lycée Sisteron 12 novembre 2009 Fernand Didier didier@irem.univ-mrs.fr Approche naïve C est une méthode, une façon systématique de procéder, pour faire quelque chose

Plus en détail

Les automates. Fabrice EUDES, Pascal EVRARD, Philippe MARQUET, François RECHER & Yann SECQ

Les automates. Fabrice EUDES, Pascal EVRARD, Philippe MARQUET, François RECHER & Yann SECQ Les automates Fabrice EUDES, Pascal EVRARD, Philippe MARQUET, François RECHER & Yann SECQ Avril 2015 Retour sur l île et le barman Deux problèmes similaires: Des îles, des bateaux et un trésor à trouver

Plus en détail

Machines de Turing. Chapitre 14 14.1. DÉFINITION ET FONCTIONNEMENT

Machines de Turing. Chapitre 14 14.1. DÉFINITION ET FONCTIONNEMENT Chapitre 4 Machines de Turing Dans ce chapitre on présente un modèle de calcul introduit dans les années 3 par Turing, les machines de Turing. Ces machines formalisent la notion de calculabilité. La thèse

Plus en détail

Chap. 2. Langages et automates

Chap. 2. Langages et automates Chapitre 2. Langages et automates 1. Quelques définitions et description d un langage. 2. Les expressions régulières. 3. Les automates fini déterministes et non-déterministes. 4. Construction automatique

Plus en détail

Partie I : Automates et langages

Partie I : Automates et langages 2 Les calculatrices sont interdites. N.B. : Le candidat attachera la plus grande importance à la clarté, à la précision et à la concision de la rédaction. Si un candidat est amené à repérer ce qui peut

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

Utilisation du logiciel OpMat Ce logiciel effectue des opérations élémentaires sur les lignes d une matrice avec des entrées rationnelles

Utilisation du logiciel OpMat Ce logiciel effectue des opérations élémentaires sur les lignes d une matrice avec des entrées rationnelles Utilisation du logiciel OpMat Ce logiciel effectue des opérations élémentaires sur les lignes d une matrice avec des entrées rationnelles Michel Bouchard, enseignant retraité, Département de mathématiques,

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

Théorie des Langages Formels Chapitre 5 : Automates minimaux

Théorie des Langages Formels Chapitre 5 : Automates minimaux Théorie des Langages Formels Chapitre 5 : Automates minimaux Florence Levé Florence.Leve@u-picardie.fr Année 2015-2016 1/29 Introduction Les algorithmes vus précédemment peuvent mener à des automates relativement

Plus en détail

TD 2 - Modèles de calcul

TD 2 - Modèles de calcul TD 2 - Modèles de calcul Remarques préliminaires Si ou désigne une relation binaire (de dérivation/transition suivant le contexte), on notera ou sa clôture transitive, comprendre la relation obenue en

Plus en détail

INF-130 Travail Pratique #2

INF-130 Travail Pratique #2 École de technologie supérieure INF-30 Travail Pratique #2 Travail individuel Tracé d un métro Francis Bourdeau, Frédérick Henri et Patrick Salois Remise à la 0 e semaine. Objectifs - Amener l étudiant

Plus en détail

Concours 2015 Épreuve d Informatique Filière : MP Durée de l épreuve : 3 heures. L utilisation d une calculatrice est autorisée.

Concours 2015 Épreuve d Informatique Filière : MP Durée de l épreuve : 3 heures. L utilisation d une calculatrice est autorisée. A 2015 INFO. MP École des Ponts ParisTech, SUPAERO (ISAE), ENSTA ParisTech, Télécom ParisTech, Mines ParisTech, Mines de Saint-étienne, Mines Nancy, Télécom Bretagne, ENSAE ParisTech (filière MP), École

Plus en détail

et Automates de Büchi

et Automates de Büchi Cours 9: Propriétes ω-régulières et Automates de Büchi Francesco Belardinelli Laboratoire IBISC Remerciements à Alessio Lomuscio et Joost-Pieter Katoen 26 mars 2015 Cours 9 - Vue d Ensemble Motivation

Plus en détail

Recherche opérationnelle. Programmation linéaire et recherche opérationnelle. Programmation linéaire. Des problèmes de RO que vous savez résoudre

Recherche opérationnelle. Programmation linéaire et recherche opérationnelle. Programmation linéaire. Des problèmes de RO que vous savez résoudre Recherche opérationnelle Programmation linéaire et recherche opérationnelle Ioan Todinca Ioan.Todinca@univ-orleans.fr tél. 0 38 41 7 93 bureau : en bas à gauche Tentative de définition Ensemble de méthodes

Plus en détail

Machines composées de (depuis 1940 env.) : http://cui.unige.ch/isi/cours/std/

Machines composées de (depuis 1940 env.) : http://cui.unige.ch/isi/cours/std/ données pr ogramme 11111101 11001101 01000101 b us disque ma gnétique processeur écran Structures de données et algorithmes Ordinateurs Gilles Falquet, printemps-été 2002 Machines composées de (depuis

Plus en détail

Théorie des Langages

Théorie des Langages Théorie des Langages Automates Claude Moulin Université de Technologie de Compiègne Printemps 2013 Sommaire 1 Automate fini 2 Automate et langages réguliers 3 Automate à pile Automate fini déterministe

Plus en détail

Programmation, partiel: sémantique d un tableur

Programmation, partiel: sémantique d un tableur Programmation, partiel: sémantique d un tableur Recommandations. Votre copie (papier ou électronique) devra être lisible et bien structurée. La note tiendra compte autant du fond que de la présentation.

Plus en détail

Vidéo partie 1. Logique Vidéo partie 2. Raisonnements Exercices Logique, ensembles, raisonnements

Vidéo partie 1. Logique Vidéo partie 2. Raisonnements Exercices Logique, ensembles, raisonnements Exo7 Logique et raisonnements Vidéo partie 1. Logique Vidéo partie 2. Raisonnements Exercices Logique, ensembles, raisonnements Quelques motivations Il est important d avoir un langage rigoureux. La langue

Plus en détail

Points fixes de fonctions à domaine fini

Points fixes de fonctions à domaine fini ÉCOLE POLYTECHNIQUE ÉCOLE NORMALE SUPÉRIEURE DE CACHAN ÉCOLE SUPÉRIEURE DE PHYSIQUE ET DE CHIMIE INDUSTRIELLES CONCOURS D ADMISSION 2013 FILIÈRE MP HORS SPÉCIALITÉ INFO FILIÈRE PC COMPOSITION D INFORMATIQUE

Plus en détail

Analyse de la variance à deux facteurs

Analyse de la variance à deux facteurs 1 1 IRMA, Université Louis Pasteur Strasbourg, France Master 1 Psychologie du développement 06-10-2008 Contexte Nous nous proposons d analyser l influence du temps et de trois espèces ligneuses d arbre

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

Primitives Cours maths Terminale S

Primitives Cours maths Terminale S Primitives Cours maths Terminale S Dans ce module est introduite la notion de primitive d une fonction sur un intervalle. On définit cette notion puis on montre qu une fonction admet une infinité de primitives

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

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

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

BASES DU RAISONNEMENT

BASES DU RAISONNEMENT BASES DU RAISONNEMENT P. Pansu 10 septembre 2006 Rappel du programme officiel Logique, différents types de raisonnement. Ensembles, éléments. Fonctions et applications. Produit, puissances. Union, intersection,

Plus en détail

Enveloppes convexes dans le plan

Enveloppes convexes dans le plan ÉCOLE POLYTECHNIQUE ÉCOLES NORMALES SUPÉRIEURES ÉCOLE SUPÉRIEURE DE PHYSIQUE ET DE CHIMIE INDUSTRIELLES CONCOURS D ADMISSION FILIÈRE MP HORS SPÉCIALITÉ INFO FILIÈRE PC COMPOSITION D INFORMATIQUE B (XECLR)

Plus en détail

- Mobiliser les résultats sur le second degré dans le cadre de la résolution d un problème.

- Mobiliser les résultats sur le second degré dans le cadre de la résolution d un problème. Mathématiques - classe de 1ère des séries STI2D et STL. 1. Analyse On dote les élèves d outils mathématiques permettant de traiter des problèmes relevant de la modélisation de phénomènes continus ou discrets.

Plus en détail

StatEnAction 2009/10/30 11:26 page 111 #127 CHAPITRE 10. Machines à sous

StatEnAction 2009/10/30 11:26 page 111 #127 CHAPITRE 10. Machines à sous StatEnAction 2009/0/30 :26 page #27 CHAPITRE 0 Machines à sous Résumé. On étudie un problème lié aux jeux de hasard. Il concerne les machines à sous et est appelé problème de prédiction de bandits à deux

Plus en détail

Applications linéaires

Applications linéaires Applications linéaires I) Applications linéaires - Généralités 1.1) Introduction L'idée d'application linéaire est intimement liée à celle d'espace vectoriel. Elle traduit la stabilité par combinaison

Plus en détail

Sortie : OUI si n est premier, NON sinon. On peut voir Premier aussi comme une fonction, en remplaçant OUI par 1 et NON par 0.

Sortie : OUI si n est premier, NON sinon. On peut voir Premier aussi comme une fonction, en remplaçant OUI par 1 et NON par 0. Université Bordeaux 1. Master Sciences & Technologies, Informatique. Examen UE IN7W11, Modèles de calcul. Responsable A. Muscholl Session 1, 2011 2012. 12 décembre 2011, 14h-17h. Documents autorisés :

Plus en détail

BAZIN Danil et PRIEZ Jean-Baptiste. LEX & YACC : Calculatrice Évoluée

BAZIN Danil et PRIEZ Jean-Baptiste. LEX & YACC : Calculatrice Évoluée BAZIN Danil et PRIEZ Jean-Baptiste LEX & YACC : Calculatrice Évoluée Table des matières 1 Introduction 3 2 Description 4 3 La grammaire utilisée 6 4 Lexèmes et FLEX 8 5 Analyse syntaxique et YACC 8 5.1

Plus en détail

Université Paris Diderot Master 1 II. Théorie et pratique de la concurrence

Université Paris Diderot Master 1 II. Théorie et pratique de la concurrence Université Paris Diderot Master 1 II Théorie et pratique de la concurrence Partiel du 30 avril 2009 Durée : 1h30. Tous les documents sont autorisés. Le barème est indicatif. Question 1 : Soit le programme

Plus en détail

Arbres binaires de recherche et arbres rouge noir

Arbres binaires de recherche et arbres rouge noir Institut Galilée lgo, rbres, Graphes I nnée 006-007 License rbres binaires de recherche et arbres rouge noir Rappels de cours et correction du TD rbres binaires de recherche : définitions Un arbre binaire

Plus en détail

CONDITIONS NÉCESSAIRES ET DÉPENDANCE EXISTENTIELLE

CONDITIONS NÉCESSAIRES ET DÉPENDANCE EXISTENTIELLE CONDITIONS NÉCESSAIRES ET DÉPENDANCE EXISTENTIELLE Introduction Le concept de condition nécessaire est largement utilisé en philosophie, quelquefois explicitement pour définir d autres concepts importants.

Plus en détail

Le raisonnement par récurrence

Le raisonnement par récurrence Le raisonnement par récurrence Nous notons N l ensemble des entiers naturels : N = {0,,, } Nous dirons naturel au lieu de entier naturel Le principe du raisonnement par récurrence Soit A une partie de

Plus en détail

Chapitre 2 : Représentation des nombres en machine

Chapitre 2 : Représentation des nombres en machine Chapitre 2 : Représentation des nombres en machine Introduction La mémoire des ordinateurs est constituée d une multitude de petits circuits électroniques qui ne peuvent être que dans deux états : sous

Plus en détail

L2: cours I4c Langages et automates

L2: cours I4c Langages et automates L2: cours I4c Langages et automates Olivier Togni, LE2I (038039)3887 olivier.togni@u-bourgogne.fr Modifié le 31 mai 2007 Sommaire Utiles pour compilation, interprétation,... 1. Langages rationnels 2. Langages

Plus en détail

Génération aléatoire de structures ordonnées

Génération aléatoire de structures ordonnées Génération aléatoire de structures ordonnées Olivier Roussel Équipe APR Laboratoire d Informatique de Paris 6 Université Pierre et Marie Curie ALÉA 2011 7 mars 2011 Olivier Roussel (LIP6) Génération de

Plus en détail

DEPARTEMENT D ETUDES EUROPEENNES ECONOMIQUES

DEPARTEMENT D ETUDES EUROPEENNES ECONOMIQUES DEPARTEMENT D ETUDES EUROPEENNES ECONOMIQUES GUIDE DES ETUDIANTS Ce guide est destiné à vous introduire au fonctionnement du Collège et du Département d études économiques européennes, en présentant les

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

Algèbre relationnelle

Algèbre relationnelle Algèbre relationnelle 1. Introduction L algèbre relationnelle est le support mathématique cohérent sur lequel repose le modèle relationnel. L algèbre relationnelle propose un ensemble d opérations élémentaires

Plus en détail

La gestion des doublons

La gestion des doublons fims.informatique@skynet.be 01.10 10.02 N 3 La gestion des doublons Dans la plupart des bases de données, les doublons sont souvent inévitables. Il est parfois complexe de les gérer car les informations

Plus en détail

Structures de données non linéaires

Structures de données non linéaires Structures de données non linéaires I. Graphes Définition Un graphe (simple) orienté G est un couple (S, A), où : S est un ensemble dont les éléments sont appelés les sommets. A est un ensemble de couples

Plus en détail

Cours de spécialité mathématiques en Terminale ES

Cours de spécialité mathématiques en Terminale ES Cours de spécialité mathématiques en Terminale ES O. Lader 2014/2015 Lycée Jean Vilar Spé math terminale ES 2014/2015 1 / 51 Systèmes linéaires Deux exemples de systèmes linéaires à deux équations et deux

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

Langages de programmation: approche scientifique

Langages de programmation: approche scientifique IGE 2004 - ENS 29 juin 2004 Présentation au CGTI 1 Informatique théorique 2 3 Une science? Informatique théorique Chaque science repose un dogme fondamental. Les mathématiques Les raisonnements formels

Plus en détail

Les graphes d intervalles

Les graphes d intervalles Les graphes d intervalles Complément au chapitre 3 «Vol aux archives cantonales» Considérons un ensemble de tâches ayant chacune une heure de début et une heure de fin bien précises. Supposons qu on demande

Plus en détail

Partiel - 12 mars 2014

Partiel - 12 mars 2014 Licence STS, semestre 4 013 14 Mathématiques pour l Informatique (Info 9) 1 mars 014 http://www.lri.fr/~paulin/mathinfo Partiel - 1 mars 014 L examen dure heures. L énoncé est composé de 5 pages. Toutes

Plus en détail

Un algorithme de composition musicale

Un algorithme de composition musicale Un algorithme de composition musicale Table des matières Présentation Le compositeur. Le code PMX.................................................. Structures de données utilisées........................................

Plus en détail

Techniques et outils de test pour les logiciels réactifs synchrones

Techniques et outils de test pour les logiciels réactifs synchrones Journées Systèmes et Logiciels Critiques Institut IMAG ; 14-16 nombre 2000 Techniques et outils de test pour les logiciels réactifs synchrones Farid Ouabdesselam 1 Méthodes de test : classification générale

Plus en détail

Méthodes de test. Mihaela Sighireanu

Méthodes de test. Mihaela Sighireanu UFR d Informatique Paris 7, LIAFA, 175 rue Chevaleret, Bureau 6A7 http://www.liafa.jussieu.fr/ sighirea/cours/methtest/ Partie I 1 Propriétés 2 Un peu de génie logiciel de test 3 Eléments Problèmes Point

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

PG208, Projet n 3 : Serveur HTTP évolué

PG208, Projet n 3 : Serveur HTTP évolué PG208, Projet n 3 : Serveur HTTP évolué Bertrand LE GAL, Serge BOUTER et Clément VUCHENER Filière électronique 2 eme année - Année universitaire 2011-2012 1 Introduction 1.1 Objectif du projet L objectif

Plus en détail

L approche Bases de données

L approche Bases de données L approche Bases de données Cours: BD. Avancées Année: 2005/2006 Par: Dr B. Belattar (Univ. Batna Algérie) I- : Mise à niveau 1 Cours: BDD. Année: 2013/2014 Ens. S. MEDILEH (Univ. El-Oued) L approche Base

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

Chapitre 4 Automates à pile et langages hors-contexte

Chapitre 4 Automates à pile et langages hors-contexte Chapitre 4 Automates à pile et langages hors-contexte 87 Introduction Langage a n b n n est pas accepté par un automate fini. Par contre L k = {a n b n n k} est accepté. Mémoire finie, mémoire infinie,

Plus en détail

Mathématiques pour l informatique 1 notes de cours sur la seconde partie

Mathématiques pour l informatique 1 notes de cours sur la seconde partie Mathématiques pour l informatique notes de cours sur la seconde partie L Université Paris-Est, Marne-la-Vallée Cyril Nicaud Organisation Ce demi-cours est composé de 6 séances de cours et 6 séances de

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

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

Représentation des Nombres

Représentation des Nombres Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...

Plus en détail

Mini-Projet de Prolog : Solver de Sudoku

Mini-Projet de Prolog : Solver de Sudoku UNIVERSITE François Rabelais TOURS Polytech Tours-Département Informatique 64, Avenue Jean Portalis 37200 TOURS Mini-Projet de Prolog : Solver de Sudoku Encadré par : Présenté par : M. J-L Bouquard Florent

Plus en détail

Introduction aux automates

Introduction aux automates Introduction aux automates Principes et exemples Pascal André IRIN Université de Nantes 2 rue de la Houssinière ; B.P. 92208 44322 Nantes Cedex 03 Pascal.Andre@irin.univ-nantes.fr Introduction aux automates

Plus en détail

Théorie des langages. Automates à pile. Elise Bonzon http://web.mi.parisdescartes.fr/ bonzon/ elise.bonzon@parisdescartes.

Théorie des langages. Automates à pile. Elise Bonzon http://web.mi.parisdescartes.fr/ bonzon/ elise.bonzon@parisdescartes. Automates à pile Elise Bonzon http://web.mi.parisdescartes.fr/ bonzon/ elise.bonzon@parisdescartes.fr 1 / 62 Automates à pile Introduction Rappels sur les piles Automates à pile : définition Automates

Plus en détail

I Arbres binaires. Lycée Faidherbe 2014-2015. 1 Rappels 2 1.1 Définition... 2 1.2 Dénombrements... 2 1.3 Parcours... 3

I Arbres binaires. Lycée Faidherbe 2014-2015. 1 Rappels 2 1.1 Définition... 2 1.2 Dénombrements... 2 1.3 Parcours... 3 I Arbres binaires 2014-2015 Table des matières 1 Rappels 2 1.1 Définition................................................ 2 1.2 Dénombrements............................................ 2 1.3 Parcours.................................................

Plus en détail

Chapitre 6. Modélisation en P.L.I. 6.1 Lien entre PL et PLI. 6.1.1 Approximation de la PLI

Chapitre 6. Modélisation en P.L.I. 6.1 Lien entre PL et PLI. 6.1.1 Approximation de la PLI Chapitre 6 Modélisation en P.L.I. 6.1 Lien entre PL et PLI (P) problème de PL. On restreint les variables à être entières : on a un problème de PLI (ILP en anglais). On restreint certaines variables à

Plus en détail

2.1. Les fonctions. Les fonctions se définissent de la manière suivante : NomDeLaFonction(param1, param2,...)= { \\ Code de la fonction

2.1. Les fonctions. Les fonctions se définissent de la manière suivante : NomDeLaFonction(param1, param2,...)= { \\ Code de la fonction TP1, prise en main de Pari/GP et arithmétique Le programme que nous allons utiliser pour les TP se nomme PARI/GP dont le point fort est la théorie des nombres (au sens large). Il est donc tout à fait adapter

Plus en détail

Grammaires formelles, Automates

Grammaires formelles, Automates 1/39 Grammaires formelles, Automates Pierre Zweigenbaum LIMSI, CNRS pz@limsi.fr http://www.limsi.fr/~pz/ 2/39 1 Syntaxe : grammaire, analyse 2 Grammaires formelles Langage et grammaire Grammaires régulières

Plus en détail

Jeux à plusieurs et coalitions

Jeux à plusieurs et coalitions Jeux à plusieurs et coalitions Épreuve pratique d algorithmique et de programmation Concours commun des écoles normales supérieures Durée de l épreuve: 3 heures 30 minutes Juillet 2005 Important. Lorsque

Plus en détail

B03. Ensembles, applications, relations, groupes

B03. Ensembles, applications, relations, groupes B03. Ensembles, applications, relations, groupes Bernard Le Stum Université de Rennes 1 Version du 6 janvier 2006 Table des matières 1 Calcul propositionnel 2 2 Ensembles 5 3 Relations 7 4 Fonctions, applications

Plus en détail

Équations du troisième degré

Équations du troisième degré par Z, auctore L objet de cet article est d exposer deux méthodes pour trouver des solutions à une équation du troisième degré : la recherche de racines évidentes d une part, et la formule de Cardan d

Plus en détail

Résumé du document «Programmes des classes préparatoires aux Grandes Écoles ; Discipline : Informatique ; Première et seconde années - 2013»

Résumé du document «Programmes des classes préparatoires aux Grandes Écoles ; Discipline : Informatique ; Première et seconde années - 2013» Résumé du document «Programmes des classes préparatoires aux Grandes Écoles ; Discipline : Informatique ; Première et seconde années - 2013» I Objectifs Niveau fondamental : «on se fixe pour objectif la

Plus en détail

1 Comptage de solutions et escaliers

1 Comptage de solutions et escaliers Licence Informatique Systèmes polynomiaux, que signifie : résoudre? Feuille de TD numéro 11 1 Comptage de solutions et escaliers Question 1. On considère le système suivant p1 := 2*x*y^2 + 3*x^2-5*y^3

Plus en détail

Invariants, Principe des tiroirs

Invariants, Principe des tiroirs DOMAINE : Combinatoire AUTEUR : Pierre BERTIN NIVEAU : Débutants STAGE : Montpellier 2013 CONTENU : Exercices Invariants, Principe des tiroirs - Principe des tiroirs - S il y a (n + 1) chaussettes à ranger

Plus en détail

Espace de probabilité, indépendance et probabilité conditionnelle

Espace de probabilité, indépendance et probabilité conditionnelle Chapter 2 Espace de probabilité, indépendance et probabilité conditionnelle Sommaire 2.1 Tribu et événements........................................... 15 2.2 Probabilité................................................

Plus en détail

Guide méthodologique 4

Guide méthodologique 4 N/Réf : X2 217 012 Collection Guides méthodologiques Comment réaliser un travail de recherche Guide méthodologique 4 Louis Gaudreau Conseiller en documentation Centre des médias Septembre 2007 TABLE DES

Plus en détail

Licence de Sciences et Technologies. Fiche de cours 1 - Nombres réels.

Licence de Sciences et Technologies. Fiche de cours 1 - Nombres réels. Licence de Sciences et Technologies EM21 - Analyse Fiche de cours 1 - Nombres réels. On connaît les ensembles suivants, tous munis d une addition, d une multiplication, et d une relation d ordre compatibles

Plus en détail

Le mot «algorithme» vient du nom de l auteur persan Al-Khuwarizmi (né vers 780 - mort vers 850) Une définition: «un algorithme est une suite finie de

Le mot «algorithme» vient du nom de l auteur persan Al-Khuwarizmi (né vers 780 - mort vers 850) Une définition: «un algorithme est une suite finie de Le mot «algorithme» vient du nom de l auteur persan Al-Khuwarizmi (né vers 780 - mort vers 850) Une définition: «un algorithme est une suite finie de règles à appliquer dans un ordre déterminé à un nombre

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

Corrigé de l examen partiel du 19 novembre 2011

Corrigé de l examen partiel du 19 novembre 2011 Université Paris Diderot Langage Mathématique (LM1) Département Sciences Exactes 2011-2012 Corrigé de l examen partiel du 19 novembre 2011 Durée : 3 heures Exercice 1 Dans les expressions suivantes, les

Plus en détail

I.2: Le test fonctionnel I.2.2 : Le test fonctionnel de logiciel

I.2: Le test fonctionnel I.2.2 : Le test fonctionnel de logiciel I.2: Le test fonctionnel I.2.2 : Le test fonctionnel de logiciel Introduction Notre contexte : pas possible d exprimer toutes les combinaisons de DT. Le test fonctionnel est basé sur la spécification/interface

Plus en détail

Notion de complexité

Notion de complexité 1 de 27 Algorithmique Notion de complexité Florent Hivert Mél : Florent.Hivert@lri.fr Adresse universelle : http://www-igm.univ-mlv.fr/ hivert Outils mathématiques 2 de 27 Outils mathématiques : analyse

Plus en détail

2012/2013 Le codage en informatique

2012/2013 Le codage en informatique 2012/2013 Le codage en informatique Stéphane Fossé/ Marc Gyr Lycée Felix Faure Beauvais 2012/2013 INTRODUCTION Les appareils numériques que nous utilisons tous les jours ont tous un point commun : 2 chiffres

Plus en détail