166
FRANÇOIS LAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applications à l’analyse de programmes 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 2009 c François Lajeunesse-Robert, 2009

Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

FRANÇOIS LAJEUNESSE-ROBERT

Résolution d’équations en algèbre de KleeneApplications à l’analyse de programmes

Mémoire présentéà la Faculté des études supérieures de l’Université Lavaldans le cadre du programme de maîtrise en informatiquepour l’obtention du grade de Maître ès sciences (M.Sc.)

FACULTÉ DES SCIENCES ET DE GÉNIEUNIVERSITÉ LAVAL

QUÉBEC

2009

c©François Lajeunesse-Robert, 2009

Page 2: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Résumé

Au fil des ans, l’algèbre de Kleene s’est avérée être un outil formel très pratique etflexible quant vient le temps de raisonner sur les programmes informatiques. Cependant,actuellement, la plupart des applications à l’analyse de programmes de l’algèbre deKleene se font en sélectionnant un problème précis et en voyant comment l’algèbrede Kleene permet de le résoudre, ce qui limite les applications possibles. L’objectifvisé par ce mémoire est de déterminer dans quelle mesure la résolution d’équations,en algèbre de Kleene, peut être utilisée en analyse de programmes. Une grande partiede ce mémoire est donc consacrée à la résolution de différents types d’équations dansdifférentes variantes de l’algèbre de Kleene. Puis nous montrons comment la vérificationde programmes ainsi que la synthèse de contrôleurs peuvent tirer profit de la résolutiond’équations en algèbre de Kleene.

Page 3: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Avant-propos

Aux professeurs Abderahim Alikacem et Roger Pierre qui ont cru en mes capacitésau cours de mon baccalauréat en m’offrant l’opportunité de travailler pour eux.

À Claude Bolduc pour son expertise sur l’algèbre de Kleene sans quoi je n’auraisprobablement pas avancé aussi rapidement ainsi que pour tous les moments de procras-tination venant équilibrer les nombreuses heures de travail.

À mon directeur de recherche Béchir Ktari pour m’avoir donné un si beau sujet derecherche et m’avoir permis d’affronter ma peur des avions.

À mes amis qui m’ont tant apporté depuis ces dernières années.

À mon père Jacques et à tous ces moments de frustration lorsqu’il m’aidait dansmes devoirs à la petite école et qui ont finalement porté fruit en me permettant d’alleraussi loin dans mes études.

À ma mère Louise qui m’a toujours supporté depuis ce 8 juin 1984 au matin.

Je vous dis merci !

Page 4: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

À mes parents.

Le génie commence les grands ouvragesmais seul le travail les termine.

(Joseph Joubert)

Page 5: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Table des matières

Résumé ii

Avant-propos iii

Table des matières v

Table des figures vii

1 Introduction 11.1 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.3 Structure du mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Langages formels 62.1 Langages réguliers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.1.1 Notion de langage . . . . . . . . . . . . . . . . . . . . . . . . . . 62.1.2 Langages réguliers et automates finis déterministes . . . . . . . 122.1.3 Expressions régulières . . . . . . . . . . . . . . . . . . . . . . . 20

2.2 Langages réguliers sur des mots gardés . . . . . . . . . . . . . . . . . . 232.2.1 Notion de langage sur des mots gardés . . . . . . . . . . . . . . 232.2.2 Langages réguliers et automates finis déterministes sur les mots

gardés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.2.3 Expressions régulières gardées . . . . . . . . . . . . . . . . . . . 28

3 Structures algébriques 303.1 Notions préliminaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.1.1 Loi de composition . . . . . . . . . . . . . . . . . . . . . . . . . 313.1.2 Structures algébriques connues . . . . . . . . . . . . . . . . . . . 353.1.3 Algèbre universelle . . . . . . . . . . . . . . . . . . . . . . . . . 39

3.2 Algèbre de Kleene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453.2.1 Preuve de complétude de l’algèbre de Kleene . . . . . . . . . . . 483.2.2 Algèbre de Kleene avec tests . . . . . . . . . . . . . . . . . . . . 51

3.3 Structures résiduées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

Page 6: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Table des matières vi

3.3.1 Dérivations dans l’algèbre de Kleene libre . . . . . . . . . . . . . 56

4 Algèbre linéaire 574.1 Algèbre linéaire classique . . . . . . . . . . . . . . . . . . . . . . . . . . 58

4.1.1 Espace vectoriel, indépendance linéaire et bases . . . . . . . . . 584.1.2 Transformations linéaires, équations linéaires et matrices . . . . 614.1.3 Transformations affines, équations affines et espaces affines . . . 664.1.4 Équations implicites . . . . . . . . . . . . . . . . . . . . . . . . 68

4.2 Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694.2.1 Modules, indépendance linéaire et bases . . . . . . . . . . . . . 694.2.2 Transformations linéaires, équations linéaires explicites et matrices 764.2.3 Transformation affines, équations affines explicites et modules af-

fines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 794.2.4 Équations implicites . . . . . . . . . . . . . . . . . . . . . . . . 81

5 Résolution d’équations 835.1 Résolution d’équations quasi linéaires en algèbre de Kleene . . . . . . . 88

5.1.1 Systèmes d’équations quasi linéaires . . . . . . . . . . . . . . . . 885.1.2 Résolution d’équations quasi linéaires explicites . . . . . . . . . 915.1.3 Résolution d’équations quasi linéaire implicites . . . . . . . . . . 98

5.2 L’algèbre ALG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1015.2.1 Complétude de l’algèbre . . . . . . . . . . . . . . . . . . . . . . 1015.2.2 Comparaison d’éléments . . . . . . . . . . . . . . . . . . . . . . 1035.2.3 Complexité de la méthode . . . . . . . . . . . . . . . . . . . . . 1175.2.4 Exemple de comparaison . . . . . . . . . . . . . . . . . . . . . . 118

5.3 Étendre la résolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1235.3.1 Algèbre de Kleene avec tests . . . . . . . . . . . . . . . . . . . . 1255.3.2 Autres types d’équations . . . . . . . . . . . . . . . . . . . . . . 125

6 Application à l’analyse de programmes 1296.1 Présentation de la méthode . . . . . . . . . . . . . . . . . . . . . . . . 130

6.1.1 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1326.1.2 Introduction d’inconnues . . . . . . . . . . . . . . . . . . . . . . 134

6.2 Intégrité et complétude de la méthode . . . . . . . . . . . . . . . . . . 1366.3 Implantation de la méthode . . . . . . . . . . . . . . . . . . . . . . . . 1386.4 Étendre l’approche au µ-calcul linéaire . . . . . . . . . . . . . . . . . . 144

7 Conclusion 1507.1 Travaux futurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

Bibliographie 154

Page 7: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Table des figures

3.1 Diagramme de Hasse de l’ensemble puissance de {0, 1, 2}. . . . . . . . 373.2 Sup-demi-treillis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383.3 Inf-demi-treillis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383.4 Ensemble partiellement ordonné quelconque. . . . . . . . . . . . . . . . 39

6.1 Approche algébrique à la vérification de modèles. . . . . . . . . . . . . 1306.2 Programme à vérifier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1336.3 Vue principale de l’outil de résolution. . . . . . . . . . . . . . . . . . . 1396.4 Exemple de programme satisfaisant une propriété. . . . . . . . . . . . . 1406.5 Affichage de la preuve que le programme satisfait une propriété en format

texte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1416.6 Affichage de la preuve que le programme satisfait une propriété en format

pdf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1426.7 Vérification de modèles d’un programme comportant des inconnues. . . 1436.8 Fonctionnalités de traduction d’un programme C et d’une formule de la

logique L vers des expressions de l’algèbre de Kleene. . . . . . . . . . . 145

Page 8: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 1

Introduction

Avec l’omniprésence de l’informatique dans la société actuelle, les compagnies et lesparticuliers sont de plus en plus exigeants envers les logiciels. Ils veulent notammentavoir l’assurance que ceux-ci sont fiables, sécuritaires et qu’ils demeurent performants etadaptés à leurs besoins tout au long de leur utilisation. Afin de répondre à ces attentes,les informaticiens ont développé diverses méthodes qui visent à analyser les programmesinformatiques dans le but, entre autres, de garantir leur bon fonctionnement ou d’enfaciliter la compréhension par les équipes de développement. Cela dit, bien que plusieursde ces techniques existent depuis un certain temps déjà dans le milieu académique, ellestardent à s’imposer en industrie. Plusieurs raisons expliquent cette situation. Parmicelles-ci, il y a, entre autres, le fait que les techniques existantes s’adaptent mal à uncontexte de développement où le programme est en constante évolution. Aussi, chaqueproblème lié à l’analyse de programmes requiert l’utilisation d’une technique particulièrenécessitant généralement une bonne connaissance de la théorie sous-jacente pour êtreappliquée.

Afin de faciliter l’introduction de ces techniques d’analyse en industrie, il seraitdonc à notre avantage d’avoir une méthode générale applicable à plusieurs problèmes etpouvant être utilisée avec un minimum de connaissances dans le domaine. Cela dit, lasituation décrite précédemment relève plus d’une vision idéaliste que d’une vision réa-liste de l’analyse de programmes considérant l’état actuel des connaissances sur le sujet.Toutefois, dans cette optique, il est légitime de se demander s’il est possible d’aborderautrement certaines techniques d’analyse de programmes existantes afin d’avoir unenouvelle perspective sur les problèmes qu’elles résolvent. En changeant notre visionde la sorte, il se peut que nous fassions des constatations qu’il aurait été difficile defaire autrement ou que nous découvrions des liens jusqu’alors insoupçonnés entre lesdifférentes techniques d’analyse de programmes.

Page 9: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 1. Introduction 2

Parmi ces approches originales nous permettant d’aborder les problèmes autrement,nous retrouvons notamment l’analyse de programmes basée sur l’algèbre de Kleene.Dans cette approche, les programmes informatiques sont représentés par des élémentsd’une algèbre. Cette algèbre, au même titre que l’algèbre classique apprise à la petiteécole, possède un ensemble de règles préétablies qui permettent de manipuler les élé-ments afin d’inférer de nouvelles connaissances sur le programme informatique. En fait,en algèbre de Kleene, il s’avère que les règles transcrivent mathématiquement le com-portement escompté des structures de base permettant de construire un programmeinformatique, c’est-à-dire le séquencement d’actions, le choix entre deux actions et l’ité-ration d’un bloc d’actions.

En représentant les programmes en algèbre de Kleene, il a, entre autres, été possiblede prouver que deux programmes sont équivalents [47], de certifier que des optimisationsde code faites par les compilateurs sont correctes [55], de vérifier qu’un programme a lecomportement souhaité [9, 48], de prouver la consistance d’un protocole [14] et de fairela vérification de code Java compilé [37]. Cependant, même si l’algèbre de Kleene s’estmontrée un outil mathématique efficace pour traiter bon nombre de problèmes issusde l’analyse de programmes, nous sommes encore loin d’avoir un cadre théorique danslequel nous savons d’emblée comment aborder tel ou tel problème. La raison principalede ceci vient du fait qu’il est, en général, difficile de faire des déductions en algèbre deKleene [16, 28, 54]. Ceci a comme désavantage que la plupart des applications actuellesde l’algèbre de Kleene à l’analyse de programmes se font en sélectionnant un problèmeprécis et en voyant comment l’algèbre de Kleene permet de le résoudre.

Dans ce mémoire nous visons à développer un cadre théorique utilisant l’algèbrede Kleene qui permet d’aborder plus d’un problème issu de l’analyse de programmes.Concrètement, nous nous intéressons à déterminer les possibilités qu’offre la résolutionde systèmes d’équations en terme d’analyse de programmes. En d’autres mots, nouscherchons à savoir dans quelle mesure la vérification par évaluation de modèles [10, 33,35] et la synthèse de contrôleurs [8, 19] peuvent être ramenées au problème de résolutionde systèmes d’équations en algèbre de Kleene. Au premier abord, cela peut sembler unefaçon étrange de considérer ces problèmes. Toutefois, lorsque nous nous attardons unpeu sur la question, nous nous s’apercevons qu’il ne s’agit pas d’une idée si farfelue.En effet, en vérification de modèles, nous voulons s’assurer qu’un programme respecteun ensemble de contraintes. Or, un système d’équations représente généralement unensemble de contraintes que nous voulons satisfaire. Nous pouvons donc penser quesi le système d’équations possède une solution alors l’ensemble de contraintes peutêtre satisfait. De plus, en synthèse de contrôleurs, nous cherchons comment modifierun programme afin qu’il respecte un ensemble de contraintes. Ceci ressemble alorsétrangement au problème de trouver la solution d’un système d’équations décrivant des

Page 10: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 1. Introduction 3

contraintes.

1.1 Objectifs

Comme nous l’avons mentionné précédemment, notre principal objectif est de fairede la résolution de systèmes d’équations en algèbre de Kleene et de voir quels bénéficesnous pourrions en tirer dans les problèmes liés à l’analyse de programmes. Plus précisé-ment, nous nous intéressons à la résolution d’équations quasi linéaires (voir chapitre 5).Nous nous restreindrons de la sorte à un type particulier d’équations, principalementen raison du fait qu’il existe peu, à notre connaissance, de travaux sur la résolutiond’équations en algèbre de Kleene. Donc au lieu de considérer le problème de la résolutiond’équations dans son ensemble, nous préférons nous attarder à un problème de moindreenvergure de façon à identifier, dans un premier temps, les enjeux de la résolutiond’équations en algèbre de Kleene. Nous nous trouvons alors à développer un « coffreà outils » pour la résolution d’équations en algèbre de Kleene qui pourra être réutiliséultérieurement afin de résoudre un éventail plus grand de systèmes d’équations.

1.2 Contributions

Ce mémoire contribue à l’avancement des connaissances de trois façons différentes.Premièrement, nous faisons un retour sur les fondements de base de l’algèbre linéairepour, par la suite, généraliser les notions d’espace vectoriel, de transformation linéaireet de transformation affine à d’autres structures algébriques que les corps (voir sec-tion 3.1.2). Plus précisément, nous généralisons ces notions à l’ensemble de toutes lessous-classes des demi-anneaux alors que dans la littérature elles ne le sont que pourles anneaux. À l’aide de ces notions, nous formalisons ce que nous entendons par équa-tions linéaires et équations affines dans l’ensemble de toutes les sous-classes de demi-anneaux et par le fait même en algèbre de Kleene. Nous voyons aussi comment celles-cisont utilisées en algèbre linéaire afin de résoudre des systèmes d’équations linéaires etcomment cette technique de résolution pourrait être transposée aux sous-classes desdemi-anneaux.

La principale contribution de ce mémoire concerne la résolution de systèmes d’équa-tions quasi linéaires en algèbre de Kleene. Ceci a d’ailleurs mené à la publication dedeux articles et d’un rapport technique [57, 58, 59]. En particulier, nous faisons ladistinction entre deux types d’équations, soit les équations explicites et les équations

Page 11: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 1. Introduction 4

implicites. Pour chacun des cas, nous présentons les différentes problématiques liées àleurs résolutions ainsi que les moyens de les contourner. Cela dit, la résolution d’équa-tions quasi linéaires en algèbre de Kleene demeure, en général, une chose relativementdifficile à faire. Pour cette raison, nous nous sommes aussi attardés à la résolutiond’équations quasi linéaires dans une sous-classe de l’algèbre de Kleene. Un point in-téressant au sujet de cette sous-classe c’est qu’elle fournit, tout comme l’algèbre deKleene, une axiomatisation intègre et complète de la théorie équationnelle de l’algèbredes ensembles réguliers. En fait, cette particularité est exploitée afin de trouver la plusgrande solution d’une équation si elle existe.

Finalement, nous présentons comment la vérification de modèles pour une versionrestreinte du µ-calcul linéaire peut être faite de manière algébrique. Dans cette approche,nous traduisons le programme ainsi que la propriété que nous voulons que ce dernierrespecte en algèbre de Kleene. Puis, nous appliquons une série de lois et de théorèmesde l’algèbre de Kleene qui permettent de déterminer si le programme satisfait ou nonla propriété. Nous fournissons, en plus, un résultat d’intégrité et de complétude del’approche algébrique par rapport à l’approche classique ; c’est-à-dire qu’un programmesatisfait une propriété selon l’approche algébrique si et seulement s’il la satisfait selonl’approche classique. De plus, nous montrons comment, avec l’approche algébrique, ilest possible d’introduire des variables dans le modèle du programme pour abstraire desparties inconnues de ce dernier. Ceci permet de faire de la vérification de modèles defaçon modulaire. Nous pouvons donc vérifier qu’une partie du programme respecte lapropriété et laisser pour plus tard la vérification du reste du programme.

1.3 Structure du mémoire

Dans le chapitre 2, nous présentons un modèle important de la théorie du calcul soitles langages réguliers ainsi qu’une extension de ceux-ci. Nous considérons ces modèlesen particulier parce qu’ils ont joué un rôle important dans le développement de l’algèbrede Kleene et de l’algèbre de Kleene avec tests. De plus, nous nous servons de théorèmesdes langages réguliers pour définir une algèbre dans laquelle la résolution d’équationsest plus simple qu’en algèbre de Kleene. Le chapitre 3, quant à lui, présente de façonbrève et autant que possible concise, l’ensemble des notions mathématiques qui serontutilisées dans les chapitres subséquents. L’objectif visé ici est d’introduire le lecteur auxnotions qui lui permettront de suivre le propos de ce mémoire. Il ne s’agit donc pas d’uneprésentation approfondie de ces notions. Au chapitre 4, nous voyons comment étendreplusieurs notions de l’algèbre linéaire classique à l’algèbre de Kleene dont, notamment,la définition d’équations linéaires. Le chapitre 5 traite de la résolution d’équations quasi

Page 12: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 1. Introduction 5

linéaires en algèbre de Kleene à proprement parler. Il montre comment aborder le pro-blème de résolutions dans différents cas. Le chapitre 6 présente comment une partie dutravail portant sur la résolution d’équations en algèbre de Kleene peut-être reprise dansle cadre d’une application à l’analyse de programmes. Le chapitre 7 fait un retour surle contenu de ce mémoire et présente quelques avenues de recherches pouvant s’inscriredans la continuité du travail que nous avons fait.

Page 13: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 2

Langages formels

Ce chapitre présente brièvement deux types de langages formels soit les langagesréguliers et les langages réguliers sur les mots gardés. Les notions concernant les langagesréguliers sont tirées de [22, 67] tandis que celles concernant les langages réguliers surmots gardés sont tirées de [16, 38, 46, 56]. Nous avons retenu ceux-ci en particulier, caril s’agit de modèles théoriques qui ont un lien très étroit soit avec l’algèbre de Kleene,soit avec une extension de cette dernière, nommée algèbre de Kleene avec tests ; lienque nous présenterons en détail dans la section 3.2. Cela dit, pour l’instant, il suffitd’avoir en tête que les langages réguliers sont à la base de la définition de l’algèbre deKleene. De plus, nous exploiterons davantage ce lien, au chapitre 5, afin de définir unenouvelle algèbre en ajoutant des axiomes à ceux de l’algèbre de Kleene, algèbre pourlaquelle nous serons en mesure de résoudre plus facilement des équations.

2.1 Langages réguliers

2.1.1 Notion de langage

À la base de n’importe quel langage, il y a ce que nous appelons l’alphabet.

Définition 2.1.1 (Alphabet). Un alphabet Σ est un ensemble fini, non vide.

Les éléments de l’alphabet sont appelés lettres. Un mot m sur un alphabet Σ estdéfini comme étant une suite finie de lettres, potentiellement vide, (a1, a2, . . . , an) oùai ∈ Σ pour tout i allant de 1 à n inclusivement pour tout n ∈ N. Autrement dit, un

Page 14: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 2. Langages formels 7

mot est un élément d’un produit cartésien fini de l’ensemble Σ par lui-même. Une suitede lettres est couramment représentée soit par ε, dans le cas où n = 0, ou par a1a2 . . . an.Le symbole ε représente la suite vide, aussi appelée mot vide. La longueur d’un mot mest notée par |m|. Elle est égale à n pour un mot de la forme a1a2 . . . an. La i

e lettred’un mot m est désignée par m[i]. Deux mots m et m′ sont égaux si et seulement s’ilsont la même longueur, c’est-à-dire |m| = |m′|, et que pour tout 1 ≤ i ≤ |m| nous avonsque m[i] = m′[i].

Définition 2.1.2 (Fermeture). La fermeture d’un alphabet Σ, notée par Σ∗, est l’en-semble de tous les mots pouvant être formés à partir de l’alphabet Σ. C’est-à-dire

Σ∗ =⋃n∈N

{m : |m| = n}

où l’ensemble {m : |m| = n} correspond à l’ensemble de tous les mots de longueur n,aussi noté par Σn = Σ× Σ× · · · × Σ︸ ︷︷ ︸

nfois

.

D’après la définition de la fermeture, il est évident que l’ensemble Σ∗ est infiniet dénombrable. De plus, il nous est maintenant possible de caractériser ce que nousentendons par langage.

Définition 2.1.3 (Langage). Un langage sur un alphabet Σ est un sous-ensemble del’ensemble Σ∗.

Exemple 2.1.4. Soit l’alphabet Σ = {a, b}. Alors les ensembles

∅, {ε}, {a, b, aaab, bababa}, {m ∈ Σ∗ : |m| mod 2 ≡ 0}

sont des langages formés à partir de cet alphabet.

L’ensemble de tous les langages sur l’alphabet Σ, noté par LAN(Σ), correspondà l’ensemble puissance de Σ∗, ℘(Σ∗), c’est-à-dire l’ensemble formé de tous les sous-ensembles de Σ∗. Comme les langages sont en fait des ensembles, nous pouvons lesmanipuler en appliquant des opérations ensemblistes telles l’union, l’intersection et ladifférence pour ne nommer que celles-ci. Cela dit, il est aussi possible de manipuler au-trement les langages en définissant de nouveaux opérateurs. À la base de ces opérateursnous retrouvons le produit de concaténation de mots.

Définition 2.1.5 (Concaténation de mots). Soit m et m′ deux mots sur un alphabetΣ. Nous définissons le produit de concaténation de mots · : Σ∗ × Σ∗ −→ Σ∗ par

m ·m′ def=

a1a2 . . . anb1b2 . . . bn′ si m = a1a2 . . . an et m′ = b1b2 . . . bn′(∀n, n′ ∈ N+)

m si m′ = ε

m′ si m = ε

Page 15: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 2. Langages formels 8

Cette notion de concaténation de mots peut être naturellement étendue aux lan-gages.

Définition 2.1.6 (Concaténation de langages). Soit L et L′ deux langages sur un alpha-bet Σ. Nous définissons le produit de concaténation de langages • : ℘(Σ∗)× ℘(Σ∗) −→℘(Σ∗) par

L • L′ def= {m ·m′ : m ∈ L ∧m′ ∈ L′} .

Exemple 2.1.7. Soit L = {acb, aabb, cc} et L′ = {bbaa, bca, cc} deux langages sur l’al-phabet Σ = {a, b, c}. Alors, le produit de concaténation des langages est donné par

L • L′ = {acbbbaa, acbbca, acbcc, aabbbbaa, aabbbca, aabbcc, ccbbaa, ccbca, cccc} .

Tout comme nous l’avons fait dans le cas d’un alphabet, il est possible de définirla fermeture d’un langage. Pour ce faire, nous commençons par définir la ne puissanced’un langage L, notée par Ln, pour tout n ∈ N inductivement par

L0 def= {ε},

Ln+1 def= L • Ln .

La fermeture d’un langage L, notée par L∗, est alors définie par

L∗def=⋃n∈N

Ln .

L’ensemble L∗ correspond donc à l’ensemble de tous les mots qui peuvent être formésà partir de la concaténation de mots du langage L.

À partir de la concaténation de mots, il est aussi possible de définir des opérations,nommées résidus, qui agissent en quelque sorte comme une opération inverse du produitde concaténation. Plus précisément, ceux-ci nous permettent de retrancher un mot dudébut ou de la fin d’un autre mot. Par exemple, du mot abbab nous pouvons retrancherde la fin le mot bab afin d’obtenir le mot ab.

Définition 2.1.8 (Opérateurs de résidus). Soit L et L′ deux langages sur un alphabetΣ. Alors, nous définissons les opérateurs de résidus \ : ℘(Σ∗) × ℘(Σ∗) −→ ℘(Σ∗) et/ : ℘(Σ∗)×℘(Σ∗) −→ ℘(Σ∗) respectivement nommés résidu à gauche et résidu à droitepar :

L\L′ def= {z ∈ Σ∗ : (∀y ∈ L) y · z ∈ L′}

L′/Ldef= {z ∈ Σ∗ : (∀y ∈ L) z · y ∈ L′} .

Exemple 2.1.9. Soit l’alphabet Σ = {a, b, c}. Voici quelques exemples de calculs durésidu de deux langages définis sur cet alphabet :

{ac, aa, ba}\{acabb, aaabb, baabb} = {abb}{b, a}\{a, b} = {ε}

{ccc, cc}\{cccba} = ∅ .

Page 16: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 2. Langages formels 9

Nous terminons cette section en présentant différentes propriétés qui découlent de ladéfinition des résidus sur les langages. Celles-ci s’avéreront très utiles dans la définitiond’axiomes qui s’ajouteront à ceux de l’algèbre de Kleene. En fait, c’est avec l’aide deces nouveaux axiomes que nous serons en mesure de calculer la solution d’un systèmed’équations pour un type particulier d’algèbre de Kleene. Cela dit, il est à noter quenous présentons les preuves de ces propriétés uniquement pour l’opérateur \ car ellessont symétriques pour l’opérateur /.

Lemme 2.1.10. Pour tout x ∈ Σ nous avons que

{x}\{x} = {ε}{x}/{x} = {ε} .

Preuve du lemme 2.1.10 :

{x}\{x}= 〈 Définition de \ (2.1.8) 〉

{z ∈ Σ∗ : x · z ∈ {x}}= 〈 L’ensemble {x} contient un seul élément 〉

{z ∈ Σ∗ : x · z = x}= 〈 x · z = x→ |x · z| = |x| → |x|+ |z| = |x| → z = ε 〉

{ε}

Lemme 2.1.11. Pour tout x, y ∈ Σ et x 6= y nous avons que

{y}\{x} = ∅{x}/{y} = ∅ .

Preuve du lemme 2.1.11 :

{y}\{x}= 〈 Définition de \ (2.1.8) 〉

{z ∈ Σ∗ : y · z ∈ {x}}= 〈 L’ensemble {x} contient un seul élément 〉

{z ∈ Σ∗ : y · z = x}= 〈 Hypothèse x 6= y 〉

Page 17: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 2. Langages formels 10

Lemme 2.1.12. Pour tout y ∈ Σ nous avons que

{y}\{ε} = ∅{ε}/{y} = ∅ .

Preuve du lemme 2.1.12 :

{y}\{ε}= 〈 Définition de \ (2.1.8) 〉

{z ∈ Σ∗ : y · z ∈ {ε}}= 〈 L’ensemble {ε} contient un seul élément 〉

{z ∈ Σ∗ : y · z = ε}= 〈 Égalité entre deux mots, y ∈ Σ, z ∈ Σ∗ et Définition de · (2.1.5) 〉

Lemme 2.1.13. Pour tout y ∈ Σ nous avons que

{y}\∅ = ∅∅/{y} = ∅ .

Preuve du lemme 2.1.13 :

{y}\∅= 〈 Définition de \ (2.1.8) 〉

{z ∈ Σ∗ : y · z ∈ ∅}= 〈 Définition de ∈ 〉

Page 18: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 2. Langages formels 11

Lemme 2.1.14. Pour tout X, Y ∈ ℘(Σ∗) et z ∈ Σ nous avons que

{z}\(Y ∪X) = ({z}\Y ) ∪ ({z}\X)

(X ∪ Y )/{z} = (X/{z}) ∪ (Y/{z}) .

Preuve du lemme 2.1.14 :

{z}\(Y ∪X)

= 〈 Définition de \ (2.1.8) 〉{w ∈ Σ∗ : z · w ∈ (Y ∪X)}

= 〈 Définition de ∪ 〉{w ∈ Σ∗ : z · w ∈ X ∨ z · w ∈ Y }

= 〈 Définition de ∪ 〉{w ∈ Σ∗ : z · w ∈ X} ∪ {w ∈ Σ∗ : z · w ∈ Y }

= 〈 Définition de \ (2.1.8) 〉({z}\Y ) ∪ ({z}\X)

Lemme 2.1.15. Pour tout X ∈ ℘(Σ∗) et y, z ∈ Σ nous avons que

{z}\({y} •X) = ({z}\{y}) •X(X • {y})/{z} = X • ({y}/{z}) .

Preuve du lemme 2.1.15 :

{z}\({y} •X)

= 〈 Définition de \ (2.1.8) 〉{w ∈ Σ∗ : z · w ∈ {y} •X}

= 〈 Définition de • (2.1.6) 〉{w ∈ Σ∗ : z · w ∈ {y · x : x ∈ X}}

= 〈 Définition de ∈ 〉{w ∈ Σ∗ : (∃x ∈ X)z · w = y · x}

= 〈 y, z ∈ Σ 〉{w ∈ Σ∗ : (∃x ∈ X)z = y ∧ w = x}

= 〈 w = x et X ⊆ Σ∗ 〉{x ∈ X : z = y}

Page 19: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 2. Langages formels 12

= 〈 Lemmes (2.1.10), (2.1.11) et définition (2.1.6) 〉({z}\{y}) •X

2.1.2 Langages réguliers et automates finis déterministes

Nous désignons par langages réguliers l’ensemble des langages acceptés par les auto-mates finis déterministes. Afin de comprendre à quoi correspond la notion d’acceptationd’un langage par un automate fini déterministe, commençons par définir en quoi consisteun automate fini déterministe.

Définition 2.1.16 (Automate fini déterministe). Un automate fini déterministe est unquintuple M = (S, Σ, δ, ι, F ) tel que

– S est un ensemble fini (ensemble des états),– Σ est un ensemble fini (ensemble des étiquettes),– δ est une fonction S × Σ −→ S (fonction de transition),– ι ∈ S (état initial),– F ⊆ S (ensemble des états finaux).

Manipuler les automates finis déterministes directement en utilisant la définition2.1.16 peut devenir rapidement difficile pour un être humain. Pour cette raison, nousreprésentons souvent les automates finis déterministes à l’aide d’un diagramme de tran-sitions. Dans de tels diagrammes, les éléments de l’ensemble S sont associés à des étatsreprésentés par des cercles. Les états sont reliés entre eux par des arcs orientés et éti-quetés par un élément de Σ en accord avec la fonction δ. Enfin, ι correspond à un étatinitial qui est désigné par une flèche et les éléments de F sont des états finaux désignéspar un double cercle.

Exemple 2.1.17. L’automate fini déterministe M = (S, Σ, δ, ι, F ) où S = {1, 2},Σ =

{a, b}, ι = 1, F = {2} et

δ(1, a) = 1, δ(2, a) = 2

δ(1, b) = 2, δ(2, b) = 1

peut être représenté à l’aide du diagramme de transitions suivant :

Page 20: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 2. Langages formels 13

1 2b

b

a a

En fait, il arrive souvent que nous ne donnons pas explicitement le quintuple défi-nissant un automate fini déterministe mais uniquement le diagramme de transitions quilui est associé.

Définition 2.1.18 (Acceptation). Un automate fini déterministe M = (S, Σ, δ, ι, F )

accepte un mot m = a1a2 . . . an si et seulement s’il existe une suite finie d’étatss1, s2, . . . , sn+1 telle que s1 = ι, sn+1 ∈ F et que pour tout 1 ≤ j ≤ n nous avonsque δ(sj, aj) = sj+1.

Nous avons maintenant tous les outils nécessaires pour faire un retour sur la défini-tion des langages réguliers, donnée au début de cette section.

Définition 2.1.19 (Langage régulier). Un langage régulier sur un alphabet Σ est toutsous-ensemble L de Σ∗ tel qu’il existe un automate fini déterministeM = (S, Σ, δ, ι, F )

qui accepte exactement chacun de ses mots et aucun autre. C’est-à-dire, x ∈ L si etseulement si x est accepté par M .

Nous noterons par L(M) le langage accepté par l’automate M .

L’ensemble des langages réguliers sur un alphabet Σ, noté par RegΣ, correspondalors aux langages qui sont acceptés par l’ensemble de tous les automates finis déter-ministes définis sur l’alphabet Σ.

Une autre façon de représenter un automate fini déterministe M consiste à générerun système d’équations qui a comme seule et unique solution le langage accepté parM .Soit M = (S, Σ, δ, ι, F ) un automate fini déterministe. Nous définissons pour touts ∈ S

γsdef=

{{ε} si s ∈ F∅ sinon

et pour tout couple (s, s′) ∈ S × S

Es,s′def= {a : δ(s, a) = s′} .

Alors, le système d’équations linéaires associé à M est l’ensemble des |S| équations à|S| inconnues, (Xs)s∈S, suivant :

Xs =⋃s′∈S

Es,s′ •Xs′ ∪ γs .

Page 21: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 2. Langages formels 14

Exemple 2.1.20. Considérons l’automate fini déterministe M = (S, Σ, δ, ι, F ) oùS = {1, 2},Σ = {a, b}, ι = 1, F = {2} et

δ(1, a) = 1, δ(2, a) = 2

δ(1, b) = 2, δ(2, b) = 1 .

Ce dernier peut être écrit sous la forme du système d’équations suivant :{X1 = {a} •X1 ∪ {b} •X2

X2 = {a} •X2 ∪ {b} •X1 ∪ {ε}

Théorème 2.1.21. Soit M = (S, Σ, δ, ι, F ) un automate fini déterministe. Lesystème d’équations associé à M ,

Xs =⋃s′∈S

Es,s′ •Xs′ ∪ γs

, possède une et une seule solution L(M), c’est-à-dire que Xι = L(M).

Preuve du théorème 2.1.21 (tirée de [67]) :

Supposons que le langage L soit solution du système d’équations. Alors, nous allonsmontrer qu’un mot appartient à L si et seulement s’il appartient à L(M). Un motx1, x2, . . . , xn appartient à L(M) si et seulement s’il existe une suite s1 = ι, s2, . . . , sn+1

telle que δ(sj, a) = sj+1 pour tout 1 ≤ j ≤ n et sn+1 ∈ F . Par définition de Es,s′ et de •un mot appartient à L si et seulement s’il existe une suite s1 = ι, s2, . . . , sn+1 telle quexj ∈ Esj ,sj+1

pour tout 1 ≤ j ≤ n. De plus, il faut que γsj+1= {ε} sinon le mot aurait

une lettre de plus. Or, nous savons que xj ∈ Esj ,sj+1si et seulement si δ(sj, xj) = sj+1 et

que γsj+1= {ε} si et seulement si sj+1 ∈ F . Donc un mot est accepté par l’automate M

si et seulement si nous sommes en mesure de générer ce mot en parcourant le systèmed’équations. �

Tout comme nous avons l’habitude de le faire en algèbre linéaire, il est possibled’exprimer ce système d’équations sous forme matricielle. Ceci est possible en raison dufait que les opérations de concaténation et d’union des langages forment un demi-anneau(voir la définition 3.2.1 à la page 45). Nous définissons alors le produit et la sommationmatricielle comme nous le faisons en algèbre linéaire en remplaçant les opérations demultiplication et d’addition par • et ∪ respectivement. À titre d’exemple, le systèmed’équations donné à l’exemple 2.1.20 s’écrit sous forme matricielle de la façon suivante :[

X1

X2

]=

[{a} {b}{b} {a}

]•

[X1

X2

]∪

[∅{ε}

].

Page 22: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 2. Langages formels 15

En fait, cette correspondance entre les automates et les systèmes d’équations est àla source du résultat de complétude de l’algèbre de Kleene (voir la section 3.2.1). Deplus, au chapitre 5, nous exploiterons davantage ce lien afin de pouvoir résoudre dessystèmes d’équations.

Cela dit, bien que nous définissons les langages réguliers à partir des automates finisdéterministes, il existe un autre genre d’automate qui accepte exactement les langagesréguliers. Il s’agit des automates finis non déterministes.

Définition 2.1.22 (Automate fini non déterministe). Un automate fini non déter-ministe est une quintuple M = (S, Σ, ρ, ι, F ) tel que

– S est un ensemble fini (ensemble d’états),– Σ est un ensemble fini (ensemble d’étiquettes),– ρ est un sous-ensemble de S × S × Σ (relation de transitions),– ι ∈ S (état initial),– F ⊆ S (ensemble d’états finaux).

L’équivalence de ces automates avec les automates finis déterministes nous est ga-rantie par le théorème suivant.

Théorème 2.1.23. Pour tout automate fini non déterministe, il existe un automatefini déterministe qui accepte exactement le même langage.

Avant de donner la preuve du théorème 2.1.23 nous définissons en quoi consiste lanotion d’acceptation sur ceux-ci. La notion d’acceptation d’un mot par un automate fininon déterministe est très similaire à celle donnée pour un automate fini déterministe.

Définition 2.1.24 (Acceptation). Un automate fini non déterministeM = (S, Σ, ρ, ι, F ) accepte un mot m = a1a2 . . . an si et seulement s’il existe unesuite finie s1, s2, . . . , sn+1 telle que s1 = ι, sn+1 ∈ F et que pour tout 1 ≤ j ≤ n nousavons que (sj, aj, sj+1) ∈ ρ.

Nous sommes maintenant en mesure de prouver le théorème 2.1.23.

Preuve du théorème 2.1.23 (tirée de [21]) :

Soit M = (S, Σ, ρ, ι, F ) un automate fini non déterministe. Nous allons montrerqu’il existe un automate fini déterministeM ′ = (S ′, Σ, δ, ι′, F ′) qui accepte exactementle même langage. Premièrement, nous définissons M ′ de la manière suivante :

– S ′ = ℘(S)

Page 23: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 2. Langages formels 16

– δ(s′, x) = {s ∈ S : ∃r ∈ s′ : (r, x, s) ∈ ρ}– ι′ = {ι}– F ′ = {T ⊆ S : T ∩ F 6= ∅}.Nous voulons donc prouver que le langage accepté par M est le même que celui

accepté par M ′, c’est-à-dire que L(M) = L(M ′). Pour ce faire, nous allons nous limiterà montrer que L(M) ⊆ L(M ′), la preuve de L(M) ⊇ L(M ′) étant symétrique à celle-ci.

L(M) ⊆ L(M ′)

Nous allons montrer, par induction, que pour une suite s1, s2, . . . , sn+1 d’élémentsde S et un mot m = a1, a2 . . . an tels que s1 = ι et que (sj, aj, sj+1) ∈ ρ pour tout1 ≤ j ≤ n, il existe une suite s′1, s′2, . . . , s′n+1 telle que s′1 = ι′, que δ(s′j, aj) = s′j+1

pour tout 1 ≤ j ≤ n et que sn+1 ∈ s′n+1.– Cas de base : n = 0. Direct car s1 ∈ ι′.– Étape d’induction.

s1 = ι, s2, . . . , sk+1, sk+2 est un chemin de M↔ 〈 (sj, aj, sj+1) ∈ ρ 〉

s1, s2, . . . , sk+1 est un chemin de M ∧ (sk+1, ak, sk+2) ∈ ρ→ 〈 Hypothèse d’induction 〉

∃s′1 = ι′, s′2, . . . , s′k+1 ∧ sk+1 ∈ s′k+1 ∧ (sk+1, ak, sk+2) ∈ ρ

→ 〈 Définition de δ 〉∃s′1, s′2, . . . , s′k+1 ∧ sk+2 ∈ δ(s′k+1, ak+1)

→ 〈 Posons s′k+2 = δ(s′k+1, ak+1) 〉∃s′1, s′2, . . . , s′k+1, s

′k+2 est un chemin de M ′

Supposons maintenant que s1, s2, . . . , sn+1 est une suite d’éléments de S telle que lemot m = a1, a2, . . . , an est accepté par M . Nous savons alors qu’il existe une suites′1, s

′2, . . . , s

′n+1 d’éléments de S ′ telle que s′1 = ι′, que δ(s′j, aj) = s′j+1 pour tout

1 ≤ j ≤ n et que sn+1 ∈ s′n+1. Or, comme sn+1 ∈ F , car le mot est acceptépar M , nous avons que s′n+1 ∈ F ′ et donc que le mot m est accepté par M ′. �

Il est à noter que nous avons seulement montré que tout langage accepté par unautomate fini non déterministe peut être accepté par un automate fini déterministe.Pour l’implication inverse, il suffit de remarquer que, par définition, tout automate finidéterministe est aussi un automate fini non déterministe.

Maintenant que nous avons caractérisé les langages réguliers en terme de la notiond’acceptation sur les automates finis déterministes, il est légitime de se demander sitous les langages sont réguliers. Le théorème 2.1.25 nous dit que ce n’est pas le cas,c’est-à-dire que LAN(Σ) ( RegΣ.

Théorème 2.1.25. Pour tout alphabet Σ, il existe un langage qu’aucun automate fini

Page 24: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 2. Langages formels 17

déterministe ne peut reconnaître.

Preuve du théorème 2.1.25 (tirée de [21]) :

Il est facile de constater que pour un alphabet fixé Σ, l’ensemble des automatesfinis déterministes sur cet alphabet est dénombrable. Puisqu’à chaque langage réguliercorrespond un automate fini déterministe nous avons que la cardinalité de RegΣ estinférieure ou égale à celle de N, c’est-à-dire |RegΣ| ≤ |N|. De plus, comme Σ∗ estinfini et dénombrable nous avons par définition que |Σ∗| = |N|. Finalement, pour toutensemble E, nous avons que |E| < |℘(E)|. Ceci fait que |RegΣ| < |℘(Σ∗)|. �

Pour illustrer le fait que ce ne sont pas tous les langages qui sont réguliers, con-sidérons le langage L = {anbn : n ∈ N} sur l’alphabet Σ = {a, b}. Nous montronsalors qu’il n’existe pas d’automate fini déterministe M = (S, Σ, δ, ι, F ) qui accepteexactement ce langage. Par définition,la cardinalité de S est finie. Supposons qu’il unautomate M = (S, Σ, δ, ι, F ) qui accepte le langage L et que |S| = j. Considérons lemot akbk ∈ L où j < k. Comme j < k, pour avoir lu k fois la lettre a, M a dû passerau moins deux fois par un même état. Ceci implique qu’il existe une boucle dans lediagramme de transitions pour laquelle M ne lit que des a. Or, M peut répéter cetteboucle autant de fois qu’il le veut, ce qui fait qu’il peut lire plus de k fois la lettrea. Donc pour qu’un automate fini déterministe reconnaisse le mot akbk il faut qu’ilreconnaisse aussi les mots qui contiennent plus de a que de b.

Toutefois, il est à noter que pour tout k fixé, le langage {ajbj : 0 ≤ j ≤ k} est unlangage régulier. Cette apparence de contradiction vient du fait que les langages régulierssont clos sous l’union finie mais qu’ils ne le sont pas sous l’union infinie. Il s’agit d’unenuance qui peut sembler anodine mais qui est d’une importance primordiale lorsquenous traitons de l’algèbre de Kleene.

Théorème 2.1.26. L’union de deux langages réguliers L1 et L2 est aussi un langagerégulier.

Preuve du théorème 2.1.26 (tirée de [21]) :

Soit M1 = (S1, Σ, ρ1, ι1, F1) et M2 = (S2, Σ, ρ2, ι2, F2), où S1 ∩ S2 = ∅,deux automates finis non déterministes tels que L1 = L(M1) et L2 = L(M2). Nousconstruisons l’automate M = (S, Σ, ρ, ι, F ) tel que L(M) = L(M1) ∪ L(M2) de lafaçon suivante :

– S = S1 ∪ S2 ∪ {ι}.– ρ = ρ1 ∪ ρ2 ∪ {(ι, x, q) : (ι1, x, q) ∈ ρ1 ∨ (ι2, x, q) ∈ ρ2}.

Page 25: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 2. Langages formels 18

– F =

{F1 ∪ F2 ∪ {ι} si ι1 ∈ F1 ∨ ι2 ∈ F2

F1 ∪ F2 sinon .

L’union de deux langages réguliers n’est pas la seule opération sous laquelle leslangages réguliers sont clos.

Théorème 2.1.27. La concaténation de deux langages réguliers L1 et L2 est aussi unlangage régulier.

Preuve du théorème 2.1.27 (tirée de [21]) :

Soit M1 = (S1, Σ, ρ1, ι1, F1) et M2 = (S2, Σ, ρ2, ι2, F2), où S1 ∩ S2 = ∅,deux automates finis non déterministes tels que L1 = L(M1) et L2 = L(M2). Nousconstruisons l’automate M = (S, Σ, ρ, ι, F ) tel que L(M) = L(M1) • L(M2) de lafaçon suivante :

– S = S1 ∪ S2.– ρ1 ∪ ρ2 ∪ {(p, x, q) : p ∈ F1 ∧ (ι2, x, q) ∈ ρ2}.– ι = ι1.

– F =

{F1 ∪ F2 si ι2 ∈ F2

F2 sinon .

Théorème 2.1.28. L’intersection de deux langages réguliers L1 et L2 est aussi unlangage régulier.

Preuve du théorème 2.1.28 (tirée de [67]) :

Soit M1 = (S1, Σ, ρ1, ι1, F1) et M2 = (S2, Σ, ρ2, ι2, F2), où S1 ∩ S2 = ∅,deux automates finis non déterministes tels que L1 = L(M1) et L2 = L(M2). Nousconstruisons l’automate M = (S, Σ, ρ, ι, F ) tel que L(M) = L(M1) ∩ L(M2) de lafaçon suivante :

– S = S1 × S2.– ρ = {(p, x, (s1, s2)) : (p, x, s1) ∈ S1 ∧ (p, x, s2) ∈ S2}.– ι = (ι1, ι2).– F = {(f1, f2) : f1 ∈ F1 ∧ f2 ∈ F2}.

Théorème 2.1.29. La fermeture d’un langage régulier L est aussi un langage régulier.

Preuve du théorème 2.1.29 (tirée de [21]) :

Page 26: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 2. Langages formels 19

Soit M = (S, Σ, ρ, ι, F ) un automate fini non déterministe tel que L = L(M).Nous construisons l’automate M ′ = (S ′, Σ, ρ′, ι′, F ′) tel que L∗ = L(M ′) de la façonsuivante :

– S ′ = S ∪ {ι′}.– ρ′ = ρ ∪ {(p, x, q) : p ∈ F ′ ∧ (ι, x, q) ∈ ρ}.– F ′ = F ∪ {ι′}.

Théorème 2.1.30. Le résidu de deux langages réguliers L1 et L2 est aussi un langagerégulier.

Pour démontrer le théorème 2.1.30, il est aussi possible de construire un automatefini acceptant le langage résultant du calcul du résidu de deux langages comme nousl’avons fait pour les autres opérations. Cela dit, cette construction n’est pas aussi évi-dente que les précédentes, car elle fait appel à un résultat concernant la dérivationd’expressions régulières [11, 17], les opérateurs de résidus sur les langages étant unegénéralisation de la notion de dérivation d’une expression régulière. Ce résultat stipuleque n’importe quelle expression régulière admet uniquement un nombre fini de dérivéeset que celles-ci sont à leur tour des expressions régulières [11][théorème 4.3]. Concrète-ment, cela signifie que pour un langage régulier L donné, il existe seulement un nombrefini de langages réguliers résultant du calcul du résidu de L par un autre langage (pasnécessairement régulier).

L’idée à la base de la preuve du théorème 2.1.30 est donc de parcourir l’automatereprésentant le langage L1 au numérateur en simulant un mot appartenant au langageL2 au dénominateur. L’état où nous nous retrouvons suite à cette opération correspondalors à l’état initial de l’automate donnant le résultat du résidu de L1 par le mot de L2.Or, comme nous savons que le langage L1 admet seulement un nombre fini de résidus,nous répétons cette opération avec d’autres mots de L2 jusqu’à ce que nous ayons lesautomates représentant tous les résidus de L1 possible. Puis finalement, nous faisonsl’intersection de tous ces automates représentant les résidus pour obtenir l’automatecorrespondant au résidu du langage L1 par L2.

Preuve du théorème 2.1.30 :

Soit M1 = (S1, Σ, ρ1, ι1, F1) et M2 = (S2, Σ, ρ2, ι2, F2), où S1 ∩ S2 = ∅,deux automates finis non déterministes tels que L1 = L(M1) et L2 = L(M2). Nousconstruisons l’automate M = (S, Σ, ρ, ι, F ) tel que L(M) = L(M2)\L(M1) de lafaçon suivante :

1. Rendre l’automate M1 déterministe de façon à ce que quand nous simulons les

Page 27: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 2. Langages formels 20

mots du langage L(M2) il n’y ait qu’un chemin possible. L’automate déterministerésultant sera noté M ′

1 = (S ′1, Σ, ρ′1, ι′1, F

′1).

2. Rendre tous les états deM ′1. L’automate résultant sera notéM ′′

1 = (S ′1, Σ, ρ′1, ι′1,

S ′1).

3. Calculer l’automate correspondant à l’intersection des langages L(M2) et L(M ′′1 ).

En effectuant cette opération nous nous retrouvons à simuler simultanément tousles mots du langage L(M2) sur l’automate M1. L’automate résultant sera notéML(M2)∩L(M ′′1 ) = (SL(M2)∩L(M ′′1 ), Σ, ρL(M2)∩L(M ′′1 ), ιL(M2)∩L(M ′′1 ), FL(M2)∩L(M ′′1 )) oùFL(M2)∩L(M ′′1 ) = {(f1, f2) : f1 ∈ F2 ∧ f2 ∈ S ′1}.

4. Conserver uniquement les états qui sont accessibles dans ML(M2)∩L(M ′′1 ). L’auto-mate résultant sera noté M ′

L(M2)∩L(M ′′1 ) = (S ′L(M2)∩L(M ′′1 ), Σ, ρ′L(M2)∩L(M ′′1 ),

ι′L(M2)∩L(M ′′1 ), F′L(M2)∩L(M ′′1 )) où F ′L(M2)∩L(M ′′1 ) ⊆ FL(M2)∩L(M ′′1 ).

5. Identifier les états de M ′1 qui sont atteints en simulant les mots de L(M2). C’est-

à-dire, {s′ ∈ S ′1 : f1 ∈ F2 ∧ (f1, s′) ∈ F ′L(M2)∩L(M ′′1 )}.

6. Pour chacun de ces états, construire à partir de M ′1 l’automate correspondant

au résidu du langage L(M ′1) par un mot de L(M2) en remplaçant dans M ′

1 l’étatinitial par ceux-ci.

7. Calculer l’intersection de tous les langages obtenus à l’étape précédente.

2.1.3 Expressions régulières

Afin de représenter les langages réguliers, nous pouvons utiliser ce que nous appelonsles expressions régulières. Ces expressions prennent une place importante lorsque nousnous intéressons à l’algèbre de Kleene. Intuitivement, sans entrer dans les détails, nouspouvons dire que les expressions régulières servent aussi à représenter les éléments d’unealgèbre de Kleene.

Définition 2.1.31 (Expression régulière). Une expression régulière sur un alphabet Σ

se définit, de façon inductive, par l’ensemble des propositions suivantes :

1. 0 est une expression régulière.

2. 1 est une expression régulière.

3. Tout élément x de Σ est une expression régulière.

4. Si p et q sont des expressions régulières alors p+ q est une expression régulière.

5. Si p et q sont des expressions régulières alors p · q est une expression régulière.

Page 28: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 2. Langages formels 21

6. Si p est une expression régulière alors p∗ est une expression régulière.

L’ensemble de toutes les expressions régulières pouvant être formées à partir d’unalphabet Σ est noté par RExpΣ. Le langage associé à une expression régulière r, notépar L(r), est défini, de manière inductive, comme suit :

L(0)def= ∅

L(1)def= {ε}

L(x)def= {x} pour tout x ∈ Σ

L(p+ q)def= L(p) ∪ L(q)

L(p · q) def= L(p) • L(q)

L(p∗)def= L(p)∗ .

Transformation d’une expression régulière en langage régulier

En se basant sur la définition de la fonction L que nous retrouvons ci-dessus, nouspouvons mettre en correspondance n’importe quelle expression régulière avec un lan-gage régulier. Pour montrer ceci, nous procédons par induction sur la structure d’uneexpression régulière r. Notre hypothèse d’induction est que L(p) est le langage régu-lier correspondant à la sous expression régulière strict p de r. Pour les cas de base oùr = 0, r = 1 et r = x pour tout x ∈ Σ, nous trouvons facilement que L(r) est un langagerégulier. Attardons nous maintenant aux étapes d’induction.

Pour l’étape d’induction r = p + q. Nous appliquons la fonction L, ce qui donneL(p + q) = L(p) ∪ L(q). Par le théorème 2.1.26, nous savons que L(p) ∪ L(q) est unlangage régulier car L(p) et L(q) le sont par hypothèse.

Pour l’étape d’induction r = p · q. Nous appliquons la fonction L, ce qui donneL(p · q) = L(p) • L(q). Par le théorème 2.1.27, nous savons que L(p) • L(q) est unlangage régulier car L(p) et L(q) le sont par hypothèse.

Pour l’étape d’induction r = p∗. Nous appliquons la fonction L, ce qui donne L(p∗) =

L(p)∗. Par le théorème 2.1.29, nous savons que L(p)∗ est un langage régulier car L(p)

l’est par hypothèse.

Page 29: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 2. Langages formels 22

Transformation d’un langage régulier vers une expression régulière

Il existe plusieurs techniques permettant de passer d’un langage régulier à une ex-pression régulière. L’idée commune à chacune de ces méthodes consiste à résoudre unsystème d’équations associé à un automate fini déterministe. Toutefois, dans le casprésent, les entrées des matrices définissant le système d’équations ne sont plus deslangages, comme nous l’avons vu précédemment, mais il s’agit plutôt d’expressions ré-gulières correspondant à ceux-ci. En reprenant l’exemple de la traduction d’un automateen système d’équations de la section précédente, le système d’équations correspondanten terme d’expressions régulières est :[

X1

X2

]=

[a b

b a

[X1

X2

]+

[0

1

].

Alors, l’expression régulière équivalente au langage accepté par l’automate décrit par cesystème d’équations est exactement la solution de ce dernier. Pour trouver la solutionà ce système d’équations, il existe une méthode, très simple à implanter, qui fait appelaux matrices sur l’algèbre de Kleene. Nous reviendrons sur cette méthode de résolutionà la section 3.2. Cela dit, bien que cette manière soit simple à implanter elle s’avèrecoûteuse en temps car elle fait plusieurs calculs intermédiaires qui n’ont pas ou a peuprès pas d’impact sur le calcul de la solution.

Comme nous sommes capable de transformer n’importe quel langage régulier enexpression régulière et vice-versa, nous pouvons affirmer que les expressions régulièresexpriment exactement les langages réguliers.

Théorème 2.1.32. Soit un alphabet Σ. L’ensemble RegΣ correspond exactement à⋃x∈RExpΣ

L(x). C’est-à-dire, qu’à chaque expression régulière il existe un langage ré-gulier correspondant à celle-ci et qu’à chaque langage régulier il existe une expressionrégulière correspondant à celui-ci.

À la section précédente, nous avons vu qu’il était possible de définir en plus desopérations d’union, de concaténation et de fermeture d’autres opérations sur les langagesréguliers. Or, comme il existe une correspondance un à un entre les langages régulierset les expressions régulières, il est aussi possible de définir ces autres opérations surles expressions régulières. C’est entre autre ce qu’a fait Brzozowski [11] en définissantles dérivations d’expressions régulières auxquelles nous avons déjà fait référence à lasection précédente à la page 19. Pour introduire cette notion, il a tout d’abord définirδ : RegΣ −→ {0, 1} par

δ(r)def=

{1 si 1 ≤ r

0 sinon .

Page 30: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 2. Langages formels 23

Définition 2.1.33 (Dérivation d’expressions régulières). Soit r une expression régulièreet a ∈ Σ. Alors, la dérivation de r par rapport à a, notée par Da(r) : RegΣ −→ RegΣ,est définie de manière inductive, comme suit :

Da(r)def=

1 si r = a

0 si r = 1 ou r = 0 ou r ∈ Σ\{a}Da(r1)r∗1 si r = r∗1Da(r1)r2 + δ(r1)Da(r2) si r = r1r2

Da(r1) +Da(r2) si r = r1 + r2 .

2.2 Langages réguliers sur des mots gardés

2.2.1 Notion de langage sur des mots gardés

Les langages sur les mots gardés [16, 38, 46, 56] sont une généralisation des langagestels que nous les avons présentés à la section 2.1.1. Ils ont été introduits afin de fournirun modèle naturel pour l’algèbre de Kleene avec tests. Dans ceux-ci, au lieu d’avoiruniquement, à la base du langage, un alphabet Σ, nous retrouvons aussi un ensemble fini,potentiellement vide, B. Ce dernier ensemble se nomme ensemble de tests élémentaireset il est disjoint de Σ, c’est-à-dire que B ∩ Σ = ∅. À chacun des éléments b de B nousassocions un élément complément, noté par b. De plus, nous définissons

Bdef= {b : b ∈ B} .

Définition 2.2.1 (Atome). Un atome sur un ensemble de tests B est une suite(c1, c2, . . . , c|B|) telle que chaque ci correspond à exactement un élément de B ou lecomplément de cet élément. Cette façon d’exprimer un atome sous-entend que nousavons fixé, au préalable, un ordre arbitraire sur les éléments de B.

Intuitivement, un atome correspond à une conjonction de |B| tests élémentaires.L’ensemble de tous les atomes sur un ensemble B est noté par AtomesB. Dans le casoù B = ∅, nous définissons la constante 1 comme étant le seul atome possible. De plus,nous dirons que deux atomes α = (c1, c2, . . . , c|B|) et β = (c′1, c

′2, . . . , c

′|B|) sont égaux,

noté par α = β, si et seulement si pour tout 1 ≤ i ≤ |B| on a que ci = c′i.

Un mot gardé sur un alphabet Σ et un ensemble de tests élémentaires B est unesuite finie (α0, a0, α1, a1, . . . αn−1, an−1, αn) où αi ∈ AtomesB et ai ∈ Σ pour tout iallant de 0 à n inclusivement et où n ∈ N. Un mot est généralement représenté par

Page 31: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 2. Langages formels 24

m = α0a0α1a1 . . . αn−1an−1αn et sa longueur, notée par |m|, est égale à n. La ie lettreet le je test d’un mot gardé m sont respectivement noté par m[i]Σ et par m[j]B. Deuxmots gardés m et m′ sont égaux si et seulement s’ils ont la même longueur, |m| = |m′|,et que pour tout 0 ≤ i < |m| nous avons que m[i]B = m′[i]B, que m[i]Σ = m′[i]Σ et quem[ |m| ]B = m′[ |m′| ]B.

À partir de ces définitions, nous remarquons qu’un mot sur un alphabet Σ correspondà un mot gardé sur le même alphabet pour lequel l’ensemble de tests élémentaires Best vide. C’est-à-dire que le mot a0a1 . . . an sur l’alphabet Σ où pour tout 0 ≤ i ≤ n

correspond au mot gardé 1a01a1 . . . 1an1.

Définition 2.2.2 (Ensemble des mots gardés). L’ensemble de tous les mots gardés surun alphabet Σ et un ensemble de tests élémentaires B est défini par

MGΣ,Bdef=⋃n∈N

{m : |m| = n} .

Définition 2.2.3 (Langage sur les mots gardés). Un langage sur les mots gardés estun sous-ensemble de MGΣ,B.

L’ensemble de tous les langages sur les mots gardés sur un alphabet Σ et sur unensemble de tests élémentaires B est noté par LAN(Σ, B). Nous noterons queAtomesBcorrespond à un langage sur les mots gardés. De plus, comme dans le cas des langages(définition 2.1.3 à la page 7), il est possible de définir des opérations nous permettantde manipuler des langages sur les mots gardés en définissant une opération similaire àcelle de la concaténation de mots.

Définition 2.2.4 (Concaténation de mots gardés). Soit m = α0s0α1s1 . . . αn−1sn−1αnet m′ = α′0s

′0α′1s′1 . . . α

′n′−1s

′n′−1α

′n′ deux mots gardés. Alors, nous définissons le produit

gardé de concaténation de ceux-ci par

m �m′ def=

{α0s0α1s1 . . . αn−1sn−1αns

′0α′1s′1 . . . α

′n′−1s

′n′−1α

′n′ si αn = α′0

non défini sinon .

D’après cette définition, nous remarquons que le produit gardé de concaténationest une opération partielle. Toutefois, ce n’est plus le cas lorsque nous étendons cettenotion de concaténation aux langages sur les mots gardés.

Définition 2.2.5 (Concaténation de langages sur les mots gardés). Soit L et L′ deuxlangages sur les mots gardés. Nous définissons le produit gardé de concaténation� : LAN(Σ, B)× LAN(Σ, B) −→ LAN(Σ, B) par

L � L′ = {m �m′ : m ∈ L ∧m′ ∈ L′}

Page 32: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 2. Langages formels 25

Tout comme dans le cas du produit de concaténation de langages (définition 2.1.6 àla page 8), le produit gardé de concaténation possède un élément neutre. Dans ce cas,il s’agit de l’ensemble AtomesB. En faisant appel à cet élément neutre, nous pouvonsdéfinir la fermeture d’un langage sur les mots gardés. Nous commençons par définir lespuissances d’un langage L sur les mots gardés, de façon inductive, par :

L0 def= AtomesB

Ln+1 def= L � Ln .

La fermeture d’un langage sur les mots gardés est définie par :

L∗def=⋃n∈N

Ln .

Nous pouvons aussi définir les opérateurs de résidus pour les langages sur les motsgardés.

Définition 2.2.6 (Opérateurs de résidus). Soit L et L′ deux langages sur les motsgardés sur un alphabet Σ et un ensemble de tests élémentaires B. Alors, nous défi-nissons les opérateurs de résidus \ : LAN(Σ, B) × LAN(Σ, B) −→ LAN(Σ, B) et/ : LAN(Σ, B)× LAN(Σ, B) −→ LAN(Σ, B) par :

L\L′ def= {z ∈MGΣ,B|L � {z} ⊆ L′}

L′/Ldef= {z ∈MGΣ,B|{z} � L ⊆ L′} .

Remarque 2.2.7. Dans le cas où l’ensemble de tests élémentaires est vide, c’est-à-direque B = ∅, la définition 2.2.6 correspond à la définition 2.1.8 des opérateurs de résidussur les langages.

Dans le cas des langages (définition 2.1.3 à la page 7), nous avons mentionné le faitque nous avons utilisé des propriétés qu’ont les opérateurs de résidus afin de définir denouveaux axiomes pour l’algèbre de Kleene. Or, rien n’indique que nous ne pourrionsen faire autant avec les résidus sur les mots gardés. Ces nouveaux axiomes pourraientalors nous permettre de résoudre des équations en algèbre de Kleene avec tests ou dedévelopper une approche à la vérification de modèles pour le µ-calcul linéaire (voirsection 6.4).

2.2.2 Langages réguliers et automates finis déterministes sur lesmots gardés

Précédemment, nous avons vu que les langages réguliers étaient définis par les auto-mates finis déterministes ou de façon équivalente par les automates finis non détermi-nistes. Nous voudrions donc être en mesure de définir un type de langages sur les mots

Page 33: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 2. Langages formels 26

gardés qui correspondent aux langages réguliers lorsque l’ensemble de tests élémentairesest vide. Une première étape dans cette direction consiste à définir les automates finissur les mots gardés. Pour définir ces automates, nous avons besoin de définir B commeétant l’ensemble de tous les tests sur un ensemble de tests élémentaires B, c’est-à-dire

B def=⋃n∈N

(B ∪B)n.

Celui-ci est infini à strictement parler mais fini lorsque nous tenons compte de l’équi-valence des tests [38], ce qui fait que nous pouvons le considérer comme tel.

Définition 2.2.8 (Automate fini non déterministe sur les mots gardés). Un automatefini non déterministe sur les mots gardés est un tuple M = (S, Σ, B, ρ, ι, F ) tel que

– S est un ensemble fini (ensemble des états),– Σ est un ensemble fini non vide (ensemble des actions atomiques),– B est un ensemble fini (ensemble des tests élémentaires),– ρ est un sous-ensemble de S × (Σ ∪ B)× S (relation de transitions),– ι ∈ S (état initial),– F ⊆ S est un ensemble fini (ensemble des états finaux).

Nous remarquons que la définition d’un automate fini non déterministe sur les motsgardés est très similaire à celle d’un automate fini non déterministe. En fait, il s’agitde la même définition, à l’exception que dans le cas présent, nous ne définissons pas larelation de transition uniquement sur Σ, mais plutôt sur Σ ∪ B. De plus, nous dironsqu’un langage sur les mots gardés est régulier s’il s’agit d’un langage qui est acceptépar un automate fini non déterministe sur les mots gardés. Cela dit, avant de définirl’acceptation par un automate fini non déterministe sur les mots gardés, nous avonsbesoin d’introduire quelques notions supplémentaires.

Tout d’abord, nous dirons qu’un atome α = (c1, c2, . . . , c|B|) ∈ AtomesB est in-férieur ou égal à (ou satisfait, ou α ≤ b) un test élémentaire b ∈ B ∪ B s’il existeun 0 ≤ i ≤ |B| tel que ci = b. Plus généralement, un atome α satisfait un test b =

(b1, b2, . . . , bn) ∈ B si pour tout 0 ≤ i ≤ n, α ≤ bi. Puis nous définissons la fonctionG : (Σ∪B)∗ −→MGΣ,B qui prend un mot sur l’alphabet Σ∪B et retourne un ensemblede mots gardés, de façon inductive, comme suit :

G(p)def= {αpβ | α, β ∈ AtomesB} si p ∈ Σ

G(b)def= {α | α ≤ b et α ∈ AtomesB} si b ∈ B

G(pq)def= G(p) �G(q)

Définition 2.2.9 (Acceptation). Un automate fini non déterministe sur les mots gardésM = (S, Σ, B, ρ, I, F ) accepte un mot gardé m = α0s0α1s1 . . . αn−1sn−1αn si et

Page 34: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 2. Langages formels 27

seulement s’il existe un mot m′ sur l’alphabet Σ ∪ B qui est accepté par M (en accordavec la notion d’acceptation sur un automate fini non déterministe 2.1.24) tel quem ∈ G(m′).

L’ensemble de tous les mots gardés acceptés par un automateM est noté par G(M),c’est-à-dire le langage accepté par l’automate. Les langages réguliers sur les mots gar-dés sur un alphabet Σ et un ensemble de tests B, notés par RegΣ,B, correspondentalors à l’ensemble de tous les langages sur les mots gardés acceptés par l’ensemble desautomates finis non déterministes sur les mots gardés.

Comme la notion d’acceptation par un automate fini non déterministe sur les motsgardés fait appel à la notion d’acceptation par un automate fini non déterministe, ilest possible d’étendre plusieurs résultats des langages réguliers aux langages régulierssur les mots gardés. En fait, en utilisant la même approche que nous avons utiliséepour les langages réguliers, il est possible de montrer que les langages réguliers sur lesmots gardés sont clos sous l’union, la concaténation, l’intersection et la fermeture [16,Théorème 3.1]. De plus, il est aussi possible de prouver que les langages réguliers surles mots gardés sont clos sous les opérateurs de résidus [53, Théorème 4.3].

Un autre résultat important touchant les langages réguliers est que ceux-ci sontexactement les langages acceptés aussi bien par les automates finis déterministes que lesautomates finis non déterministes. Or, il s’avère que ce résultat a lui aussi un équivalentpour les langages réguliers sur les mots gardés.

Définition 2.2.10 (Automate fini déterministe sur les mots gardés (tirée de [38])). Unautomate fini déterministe sur les mots gardés est un tupleM = (S, S ′, Σ, B, δ, ρ, ι, F ) tel que

– S est un ensemble fini (ensemble des états d’actions),– S ′ est un ensemble fini (ensemble des états de tests),– Σ est un ensemble fini non vide (ensemble des actions atomiques),– B est un ensemble fini (ensemble des tests atomiques),– δ est une fonction S × Σ −→ S ∪ S ′ (transitions d’actions),– ρ est un sous-ensemble de S ′×B× (S∪S ′) tel que pour un s′ ∈ S ′ les tests appar-

tenant à l’ensemble {b | (∃s ∈ S∪S ′)(s′, b, s) ∈ ρ} sont deux à deux mutuellementexclusifs et exhaustifs.

– ι ∈ S ∪ S ′ (état initial),– F ⊆ S (ensemble d’états finaux),– Tous cycles, s’ils existent, contiennent au moins une transition d’action.

Théorème 2.2.11 ([38, lemme 3.2]). Pour tout automate fini non déterministe surles mots gardé, il existe un automate fini déterministe sur les mots gardés qui accepte

Page 35: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 2. Langages formels 28

exactement le même langage.

Finalement, suivant la même argumentation que pour les langages réguliers, il estclair que les langages réguliers sur les mots gardés forment un sous-ensemble strict deslangages sur les mots gardés, c’est-à-dire qu’il existe des langages sur les mots gardésqui ne sont pas réguliers.

Théorème 2.2.12. Pour tout alphabet Σ et ensemble de tests B, il existe un langagequ’aucun automate fini non déterministe sur les mots gardés ne peut reconnaître.

Preuve du théorème 2.2.12 :

Il suffit de se référer à la preuve du théorème 2.1.25 (voir page 16). �

2.2.3 Expressions régulières gardées

Les expressions régulières gardées sont une autre façon de représenter les langagesréguliers sur les mots gardés. Elles servent aussi à représenter, en quelque sorte, leséléments d’une algèbre de Kleene avec tests tout comme les expressions régulières sontutilisées pour représenter les éléments d’une algèbre de Kleene.

Définition 2.2.13 (Expression régulière gardée). Une expression régulière gardée surun alphabet Σ et un ensemble de tests B est définie, de façon inductive, par l’ensembledes propositions suivantes :

1. 0 est une expression régulière gardée.

2. 1 est une expression régulière gardée.

3. Tout élément p de Σ est une expression régulière gardée.

4. Tout élément b de B ∪B est une expression régulière gardée.

5. Si p et q sont des expressions régulières gardées alors p + q est une expressionrégulière gardée.

6. Si p et q sont des expressions régulières gardées alors p · q est une expressionrégulière gardée.

7. Si p est une expression régulière gardée alors p∗ est une expression régulière gardée.

L’ensemble de toutes les expressions régulières gardées pouvant être formées à partird’un alphabet Σ et d’un ensemble de tests B est noté par RExpΣ,B. Le langage associé

Page 36: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 2. Langages formels 29

à une expression régulière gardée r, noté par G(r), est défini, de manière inductive,comme suit :

G(0)def= ∅

G(1)def= AtomesB

G(p)def= {αpβ | α, β ∈ AtomesB} pour tout p ∈ Σ

G(b)def= {α | α ≤ b} pour tout b ∈ B ∪B

G(p+ q)def= G(p) ∪G(q)

G(p · q) def= G(p) �G(q)

G(p∗)def= G(p)∗ .

Suivant les mêmes principes qui nous ont permis de démontrer qu’à chaque expres-sion régulière correspond exactement un langage régulier, il est possible de montrerqu’à chaque expression régulière gardée correspond un langage régulier sur les motsgardés (voir 2.1.3). Dans cette preuve, il a fallu représenter les automates finis détermi-nistes sous la forme d’un système d’équations pour pouvoir trouver l’expression régulièrecorrespondant à un langage. Or, nous n’avons pas montré comment représenter un au-tomate fini non déterministe sur les mots gardés à l’aide d’un système d’équations.Toutefois, il n’est pas difficile de se convaincre qu’il est possible de le faire en raison dela définition d’un automate fini non déterministe.

Théorème 2.2.14 ((tiré de [16])). Soit un alphabet Σ et un ensemble de tests B. L’en-semble RegΣ,B correspond exactement à

⋃x∈RExpΣ,B

G(x). C’est-à-dire qu’à chaque ex-pression régulière gardée correspond un langage régulier sur mots gardés et qu’à chaquelangage régulier sur mots gardés correspond une expression régulière gardée.

Preuve du théorème 2.2.14 :

Nous utilisons le fait que chaque expression régulière gardée peut être transforméeen langage régulier sur des mots gardés et vice-versa. �

Page 37: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 3

Structures algébriques

Lorsque nous parlons d’algèbre de Kleene, nous nous trouvons, en fait, à faire réfé-rence à une structure algébrique particulière. Les structures algébriques dénotent quantà elles une collection d’algèbres qui ont des propriétés similaires. À titre d’exemple, lastructure algébrique des corps regroupe des algèbres qui ont des propriétés similairesà celles que nous retrouvons en algèbre classique. Dans ce cas, nous manipulons lesnombres réels à l’aide des opérateurs d’addition et de multiplication ainsi qu’avec leursopérations inverses.

Ce chapitre est donc consacré, dans un premier temps, à un survol de diversesnotions permettant de définir formellement ce qu’est une structure algébrique et plusspécifiquement ce qu’est une algèbre. De plus, nous nous doterons de quelques outilspermettant de manipuler ces structures algébriques. Puis, dans un second temps, nousintroduirons plus en détail les structures algébriques, l’algèbre de Kleene ainsi que lestreillis d’actions résiduées, sur lesquelles nous allons, au chapitre 5, faire de la résolutiond’équations.

3.1 Notions préliminaires

Nous débutons cette section en présentant les lois de composition. Lois qui serontutiles à la définition des structures algébriques. Par la suite, nous présentons deuxexemples concrets de structures algébriques qui sont relativement connues ou utiliséessans que nous sachions nécessairement si nous sommes en présence d’une structurealgébrique. De plus, nous avons choisi ces structures algébriques en particulier, car

Page 38: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 3. Structures algébriques 31

nous y ferons référence à plusieurs reprises dans la suite de ce mémoire. Enfin, nousintroduisons brièvement l’algèbre universelle qui nous permettra de définir formellementla notion d’algèbre et de structure algébrique.

3.1.1 Loi de composition

Les lois de composition sont un des blocs de base à partir desquels nous serons enmesure de construire une structure algébrique. En fait, de façon informelle, nous pou-vons dire qu’une structure algébrique correspond à un regroupement d’ensembles surlesquels sont définis des lois de composition et d’autres lois ayant en commun certainespropriétés bien précises. Nous allons donc, dans cette section, nous attarder à la défini-tion de ce qu’est une loi de composition ainsi qu’à la présentation de diverses propriétéset de leurs implications.

Définition 3.1.1 (Loi de composition). Soit un ensemble E. Une loi de compositionsur E est une fonction ? : E×E −→ E. Toutefois au lieu d’écrire ?(x, y), nous écrivonsx ? y.

Propriétés des lois de composition

Avec une ou plusieurs lois de composition, il est possible de définir une panoplie depropriétés. Ces propriétés sont, entre autres, utilisées en algèbre universelle pour définirde manière équationnelle ou quasi équationnelle des classes d’algèbres ; nous y revien-drons à la section 3.1.3. Cela dit, pour le moment, nous nous contentons d’énumérerquelques-unes de ces propriétés qui nous seront utiles par la suite.

La loi ? : E × E −→ E est associative si et seulement si pour tout x, y, z ∈ E

x ? (y ? z) = (x ? y) ? z . (3.1)

La loi ? : E × E −→ E est commutative si et seulement si pour tout x ∈ E

x ? y = y ? x . (3.2)

La loi ? : E × E −→ E est idempotente si et seulement si pour tout x ∈ E

x ? x = x . (3.3)

Page 39: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 3. Structures algébriques 32

La loi ? : E × E −→ E est distributive à gauche sur la loi ?′ : E × E −→ E si etseulement si pour tout x, y, z ∈ E

x ? (y ?′ z) = (x ? y) ?′ (x ? z) . (3.4)

La loi ? : E × E −→ E est distributive à droite sur la loi ?′ : E × E −→ E si etseulement si pour tout x, y, z ∈ E

(x ?′ y) ? z = (x ? z) ?′ (y ? z) . (3.5)

Éléments absorbants et neutres

Dans les définitions précédentes, nous tenions compte de tous les éléments de E. Ce-pendant, il arrive que certains éléments aient des propriétés particulières qui les rendentdignes de mention. C’est notamment le cas des éléments neutres et des éléments absor-bants. L’un ou l’autre de ces éléments est d’ailleurs présent dans la grande majorité desstructures algébriques auxquelles nous ferons référence dans ce mémoire. C’est pourquoinous prenons le soin de les présenter en détail.

Dans ce qui suit, nous fixons une loi de composition ? : E × E −→ E.

Un élément ed ∈ E est un élément neutre à droite si et seulement si pour tout x ∈ E

x ? ed = x . (3.6)

Un élément eg ∈ E est un élément neutre à gauche si et seulement si pour toutx ∈ E

eg ? x = x . (3.7)

Lemme 3.1.2. Soit ? : E × E −→ E. Si E a un élément neutre à gauche eg et unélément neutre à droite ed alors eg = ed. De plus, il ne peut y avoir qu’un élément quiest à la fois neutre à gauche et neutre à droite.

Preuve du lemme 3.1.2 (tirée de [61]) :

Posons x = eg ? ed. D’après la définition de eg nous avons que x = ed. De la mêmefaçon, nous avons d’après la définition de ed que x = eg. Donc eg = ed. �

Un élément e qui est à la fois neutre à gauche et neutre à droite est tout simplement

Page 40: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 3. Structures algébriques 33

qualifié d’élément neutre ou neutre bilatère. C’est-à-dire que pour tout x ∈ E,

e ? x = x ? e = x . (3.8)

Un élément ad ∈ E est un élément absorbant à droite si et seulement si pour toutx ∈ E

x ? ad = ad . (3.9)

Un élément ag ∈ E est un élément absorbant à gauche si et seulement si pour toutx ∈ E

ag ? x = ag . (3.10)

Lemme 3.1.3. Soit ? : E × E −→ E. Si E a un élément absorbant à gauche ag et unélément absorbant à droite ad alors ag = ad. De plus, il ne peut y avoir qu’un élémentqui est à la fois absorbant à gauche et absorbant à droite.

Preuve du lemme 3.1.3 :

Posons x = ag ? ad. D’après la définition de ag nous avons que x = ag. De la mêmefaçon, nous avons d’après la définition de ad que x = ad. Donc ag = ad. �

Un élément a qui est à la fois absorbant à gauche et absorbant à droite est toutsimplement qualifié d’élément absorbant ou absorbant bilatère. C’est-à-dire que pourtout x ∈ E nous avons que

a ? x = x ? a = a . (3.11)

Éléments inverses

Un autre type particulier d’éléments qui mérite que nous nous y attardons est ce-lui des éléments inverses. Ceux-ci prennent une place importante en algèbre classiquesurtout lors de la résolution d’équations.

Soit une loi de composition ? : E×E −→ E et un élément neutre e. De plus, fixonsx ∈ E.

L’élément x−1g est un inverse à gauche de x si

x−1g ? x = e . (3.12)

Page 41: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 3. Structures algébriques 34

L’élément x−1d est un inverse à droite de x si

x ? x−1d = e . (3.13)

Un élément x−1 qui est à la fois inverse à gauche et inverse à droite est tout simple-ment qualifié d’élément inverse ou inverse bilatère. C’est-à-dire que

x−1 ? x = x ? x−1 = e (3.14)

Lemme 3.1.4. Soit une loi ? : E × E −→ E associative avec un élément neutre e. Six ∈ E a à la fois un inverse à gauche x−1

g et un inverse à droite x−1d alors x−1

g = x−1d .

De plus, pour un x donné, il ne peut y avoir qu’un élément qui est à la fois inverse àgauche et inverse à droite.

Preuve du lemme 3.1.4 (tirée de [61]) :

x−1g

= 〈 Élément neutre (3.8) 〉x−1g ? e

= 〈 Inverse à droite (3.13) 〉x−1g ? (x ? x−1

d )

= 〈 Associativité de ? (3.1) 〉(x−1

g ? x) ? x−1d

= 〈 Inverse à gauche (3.12) 〉e ? x−1

d

= 〈 Élément neutre (3.8) 〉x−1d

Lemme 3.1.5. Soit une loi ? : E×E −→ E qui est idempotente et associative avec unélément neutre e. Alors, pour tout x ∈ E tel que x 6= e, il n’existe pas d’élément x′ ∈ Etel que x′ soit un inverse à gauche, un inverse à droite ou un inverse de x. C’est-à-direqu’un monoïde idempotent n’est un groupe que s’il est trivial ou réciproquement dansun groupe seul l’élément neutre est idempotent.

Preuve du lemme 3.1.5 :

Page 42: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 3. Structures algébriques 35

La preuve qui suit montre qu’il n’existe pas d’inverse à gauche, les autres cas étantsimilaires. Nous montrons la contraposée, c’est-à-dire que nous supposons que pourx ∈ E, s’il existe un inverse à gauche x−1

g alors x = e.

e

= 〈 Inverse à gauche (3.12) 〉x−1g ? x

= 〈 Idempotence de ? (3.3) 〉x−1g ? (x ? x)

= 〈 Associativité de ? (3.1) 〉(x−1

g ? x) ? x

= 〈 Inverse à gauche (3.12) 〉e ? x

= 〈 Élément neutre (3.8) 〉x

Remarque 3.1.6. Le résultat donné par le lemme 3.1.5 aura, au chapitre 5, un grandimpact sur la résolution d’équations quasi linéaires en algèbre de Kleene.

3.1.2 Structures algébriques connues

Treillis

Un treillis est une structure algébrique que nous rencontrons assez souvent dansdivers domaines liés à l’informatique. Celle-ci a donc fait l’objet de plusieurs travauxqui ont mené à une multitude de résultats intéressants. Lorsque nous considérons unealgèbre qui est un treillis en plus d’une algèbre de Kleene, nous obtenons des structuresalgébriques fort intéressantes qui peuvent notamment faciliter la résolution d’équations(voir chapitre 5). C’est pourquoi nous prenons la peine de faire une parenthèse sur lestreillis. Cela dit, dans ce qui suit, nous allons nous limiter à la présentation des deuxdéfinitions équivalentes des treillis. Un lecteur souhaitant en savoir plus peut se référerà [12].

Une première façon de définir un treillis est de le faire algébriquement.

Page 43: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 3. Structures algébriques 36

Définition 3.1.7 (Treillis). Un treillis est une structure algébrique 〈L, u, t〉 telleque les opérateurs u et t sont commutatifs (3.2), associatifs (3.1), idempotents (3.3) etrespectent les propriétés suivantes :

x = x u (y t x) (3.15)

x = x t (y u x) (3.16)

pour tout x, y ∈ L.

Comme nous pouvons le voir, cette définition est très compacte. Cependant, elle esttout aussi abstraite et ne nous donne aucune indication sur ce que sont les treillis enréalité. La seconde définition quant à elle nous donne une représentation visuelle de cequ’est un treillis. Cela dit, nous devons tout d’abord définir la notion d’ordre partiel.

Définition 3.1.8 (Ordre partiel). Un ordre partiel sur un ensemble A est une relation≤: A × A qui est réflexive, transitive et antisymétrique, c’est-à-dire qui respecte lespropriétés suivantes :

a ≤ a (3.17)

a ≤ b ∧ b ≤ c → a ≤ c (3.18)

a ≤ b ∧ b ≤ a → a = b . (3.19)

Un ensemble partiellement ordonné, ou poset, est un ensemble Amuni d’un ordre partiel.

Il est facile de représenter graphiquement une relation d’ordre sur un ensemble viaun diagramme de Hasse. Dans ceux-ci, chaque élément de l’ensemble est représenté parun ◦. Lorsque a ≤ b et qu’il n’existe pas de c tel que a ≤ c ≤ b, nous dessinons le ◦représentant a en dessous de celui représentant b et nous les relions par une ligne pleine.La figure 3.1 donne un exemple de diagramme de Hasse pour l’ensemble puissance de{0, 1, 2}, où la relation d’ordre est donnée par l’inclusion ensembliste.

Considérons maintenant un ensemble partiellement ordonné P et un sous-ensembleA de ce dernier. Un élément p de P est appelé majorant de A si pour tout a ∈ A nousavons que a ≤ p. Une borne supérieure de A est un élément p ∈ P tel que p est unmajorant de A et que p est inférieur ou égale à tous les autres majorants. Dans le casoù une borne supérieure de A est un élément de A, nous parlerons plutôt du supremum.Nous pouvons aussi définir une notion symétrique à celle de majorant. Un élément pde P est appelé minorant de A si pour tout a ∈ A nous avons que p ≤ a. Une borneinférieure de A est un élément p ∈ P tel que p est un minorant de A et que p estsupérieur ou égale à tous les autres minorants. Dans le cas où la borne inférieure deA est un élément de A, nous parlerons plutôt de l’infimum. Les définitions que nous

Page 44: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 3. Structures algébriques 37

{0}{1}

{2}

{0, 1}{0, 2}

{1, 2}

{0, 1, 2}

Fig. 3.1 – Diagramme de Hasse de l’ensemble puissance de {0, 1, 2}.

venons de donner nous permettent de définir un treillis à l’aide d’une relation d’ordrepartiel sur un ensemble.

Définition 3.1.9 (Sup-demi-treillis). Un sup-demi-treillis est un ensemble partielle-ment ordonné L tel que pour tout couple d’éléments x, y ∈ L, la plus petite bornesupérieure de {x, y} existe et est unique. Lorsque pour tout sous-ensemble, potentielle-ment infini, S de L la plus petite borne supérieure existe et est unique, nous parleronsd’un sup-demi-treillis complet.

Définition 3.1.10 (Inf-demi-treillis). Un inf-demi-treillis est un ensemble partielle-ment ordonné L tel que pour tout couple d’éléments x, y ∈ L, la plus grande borneinférieure de {x, y} existe et est unique. Lorsque pour tout sous-ensemble, potentielle-ment infini, S de L la plus grande borne inférieure existe et est unique, nous parleronsd’un inf-demi-treillis complet.

Définition 3.1.11 (Treillis). Un treillis est un ensemble partiellement ordonné L quiest à la fois un sup-demi-treillis et un inf-demi-treillis. Lorsqu’un ensemble partiellementordonné L est à la fois un sup-demi-treillis complet et un inf-demi-treillis complet, nousparlerons d’un treillis complet.

Les deux définitions de treillis que nous venons de voir, bien que totalement diffé-rentes, n’en sont pas moins équivalentes dans le cas où A est fini [12]. La plus grandeborne inférieure correspond, en fait, à l’opérateur u tandis que la plus petite bornesupérieure correspond à l’opérateur t. Nous pouvons donc représenter graphiquementun treillis à l’aide d’un diagramme de Hasse. En fait, le nom de treillis vient du faitque les diagrammes de Hasse associés à ces structures algébriques ont une forme quin’est pas sans rappeler celle d’un treillis. Nous notons, entre autres, que le poset formépar l’ensemble puissance de {0, 1, 2} illustré à la figure 3.1 est un treillis. Les figures3.2, 3.3 et 3.4 donnent quant à elles des exemples de sup-demi-treillis, inf-demi-treilliset d’un ensemble partiellement ordonné quelconque.

Page 45: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 3. Structures algébriques 38

Fig. 3.2 – Sup-demi-treillis.

Fig. 3.3 – Inf-demi-treillis.

Corps

Comme nous l’avons mentionné dans l’introduction de ce chapitre, l’algèbre forméepar les nombres réels R de concert avec les opérations d’addition et de multiplication,c’est-à-dire l’algèbre classique, est un exemple de corps. Or, lorsque nous raisonnonssur les nombres réels, il est relativement facile de résoudre des équations. Ceci est enfait dû aux propriétés que les opérateurs doivent respecter dans les corps. Malheureu-sement pour nous, ces bonnes propriétés qui facilitent la résolution d’équations ne sontpas toutes présentes en algèbre de Kleene. Toutefois, comme nous allons souvent faireréférence aux corps dans le cadre de la résolution d’équations en algèbre de Kleene, nousavons jugé pertinent de rappeler quelques définitions à ce sujet. Un lecteur désirant ensavoir plus sur le sujet peut se référer à [61].

À la base des corps, nous retrouvons deux structures algébriques, soit les monoïdeset les groupes.

Définition 3.1.12 (Monoïde). Un monoïde est une structure algébrique 〈M, ?, e〉 telleque la loi de composition ? est associative (3.1) et que e est un élément neutre bilatère(3.8). Nous dirons qu’il s’agit d’un monoïde commutatif si ? est en plus commutative(3.2) ; respectivement un monoïde est dit idempotent si ? est en plus idempotente (3.3).

Exemple 3.1.13. Les nombres naturels N = {0, 1, 2, . . .} forment un monoïde commu-tatif avec l’addition et où l’élément neutre est 0.

Définition 3.1.14 (Groupe). Un groupe est une structure algébrique 〈G, ?, e〉 telle que〈G, ?, e〉 est un monoïde et que pour tout x ∈ G, il existe un élément inverse bilatère(3.14) sous ?. Nous dirons qu’il s’agit d’un groupe abélien si ? est en plus commutative(3.2).

Exemple 3.1.15. Un exemple classique de groupe abélien est celui formé par les nombres

Page 46: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 3. Structures algébriques 39

Fig. 3.4 – Ensemble partiellement ordonné quelconque.

entiers Z = {. . . , −2, −1, 0, 1, 2, . . .} avec l’addition. L’élément neutre est alors 0

et chaque élément i ∈ Z possède un élément inverse −i.

À partir de ces deux structures algébriques, il est possible de définir ce que nousappellons un anneau pour, par la suite, définir la notion de corps.

Définition 3.1.16 (Anneau). Un anneau est une structure algébrique〈A, ?1, ?2, e1, e2〉 telle que 〈A, ?1, e1〉 est un groupe abélien, 〈A, ?2, e2〉 est unmonoïde et ?2 se distribue à gauche (3.4) et à droite (3.5) sur ?1.

Exemple 3.1.17. L’ensemble des entiers Z = {. . . , −2, −1, 0, 1, 2, . . .} avec l’additionet la multiplication forme un anneau où l’élément neutre sous l’addition est 0 tandisque l’élément neutre sous la multiplication est 1.

Définition 3.1.18 (Corps). Un corps est une structure algébrique 〈C, ?1, ?2, e1, e2〉qui est un anneau et telle que pour tout élément x ∈ C\{e1} il existe un élément inversebilatère pour la loi de composition ?2 (3.14).

Exemple 3.1.19. L’ensemble des nombres rationnels Q avec l’addition et la multiplica-tion forme un corps où l’élément neutre sous l’addition est 0, l’élément neutre sous lamultiplication est 1 et chaque i ∈ Q\{0} a un inverse 1

ipour la multiplication.

3.1.3 Algèbre universelle

L’algèbre universelle est la branche des mathématiques qui étudie l’ensemble desstructures algébriques ainsi que les liens qui existent entre elles. Il s’agit d’une théorietrès riche, mais dont l’étude complète sort du cadre de ce mémoire. Cela dit, nous allonstout de même présenter les notions auxquelles nous ferons référence tout au long de cedernier. Pour une présentation plus complète de l’algèbre universelle, le lecteur peut seréférer à [9, 12, 29]. À moins d’avis contraire, les définitions présentées ci-dessous sonttirées intégralement ou avec une légère modification de [9].

Commençons par définir ce que nous appelons algèbre en algèbre universelle. Pource faire, nous devons, tout d’abord, introduire les notions d’opérateur n-aire et designature.

Page 47: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 3. Structures algébriques 40

Définition 3.1.20 (Opérateur n-aire). Un opérateur n-aire sur un ensemble A est unefonction f : An −→ A où An = A× A× · · · × A︸ ︷︷ ︸

nfois

pour tout n ≥ 1 et où A0 = {∅}.

L’arité d’un opérateur n-aire est donnée par n. Dans le cas où l’arité est de 0, nousparlerons d’un opérateur constant ou d’une constante. Dans le cas où l’arité est de1, nous parlerons d’opérateur unaire et dans le cas où l’arité est de 2, nous parleronsd’opérateur binaire.

Définition 3.1.21 (Signature). Une signature est un ensemble de symboles ς auxquelsnous associons une arité. Nous désignons par ςi le sous-ensemble de symboles de ςassociés à l’arité i.

Ceci nous permet de définir le concept d’algèbre.

Définition 3.1.22 (Algèbre). Une algèbre sur une signature ς est un couple A def=

〈A, M ςA〉 tel que A est un ensemble non vide, appelé univers de A, et que M ς

A est unefonction qui associe à chaque symbole de la signature un opérateur ayant une aritécorrespondante. Pour tout f ∈ ς, nous noterons par fA l’application M ς

A(f). De plus,nous appelons ς-algèbre une algèbre qui est définie à partir de la signature ς.

À la lumière de la définition d’une algèbre, nous pouvons nous demander pourquoinous faisons appel à la notion de signature plutôt que de définir directement une al-gèbre à partir d’opérateurs n-aires. Ceci vient du fait que, pour une même signatureet parfois un même ensemble univers A, nous pouvons donner plus d’une significationaux symboles. Prenons, par exemple, le cas des entiers naturels N. Deux exemplesd’opérateurs binaires sur ceux-ci sont l’addition d’entiers et le maximum entre deuxéléments. Or, il s’avère que si nous interprétons le symbole ? de la signature donnée àla définition 3.1.12 comme étant l’un ou l’autre de ces opérateurs binaires et que nousinterprétons le symbole 0, de la même signature, comme étant l’élément 0 nous nousretrouvons en présence de deux monoïdes.

Dans ce dernier exemple, nous avons donc pris une signature donnée et nous avonsinterprété celle-ci dans des contextes différents afin d’obtenir deux algèbres. Cette notiond’interprétation peut être mieux formalisée à l’aide d’un homomorphisme entre l’algèbrede termes et une algèbre donnée sur la signature ς. L’algèbre de termes représente enquelque sorte l’ensemble de toutes les ς-algèbres. L’application d’un homomorphismepermet de nous restreindre à une ς-algèbre particulière.

Définition 3.1.23 (Homomorphisme). Soit A def= 〈A, M ς

A〉 et Bdef= 〈B, M ς

B〉 deuxalgèbres sur une signature ς. Un homomorphisme est une fonction h : A −→ B quicommute avec les opérateurs n-aires, c’est-à-dire

h(fA(a1, a2, . . . , an)) = fB(h(a1), h(a2), . . . , h(an))

Page 48: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 3. Structures algébriques 41

pour tout symbole f ∈ ς et pour tout a1, a2, . . . , an ∈ A.

Définition 3.1.24 (Terme). Soit une signature ς et un ensemble dénombrable X dontles éléments sont appelés variables. Un terme sur une signature ς et un ensemble X estdéfini, de manière inductive, comme suit :

– toute variable x ∈ X est un terme ;– toute constante c ∈ ς0 est un terme ;– soit t1, t2, . . . , tn des termes et f ∈ ς un opérateur n-aire tel que n ≥ 1. Alors,l’expression f(t1, t2 . . . , tn) est un terme.

L’ensemble de tous les termes générés à partir d’une signature ς et d’un ensemble devariables X est désigné par Tς(X).

Définition 3.1.25 (Algèbre de termes). Soit une signature ς et X un ensemble dé-nombrable de variables tels que Tς(X) 6= ∅. Alors, l’algèbre Tς(X)

def=⟨Tς(X),M ς

Tς(X)

⟩telle que pour tout f ∈ ς,

fTς(X)(t1, t2, . . . , tn)def= f(t1, t2, . . . , tn)

pour tout t1, t2, . . . , tn ∈ Tς(X), lorsque l’arité de f est plus grande ou égale à 1, et

fTς(X)(∅) def= f(∅)

lorsque l’arité de f est de 0, est appelée algèbre de termes.

Définition 3.1.26 (Interprétation). Soit Tς(X) et A une algèbre sur la signature ς.Alors, une interprétation est n’importe quel homomorphisme I : Tς(X) −→ A.

Cela dit, toujours en se référant à l’exemple des deux monoïdes sur N, le choixd’interprétation que nous avons fait n’était pas arbitraire. Celui-ci était dicté par unensemble de règles que les opérateurs doivent respecter afin que nous nous retrouvonsdans le cas d’un monoïde. En fait, nous aurions très bien pu interpréter le symbole ? parla multiplication et le symbole e par l’élément 0, mais dans ce cas nous n’aurions pasun monoïde puisque 0 n’est pas l’élément neutre de la multiplication. Nous voudrionsdonc pouvoir se limiter aux ς-algèbres qui satisfont un même ensemble de règles. Pource faire, commençons par caractériser l’ensemble des règles sur une ς-algèbre. Ces règlesse divisent en deux catégories, soit les équations de termes et les formules de Horn.

Définition 3.1.27 (Équation de termes). Soit une signature ς et un ensemble dénom-brable X de variables. Une équation de termes sur la signature ς et l’ensemble X estune expression de la forme

t1 = t2

telle que t1, t2 ∈ Tς(X).

Page 49: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 3. Structures algébriques 42

Définition 3.1.28 (Formule de Horn). Soit une signature ς et un ensemble dénombra-ble X de variables. Une formule de Horn sur la signature ς et l’ensemble X est uneexpression de la forme

s1 = t1 ∧ s2 = t2 ∧ · · · ∧ sn = tn → s = t

telle que s, s1, s2, . . . , sn, t, t1, t2, . . . , tn ∈ Tς(X) pour n ∈ N.

Maintenant que nous avons caractérisé les propriétés sur une ς-algèbre, il faut définirce que nous entendons par une ς-algèbre qui satisfait une propriété.

Définition 3.1.29 (Satisfaction d’une équation). Soit Tς(X) et A une algèbre sur lasignature ς. Soit une interprétation I : Tς(X) −→ A. Nous disons que l’équation t1 = t2est satisfaite sous l’interprétation I (noté par A, I |= t1 = t2) si et seulement si

I(t1) = I(t2) .

Définition 3.1.30 (Satisfaction d’une formule de Horn). Soit Tς(X) et A une algèbresur la signature ς. Soit une interprétation I : Tς(X) −→ A. Nous disons que la formulede Horn

ϕdef= s1 = t1 ∧ s2 = t2 ∧ · · · ∧ sn = tn → s = t

est satisfaite sous l’interprétation I (noté par A, I |= ϕ) si et seulement si

(∀i | 1 ≤ i ≤ n : I(si) = I(ti))⇒ I(s) = I(t) .

Dans les deux dernières définitions que nous venons de donner, il est important deréaliser que l’algèbre de termes Tς(X) et la ς-algèbre A sont fixes et que seule l’interpré-tation I peut changer. Donc, selon l’interprétation, une formule peut être ou ne pas êtresatisfaite dans une même ς-algèbre. Ce cas n’est pas à confondre avec l’exemple, quenous avons donné, des monoïdes sur N où, pour chaque interprétation, nous obtenionsune ς-algèbre différente. Cela dit, en considérant les équations (respectivement, formulesde Horn) valides pour une ς-algèbre nous éliminons cette dépendance à l’interprétation.

Définition 3.1.31 (Validité d’une formule pour une algèbre). Soit Tς(X) et A unealgèbre sur la signature ς. Soit ϕ une équation ou une formule de Horn. Nous disonsque la formule ϕ est valide dans A (noté par A |= ϕ) si et seulement si pour touteinterprétation I : Tς(X) −→ A nous avons que

A, I |= ϕ .

Nous appellons théorie équationnelle l’ensemble des équations qui sont valides pourune ς-algèbre et théorie de Horn l’ensemble des formules de Horn qui sont valides pourune ς-algèbre. De façon formelle :

Page 50: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 3. Structures algébriques 43

Définition 3.1.32 (Théorie équationnelle). Soit Tς(X) et A une algèbre sur la signa-ture ς. Nous appelons théorie équationnelle de l’algèbre A l’ensemble des équations determes suivant :

E(A)def= {t1 = t2 | A |= t1 = t2} .

Définition 3.1.33 (Théorie de Horn). Soit Tς(X) et A une algèbre sur la signatureς. Nous appelons la théorie de Horn de l’algèbre A l’ensemble de formules de Hornsuivant :

H(A)def= {ϕ | A |= ϕ} .

Ayant en main les définitions de validité d’une équation et de validité d’une formulede Horn, il est possible de définir formellement le concept de structure algébrique commeétant une classe d’algèbre définie de manière équationnelle ou quasi équationnelle.

Définition 3.1.34 (Classes définies de manière équationnelle ou quasi équationnelle).Soit Tς(X) l’algèbre de termes sur la signature ς. Alors, nous disons que l’ensemble

K def= {A | A est une ς-algèbre et (∀ϕ ∈ Φ : A |= ϕ)}

est une classe définie de manière équationnelle (respectivement de manière quasi-équa-tionnelle) lorsque Φ est un ensemble d’équations de termes (respectivement de formulesde Horn).

Donc, une structure algébrique correspond à un sous-ensemble des ς-algèbres oùpour chaque élément de ce dernier un ensemble de règles (formules) sont valides. Pré-cédemment, nous avons dit que l’algèbre de termes correspondait, en quelque sorte, àl’ensemble de toutes les ς-algèbres dans le sens où pour chaque ς-algèbre, il existe uneinterprétation partant de l’algèbre de termes et allant dans celle-ci. Or, pour les classesd’algèbres définies de manière équationnelle ou quasi équationnelle, il existe aussi unealgèbre qui correspond, en quelque sorte, à l’ensemble de toutes les ς-algèbres contenuesdans cette classe. Cette algèbre est en fait une sous-algèbre de l’algèbre de termes pourlaquelle un ensemble de formules Φ est valide.

Définition 3.1.35 (Sous-algèbre). Soit A def= 〈A, M ς

A〉 et B def= 〈B, M ς

B〉 deux ς-algèbres. Nous disons que B est une sous-algèbre de A si et seulement si B ⊆ A et quepour tout symbole d’opérateur n-aire f ∈ ς, fB : Bn −→ B est un opérateur n-airedéfini par

fB(b1, b2, . . . , bn)def= fA(b1, b2, . . . , bn)

pour tout b1, b2, . . . , bn ∈ B si n ≥ 1 et défini par

fB(∅) def= fA(∅)

si n = 0.

Page 51: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 3. Structures algébriques 44

Définition 3.1.36 (Algèbre libre). Soit Tς(X) l’algèbre de termes sur une ς-algèbre.Nous appelons algèbre libre sur Φ la plus petite sous-algèbre de Tς(X) pour laquelletoutes les formules ϕ ∈ Φ sont valides.

Notons, en outre, que l’algèbre libre peut être construite pour n’importe quellealgèbre de termes et n’importe quel ensemble de formules Φ [9, théorème 3.3.58 page70].

Nous terminons cette section en introduisant la notion d’ensemble générateur d’unealgèbre. Notion qui sera forte utile au chapitre 5. Pour ce faire, nous devons commencerpar introduire la notion de sous-univers.

Définition 3.1.37 (Sous-univers). Soit A def= 〈A, M ς

A〉 une ς-algèbre et B ⊆ A. Alors,l’ensemble B est appelé sous-univers de A si et seulement si pour tout symbole d’opé-ration n-aire f de la signature ς,

fA(b1, b2, . . . , bn) ∈ B

pour tout b1, b2, . . . , bn ∈ B si n ≥ 1 et

fA(∅) ∈ B

si n = 0.

Intuitivement, un sous-univers est un sous-ensemble d’un univers d’une ς-algèbre quiest clos sous les opérations définies pour cette ς-algèbre. Ayant en mains une définitionde sous-univers, il nous est possible de définir l’ensemble générateur d’une algèbre.

Définition 3.1.38 (Ensemble générateur d’une algèbre). Soit A def= 〈A, M ς

A〉 une ς-algèbre et B ⊆ A. La sous-algèbre de A généré par B est la plus petite sous-algèbre deA qui contient B. En fait, l’univers de cette sous-algèbre est le plus petit sous-universnon vide de A qui contient B. Nous disons que B est un ensemble générateur de A(ou simplement que B génère A) si la sous-algèbre de A générée par B est exactementl’algèbre A.

Nous disons aussi que B est un ensemble générateur minimal de A (ou que Bgénère A de manière minimale) si B est un ensemble générateur de A et si pour toutsous-ensemble propre C ⊂ B de B, C n’est pas un ensemble générateur de A.

Page 52: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 3. Structures algébriques 45

3.2 Algèbre de Kleene

Historiquement, l’algèbre de Kleene a été introduite afin de répondre à une questionposée par Stephen Cole Kleene. Kleene se demandait alors s’il existait une axiomatisa-tion intègre et complète de la théorie équationnelle de l’algèbre des ensembles réguliers.En d’autres mots, ceci veut dire que nous cherchons à identifier un ensemble d’axiomesqui font que deux éléments de la structure algébrique définie à partir de ceux-ci sontégaux si et seulement si les éléments correspondants dans l’algèbre des ensembles régu-liers sont égaux. Ceci explique donc pourquoi il y a un lien très étroit entre les langagesréguliers (voir section 2.1.2) et l’algèbre de Kleene.

Afin de répondre à cette question, plusieurs travaux ont été faits, au fils des ans, cequi a mené à plusieurs axiomatisations différentes de la théorie équationnelle de l’algèbredes ensembles réguliers ; que nous pensons à l’axiomatisation de Salomaa [42, 69], auxS-algèbres de Conway [17, 41] ou aux demi-anneaux fermés [41, 52]. Cela dit, dansce qui suit, nous allons utiliser l’axiomatisation de Kozen [39] afin de définir l’algèbrede Kleene. En fait, cette axiomatisation est la plus générale que nous connaissionsdans le sens ou toutes les autres axiomatisations intègres et complètes de la théorieéquationnelle des ensembles réguliers forment des sous-classes d’algèbres de l’algèbre deKleene.

À la base de l’algèbre de Kleene, nous retrouvons ce que nous appelons un demi-anneau idempotent.

Définition 3.2.1 (Demi-anneau). Un demi-anneau est une structure algébrique〈S, +, ·, 0, 1〉 telle que 〈S, +, 0〉 est un monoïde commutatif (voir 3.1.12), 〈S, ·, 1〉forme un monoïde et les propriétés suivantes sont respectées :

x · 0 = 0 · x = 0

x · (y + z) = x · y + x · z(x+ y) · z = x · z + y · z

pour tout x, y, z ∈ S. Nous dirons qu’il s’agit d’un demi-anneau idempotent si en plusl’opérateur + est idempotent (3.3) (voir page 31).

Remarque 3.2.2. Un demi-anneau est en quelque sorte un anneau (3.1.16) auquel nousavons enlevé la restriction que, pour chaque élément, il doit exister un élément inversesous l’opérateur +.

Dans un demi-anneau idempotent, puisque l’opérateur + est idempotent (3.3), asso-ciatif (3.1) et commutatif (3.2), nous sommes en présence d’un sup-demi-treillis. Donc

Page 53: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 3. Structures algébriques 46

il existe un ordre partiel naturel ≤ ⊆ S × S défini par

x ≤ ydef↔ x+ y = y

pour tout x, y ∈ S. Il arrive aussi que nous soyons en présence d’un demi-anneauidempotent complet. Ceci arrive lorsque le sup-demi-treillis est complet.

Il est maintenant possible de définir ce que nous entendons par algèbre de Kleene.

Définition 3.2.3 (Algèbre de Kleene). Une algèbre de Kleene est une structure algé-brique 〈K, +, ·, ∗, 0, 1〉 telle que 〈K, +, ·, 0, 1〉 forme un demi-anneau idempotentet que l’opérateur ∗ satisfait les propriétés suivantes :

1 + xx∗ ≤ x∗ (3.20)

1 + x∗x ≤ x∗ (3.21)

yx ≤ x → y∗x ≤ x (3.22)

xy ≤ x → xy∗ ≤ x (3.23)

pour tout x, y ∈ K et où ≤ est l’ordre partiel naturel sur un demi-anneau idempotent.La préséance entre les opérateurs, de la plus grande à la plus basse, est « ∗ », « · »,« + ». De plus, pour simplifier la notation, nous notons parfois x ·y par uniquement xy.

L’algèbre de Kleene, telle que définie, s’avère très utile pour représenter algébrique-ment les programmes informatiques. En fait, nous ne transcrivons pas intégralement unprogramme en un élément de l’algèbre de Kleene, mais plutôt une abstraction de celui-ci.Pour ce faire, nous disons que l’opérateur + correspond au choix non déterministe entredeux programmes, que l’opérateur · correspond au séquencement de programmes, quel’opérateur ∗ correspond à l’itération de programmes, que 0 correspond au programmeabort et que 1 correspond au programme skip. En ayant une telle représentation d’unprogramme, il est possible de faire des manipulations sur ce dernier en se basant sur lesrègles valides en algèbre de Kleene afin, par exemple, de l’optimiser.

D’autres exemples d’algèbres de Kleene nous sont donnés par le modèle relation-nel [9, section 4.3.2], l’algèbre tropicale présentée ci-dessous et le modèle matriciel quenous verrons plus en détail à la section 3.2.1.

Définition 3.2.4 (Algèbre tropicale (tiré de [9, section 4.3.4])). Soit min une fonctionN∪ {∞}×N∪ {∞} −→ N∪ {∞} retournant le minimum entre deux nombres entiersselon l’ordre naturel (0nat ≤ 1nat ≤ 2nat ≤ · · · ≤ ∞), +nat l’addition sur les nombresentiers et gz une fonction N ∪ {∞} −→ {0nat}. Alors, l’algèbre tropicale, notée Trop,est la structure algébrique définie par :

〈N ∪ {∞}, min, +nat, gz, ∞, 0nat〉 .

Page 54: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 3. Structures algébriques 47

Cette algèbre est une algèbre de Kleene en vertu de l’interprétation :

i+Trop jdef= min(i, j)

i ·Trop jdef= i+nat j

i∗Trop def

= gz(i)

0Trop def= ∞

1Trop def= 0nat

pour tout i, j ∈ N. Nous remarquons alors que l’ordre de l’algèbre de Kleene formé parl’algèbre tropicale est l’ordre inverse de l’ordre naturel, c’est-à-dire que le plus petitélément est ∞ et le plus grand est 0nat.

À ceux-ci, il ne faut pas oublier d’ajouter le modèle des langages réguliers, présentéau chapitre 2, qui forme une algèbre de Kleene selon l’interprétation standard RΣ :

TΣ 7→ RegΣ définie par :

RΣ(a)def=

{a} si a ∈ Σ

{ε} si a = 1

∅ si a = 0

et étendue de façon homomorphique à tous les éléments de l’algèbre de termes d’unealgèbre de Kleene sur l’ensemble générateur Σ, noté par TΣ, c’est-à-dire que

RΣ(x+ y)def= RΣ(x) ∪RΣ(y)

RΣ(x · y)def= RΣ(x) •RΣ(y)

RΣ(x∗)def= RΣ(x)∗

pour tout x, y ∈ TΣ.

Cela dit, bien qu’il existe un nombre important de modèles de l’algèbre de Kleene,il arrive que, dans certaines situations, nous ayons besoin de tenir compte de propriétéslégèrement différentes de celles que nous retrouvons en algèbre de Kleene. En fait, cebesoin a mené au développement d’une multitude d’extensions et variantes de l’algèbrede Kleene qui permettent de décrire des comportements qui n’auraient pu l’être enalgèbre de Kleene. Parmi ces extensions, une des plus importantes est certainementl’algèbre de Kleene avec tests, extension que nous présenterons à la section 3.2.2. Deplus, dans la littérature nous faisons souvent référence à une variante de l’algèbre deKleene qui se nomme algèbre de Kleene étoile-continue. Dans celle-ci, nous remplaçonsles axiomes (3.20) à (3.23) par l’axiome

ab∗c =∑n

abnc

Page 55: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 3. Structures algébriques 48

qui stipule que l’opérateur ∗ est défini comme étant le supremum de l’ensemble despuissances d’un élément.

Nous terminons cette brève introduction à l’algèbre de Kleene en présentant à lasection 3.2.1 les grandes lignes de la preuve de complétude de l’axiomatisation de l’al-gèbre de Kleene telle que donnée par Kozen [39, 42, 43, 44]. De plus, nous reprenons enpartie l’idée derrière cette preuve afin de comparer des éléments de l’algèbre ALG à lasection 5.2.2.

Cela dit, pour une présentation plus détaillée de l’algèbre de Kleene, le lecteur peuttoujours se référer au cours de Dexter Kozen portant sur le sujet [40] ou au chapitre4 du mémoire de Claude Bolduc [9] qui présente en détail plusieurs résultats touchantl’algèbre de Kleene.

3.2.1 Preuve de complétude de l’algèbre de Kleene

Théorème 3.2.5 ([39, théorème 19]). L’algèbre de Kleene fournit une axiomatisationintègre et complète de la théorie équationnelle de l’algèbre des ensembles réguliers.

Afin de prouver le théorème 3.2.5, Kozen exploite le fait que les matrices carréessur une algèbre de Kleene forment une algèbre de Kleene et qu’un élément de l’algèbrede Kleene peut être exprimé sous la forme d’un système d’équations représentant unautomate (voir 2.1.3). L’idée est donc de transformer chacun des éléments d’une égalitéen algèbre libre de Kleene en automate et de montrer que les langages réguliers associésà ces automates correspondent si et seulement si cette égalité est valide.

Tout d’abord, nous devons montrer que les matrices carrées, notées par Mn,n(K), surune algèbre de Kleene 〈K, +, ·, ∗, 0, 1〉 forment une algèbre de Kleene. Nous devonsdonc définir des opérateurs +, ·, ∗, 0 et 1 sur les matrices de sorte que les axiomesd’une algèbre de Kleene soient respectés.

Commençons par définir l’opérateur d’addition matriciel. Soit A,B ∈ Mn,n(K).Alors, nous définissons l’addition matricielle par l’addition élément par élément en al-gèbre de Kleene, c’est-à-dire

(A+B)i,jdef= Ai,j +Bi,j

pour tout i, j allant de 1 jusqu’à n inclusivement. Comme en algèbre de Kleene l’opé-rateur d’addition est commutatif, associatif et idempotent, nous avons directement quel’addition matricielle respecte ces mêmes propriétés.

Page 56: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 3. Structures algébriques 49

À partir de la définition de l’addition matricielle, il n’est pas difficile de définirl’élément neutre sous l’addition. Nous définissons la matrice nulle, notée par Zn, commeétant une matrice de taille n× n dont les entrées sont toutes nulles, c’est-à-dire

(Zn)i,jdef= 0

pour tout i, j allant de 1 jusqu’à n inclusivement. Comme l’addition matricielle estdéfinie terme à terme, il est direct de montrer que pour tout A ∈ Mn,n(K) nous avonsque A+ Zn = A. Alors, Zn correspond à 0.

Définissons maintenant l’opérateur de multiplication matriciel. Soit A ∈ Mm,n(K)

et B ∈ Mn,m′(K) . Alors, nous définissons la multiplication matricielle par

(A ·B)i,jdef=

n∑k=1

Ai,k ·Bk,j

pour tout i allant de 1 jusqu’à m et tout j allant de 1 jusqu’à m′ inclusivement. Encoreune fois, nous avons que la multiplication matricielle est associative et distributive sur +

car l’opérateur · l’est en algèbre de Kleene. De plus, Zn agit comme élément absorbantbilatère de la multiplication.

Pour ce qui est de l’élément neutre sous la multiplication, noté par In, nous ledéfinissons par

(In)i,jdef=

{1 si i = j

0 sinon

pour tout i, j allant de 1 jusqu’à n inclusivement. Par définition du produit matricielet de In, nous avons facilement que pour tout A ∈ Mn,n(K), A · In = In ·A = A. Alors,In correspond à 1.

Remarque 3.2.6. Les opérateurs d’addition et de multiplication matricielles ainsi queles éléments neutres sous l’addition et la multiplication sont définis de la même façon enalgèbre de Kleene et en algèbre classique. Plus généralement, les opérateurs d’additionet de multiplication matricielles ainsi que les éléments neutres sous l’addition et lamultiplication peuvent être définis ainsi pour tous les demi-anneaux.

Il ne nous reste plus qu’à définir l’opérateur ∗ sur les matrices. Ce dernier est définien trois étapes. Nous commençons par le définir pour les matrices de taille 1× 1. SoitA = [a] une matrice de taille 1 × 1 où a est un élément quelconque de K. Alors, nousdéfinissons l’opérateur étoile de Kleene par

[a]∗def= [a∗] .

Page 57: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 3. Structures algébriques 50

Puis pour les matrices de taille n = 2, nous définissions l’opérateur étoile de Kleene par[a b

c d

]∗=

[(a+ bd∗c)∗ (a+ bd∗c)∗bd∗

(d+ ca∗b)∗ca∗ (d+ ca∗b)∗

]Enfin, pour les matrices de taille n > 2, nous définissons récursivement A∗ par

A∗ =

[B C

D E

]∗def=

[F ∗ F ∗CE∗

E∗DF ∗ E∗ + E∗DF ∗CE∗

]

où les sous-matrices B et E sont des matrices carrées et F def= B + CE∗D. Cela dit,

il n’est pas aussi évident, relativement aux autres opérateurs, de montrer que cettedéfinition de l’opérateur ∗ respecte les axiomes de l’algèbre de Kleene. Toutefois, lethéorème 3.2.7 nous assure que c’est le cas.

Théorème 3.2.7 ([39, théorème 11]). Soit 〈K, +, ·, ∗, 0, 1〉 une algèbre de Kleene.Alors,

〈Mn,n(K), +, ·, ∗, Zn, In〉

est une algèbre de Kleene.

Maintenant que nous avons montré que les matrices carrées sur une algèbre de Kleeneforment une algèbre de Kleene, il est possible de représenter les éléments de l’algèbrelibre de Kleene à l’aide d’un automate.

Définition 3.2.8 (Automate). Soit 〈K, +, ·, ∗, 0, 1〉 une algèbre de Kleene. Alors,un automate est un triplet

(u,A, v)

où u, v ∈ {0, 1}n et où A ∈ Mn,n(K). Les entrées non nulles de u désignent les étatsinitiaux tandis que les entrées non nulles de v désignent les états finaux de l’automate.La matrice A, quant à elle, donne les transitions qui existent entre les différents états.

Lemme 3.2.9 ([39, lemme 15]). Pour tout élément α de l’algèbre libre de Kleene surun ensemble générateur Σ, il existe un automate (u,A, v) tel que

α = uTA∗v .

La preuve du lemme 3.2.9 se fait par induction sur la structure des éléments del’algèbre libre de Kleene. En fait, cette preuve est très similaire à la preuve du corollaire5.2.4 que nous présentons en détail à la section 5.2.2.

Dans le reste de la preuve de complétude, Kozen traduit chacun des éléments d’uneégalité en automate. Puis, il applique des transformations à ceux-ci afin d’éliminer

Page 58: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 3. Structures algébriques 51

les ε transitions. Il applique ensuite à chacun des automates résultants l’algorithmede Myhill-Nerode [44, 67] afin d’obtenir l’automate minimal représentant chacun deséléments. Nous savons donc que les automates résultants sont les mêmes si et seulementsi les éléments qu’ils représentent sont égaux.

3.2.2 Algèbre de Kleene avec tests

Précédemment, nous avons brièvement mentionnée comment il est possible d’abs-traire un programme informatique en algèbre de Kleene. Cependant, ceci nécessite quenous délaissons beaucoup d’information au sujet du programme initial. Ces informa-tions peuvent être utiles afin d’inférer de nouvelles connaissances sur le programme.Afin de pallier à ce manque d’information, nous pouvons, à la place d’abstraire le pro-gramme en algèbre de Kleene, l’abstraire dans une algèbre plus expressive. Il se trouveque l’algèbre de Kleene avec tests est un pas important dans cette direction.

Intuitivement, l’algèbre de Kleene avec tests permet de faire la distinction entre lesprogrammes atomiques et les tests atomiques alors qu’en algèbre de Kleene nous neretrouvons que des programmes atomiques. Ceci permet d’avoir une meilleure représen-tation du graphe de flot de contrôle d’un programme et de vérifier des conditions queles programmes doivent respecter à certains endroits précis (assertions). Formellement,la définition d’une algèbre de Kleene avec tests est donnée par la définition 3.2.10.

Définition 3.2.10 (Algèbre de Kleene avec tests [47]). Une algèbre de Kleene avec testsest une structure algébrique 〈K, B, +, ·, ∗, , 0, 1〉 telle que 〈K, +, ·, ∗, 0, 1〉 estune algèbre de Kleene, B ⊆ K et 〈B, +, ·, , 0, 1〉 est une algèbre booléenne. Parabus de notation, nous désignons les opérateurs de l’algèbre booléenne par les mêmessymboles que les opérateurs de l’algèbre de Kleene, mais il est à noter que ce ne sontpas les mêmes opérations.

En algèbre de Kleene avec tests, il est facile d’abstraire un programme « while » enfaisant appel à une simple fonction de traduction définie de la manière suivante :

abortdef= 0

skipdef= 1

p ; q def= pq

if b then p else q def= bp+ bq

if b then pdef= bp+ b

while b do pdef= (bp)∗b

Page 59: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 3. Structures algébriques 52

où p et q sont des programmes atomiques tandis que b et b sont des tests tel que b estle complément de b.

D’un point de vue plus théorique, l’algèbre de Kleene avec tests se veut une axioma-tisation intègre et complète de la théorie équationnelle des ensembles réguliers sur lesmots gardés [16]. De plus, il est clair que toute algèbre de Kleene est aussi une algèbrede Kleene avec tests [9, théorème 4.6.6] : il suffit alors de prendre comme ensemble detests B l’ensemble {0, 1}. Un autre résultat intéressant de l’algèbre de Kleene avec testsest que la logique de Hoare propositionnelle est contenue dans celle-ci [51]. Cela signifieque nous pouvons traduire les spécifications d’un programme, exprimées en logique deHoare, en algèbre de Kleene avec tests, sans perdre d’expressivité ; il est alors possiblede raisonner sur ces spécifications en utilisant les lois de l’algèbre de Kleene avec tests.

3.3 Structures résiduées

Dans une algèbre de Kleene, il n’est pas obligatoire qu’il y ait, pour chaque élément,un élément inverse sous l’addition ou la multiplication comme c’est le cas dans la struc-ture algébrique de corps. Or, l’existence des éléments inverses s’avère très utile, entreautres, lorsque nous faisons de la résolution d’équations dans les corps. Nous pourrionsdonc être tenté d’imposer l’existence d’inverse en algèbre de Kleene afin de faciliter la ré-solution d’équations. Toutefois, imposer l’existence d’éléments inverses à une structurealgébrique s’avère généralement lourd de conséquences. En particulier, dans le cadred’une algèbre de Kleene, nous savons par le lemme 3.1.5 que si nous imposons quetout élément ait un inverse sous l’addition, l’opérateur + ne peut plus être idempotent.Nous nous trouverions donc à modifier considérablement la structure algébrique. Parconséquent, au lieu d’imposer l’existence d’éléments inverses, nous pouvons ajouter àune algèbre des opérateurs qui agissent en quelque sorte comme des opérations inverseset qui sont beaucoup moins contraignants.

À la base de ces opérateurs, nous retrouvons ce que nous appelons une correspon-dance de Galois (ou application résiduable) [1, 6, 24, 27].

Définition 3.3.1 (Correspondance de Galois). Soit A et B deux ensembles ordonnésainsi que deux fonctions F : A −→ B et G : B −→ A. Alors, nous dirons que cesfonctions forment une correspondance de Galois si

F (x) ≤ y ↔ x ≤ G(y) .

Dans un tel cas, nous appelons F l’adjoint inférieur et G l’adjoint supérieur.

Page 60: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 3. Structures algébriques 53

Une correspondance de Galois peut sembler peu utile à première vue, mais nousnotons, entre autres, que les opérateurs pour lesquels des éléments inverses existentforment une correspondance de Galois et qu’à partir de cette simple définition, il estpossible de dériver plusieurs propriétés intéressantes. Parmi ces propriétés, nous avonsque F agit comme un semi-inverse de G et que G agit comme un semi-inverse de F [1,théorème 4.15], c’est-à-dire que

F (x) = (F ◦G ◦ F )(x)

G(x) = (G ◦ F ◦G)(x)

où ◦ est l’opérateur de composition de fonction.

L’idée est donc d’associer à un opérateur existant un opérateur inverse qui, lorsquenous fixons un élément, forme une correspondance de Galois. Prenons par exemplele cas de l’opérateur d’addition + dans les corps auquel nous associons l’opérateurde soustraction −. Fixons alors un élément z et définissons les fonctions F et G parF (x)

def= x+z et G(x)

def= x−z. Enfin, imposons que F et G forment une correspondance

de Galois, c’est-à-dire :x+ z ≤ y ↔ x ≤ y − z .

Dans le cas que nous venons de présenter, il est clair que nous sommes en présence d’unecorrespondance de Galois d’après les définitions de l’addition et de la soustraction dansles corps. Cependant, en général, c’est le contraire qui se produit, la correspondance deGalois définit une paire d’opérateurs qui sont l’inverse l’un de l’autre.

Dans le cadre d’une algèbre de Kleene, il est possible de définir, aussi bien pourl’opérateur d’addition que pour l’opérateur de multiplication, un nouvel opérateur quise trouve à jouer le rôle de semi-inverse à l’aide d’une correspondance de Galois. Tou-tefois, dans ce qui suit, nous allons nous limiter aux semi-inverses de l’opérateur demultiplication, car ceux-ci ont mené à la définition de sous-classes intéressantes de l’al-gèbre de Kleene. Cela dit, on retrouve aussi dans la littérature quelques travaux traitantde semi-inverse de l’opérateur d’addition [27, section 5.2].

Nous appelons opérateurs de résidus les opérateurs qui jouent le rôle de semi-inversede l’opération de multiplication en algèbre de Kleene [30, 31, 32, 50, 63]. Il est à noterque les opérateurs de résidus sur les langages tels que nous les avons définis dans lechapitre 2 sont, en fait, un cas particulier des opérateurs de résidus. Formellement, lesopérateurs de résidus \ et /, respectivement nommés résidu à gauche et résidu à droite,peuvent être définis pour tout monoïde partiellement ordonné de la manière suivante :

x · y ≤ z ↔ x ≤ z/y ↔ y ≤ x\z . (3.24)

La structure algébrique résultante est appelée monoïde résidué partiellement ordonné,ou po-monoïde résidué, en court.

Page 61: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 3. Structures algébriques 54

Définition 3.3.2 (Monoïde résidué partiellement ordonné). Un monoïde résidué par-tiellement ordonné (ou po-monoïde résidué) est une structure algébrique〈P, ·, 1, \, /, ≤〉 telle que 〈P, ·, 1〉 est un monoïde, ≤ est un ordre partiel sur P etla propriété 3.24 est respectée. Pour facilité la notation, nous posons que l’opérateur ·a préséance sur les opérateurs \ et /.

De l’existence des résidus découle une série de propriétés. En voici quelques-unes quiseront utiles ultérieurement (les preuves de celles-ci se trouvent dans [63]). De plus, ilest à noter que les propriétés, ci-dessous, ont une forme miroir équivalente qui fait usagede l’opérateur / au lieu de l’opérateur \. Pour les obtenir, nous devons lire l’expressionen sens inverse en remplaçant x · y par y · x et x/y par y\x. Ceci implique qu’à chaquefois que nous montrons qu’une identité est valide, l’identité miroir équivalente est aussivalide.

Lemme 3.3.3. Soit 〈P, ·, 1, \, /, ≤〉 un po-monoïde résidué. Alors :

1. Si⊔X et

dY existent pour X, Y ⊂ P , alors pour tout z ∈ P ,

dx∈X x\z etd

y∈Y z\y existent et(⊔X)\z =

l

x∈X

x\z et z\(l

Y)

=l

y∈Y

z\y

2. 1\x = x

3. (xy)\z = y\(x\z)

4. x\(y/z) = (x\y)/z

5. S’il existe un plus petit élément dans P , noté ⊥, alors il existe un plus grandélément dans P , noté >. De plus nous avons que ⊥\x = > et que x\> = >.

Preuve du lemme 3.3.3 :

Les preuves de ces identités se retrouvent dans [63]. �

Si nous nous reportons maintenant dans le contexte d’une algèbre de Kleene, nousdirons que nous sommes en présence d’une algèbre de Kleene résiduée lorsque le monoïdeengendré par l’opération de multiplication, c’est-à-dire 〈K, ·, 1〉, est aussi résidué.

Définition 3.3.4 (Algèbre de Kleene résiduée). Une algèbre de Kleene résiduée est unestructure algébrique 〈R, +, ·, \, /, ∗, 0, 1〉 telle que 〈R, +, ·, ∗, 0, 1〉 est une algèbrede Kleene et que 〈R, ·, \, /, 1, ≤〉 est un po-monoïde résidué, où ≤ est l’ordre surune algèbre de Kleene.

Page 62: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 3. Structures algébriques 55

L’algèbre de Kleene résiduée hérite donc de toutes les propriétés des po-monoïdesrésidués. En plus, le fait d’ajouter les résidus à une algèbre de Kleene implique que lastructure algébrique résultante est une variété au lieu d’être une quasi-variété commel’algèbre de Kleene [31, théorème 2.1]. Sans entrer dans les détails de ce qu’est unevariété et une quasi-variété, disons seulement qu’une algèbre de Kleene résiduée peutêtre définie uniquement à l’aide d’équations tandis qu’une algèbre de Kleene est définieà l’aide d’équations et de quasi-équations. Cela dit, malgré les propriétés intéressantesque nous retrouvons dans une algèbre de Kleene résiduée, les matrices sur une algèbrede Kleene résiduée ne forment par un modèle de celle-ci [31, 50]. Or, lorsque nousrésoudrons des systèmes d’équations linéaires, il sera important d’avoir une opérationqui joue le rôle de semi-inverse de la multiplication matricielle.

Afin de pouvoir définir des opérateurs de résidus sur les matrices, il faut imposer,en plus, le fait que l’algèbre considérée soit un treillis. Ceci a mené à la définition de ceque nous appelons treillis d’actions.

Définition 3.3.5 (Treillis d’actions). Un treillis d’actions est une structure algébrique〈A, +, u, ·, \, /, ∗, 0, 1〉 telle que 〈A, +, u〉 est un treillis et que〈A, +, ·, \, /, ∗, 0, 1〉 est une algèbre de Kleene résiduée.

En considérant les matrices sur un treillis d’actions, il est possible de définir lesopérateurs matriciels. Soit B ∈ Mm,n(A) et C ∈ Mm,n′(A) des matrices dont les élémentsappartiennent à un treillis d’actions. Alors, on définit le résidu matriciel à gauche par :

(B\C)i,jdef=

ml

k=1

Bk,i\Ck,j (3.25)

pour tout i allant de 1 à n et pour tout j allant de 1 à n′ inclusivement. Le résidu àdroite est quant à lui défini de manière symétrique.

Nous nous retrouvons donc avec une structure algébrique qui est beaucoup plus res-trictive que l’algèbre de Kleene. Toutefois, dans un contexte d’analyse de programmes,ces contraintes supplémentaires ont peu ou pas d’impact, car la plupart des exemplesd’algèbre de Kleene provenant de l’analyse de programmes sont en fait des treillis d’ac-tions [50]. De plus, il demeure possible d’étendre et de définir des variantes d’un treillisd’actions, comme il est fait avec l’algèbre de Kleene. Nous pourrions notamment ajouterles tests afin d’avoir un treillis d’actions avec tests.

Page 63: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 3. Structures algébriques 56

3.3.1 Dérivations dans l’algèbre de Kleene libre

Nous allons maintenant présenter un cas particulier des structures résiduées en lienavec l’algèbre de Kleene qui nous sera utile dans la preuve du théorème 5.2.1. Bienque l’algèbre de Kleene ne soit pas une structure résiduée, c’est-à-dire qu’il existe desmodèles de l’algèbre qui n’admettent pas d’opérations de résiduation (voir [31] pourun exemple), il est possible de définir des opérateurs de résidus sur l’algèbre de Kleenelibre.

Ce résultat est dû au fait que l’algèbre libre de Kleene FΣ est isomorphe à RegΣ

en raison du théorème 3.2.5, à la page 48. C’est-à-dire qu’à chaque élément de FΣ nouspouvons mettre en correspondance un élément de RegΣ. Or comme nous l’avons vu à lasection 2.1.2, il est possible de définir un opérateur de résidu sur les langages réguliers etle résultat de cette opération est aussi un langage régulier. Ceci fait que nous pourrionsdéfinir un opérateur de résidu sur FΣ à l’aide de l’opérateur de résidu sur RegΣ enutilisant l’interprétation standard RΣ de la façon suivante :

x\y def= R−1

Σ (RΣ(x)\RΣy) .

Cela dit, dans [49] Kozen montre comment définir de façon purement algébrique lesrésidus sur l’algèbre libre de Kleene sans passer par la correspondance existant entrecette dernière et RegΣ. En fait, il définit d’abord les dérivations dans l’algèbre libre deKleene à la manière de Brzozowski qui les définit sur les expressions régulières tellesque présentées à la section 2.1.3.

Définition 3.3.6 (Opérateur de dérivation). Soit x un élément de FΣ et a ∈ Σ. Alors,la dérivation de x par rapport à a, noté par Da(x) : FΣ −→ FΣ, est définie de manièreinductive, comme suit :

Da(x)def=

1 si x = a

0 si x = 1 ou x = 0 ou x ∈ Σ\{a}Da(x1)x∗1 si x = x∗1Da(x1)x2 + ε(x1)Da(x2) si x = x1x2

Da(x1) +Da(x2) si x = x1 + x2

où ε(x) = 1 si 1 ≤ x et 0 sinon.

Puis Kozen montre que cet opérateur est bien défini, c’est-à-dire que si x = y estun théorème alors Da(x) = Da(y) est aussi un théorème. Ceci est fait en montrant quela dérivation de chacun des axiomes de l’algèbre de Kleene est un théorème de l’algèbrede Kleene. Pour plus de détails à ce sujet, le lecteur est invité à consulter [49].

Page 64: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 4

Algèbre linéaire

Dans ce chapitre, nous présentons une généralisation du concept d’algèbre linéaire,défini habituellement sur les corps, aux demi-anneaux. Nous nous limiterons cependantà l’extension de quelques notions précises afin d’avoir en main les outils nécessaires àla caractérisation et la manipulation d’équations que nous qualifions de linéaires sur lesdemi-anneaux. Ceci nous permettra de définir, dans le chapitre 5, les équations quasilinéaires en algèbre de Kleene et de nous attarder à leur résolution.

Cela dit, à première vue, il ne semble pas nécessaire de généraliser l’algèbre linéaireafin de pouvoir caractériser des équations aussi élémentaires que les équations linéairessur les demi-anneaux. Toutefois, cette intuition est biaisée par l’image que nous nousfaisons d’une équation linéaire depuis l’école secondaire. En fait, comme nous l’avonsdéjà mentionné, l’algèbre linéaire est définie sur la structure algébrique des corps cequi fait que la notion d’équation linéaire telle que nous la connaissons est liée auxpropriétés que nous retrouvons dans les corps. Il faut donc trouver une façon correctede caractériser les équations linéaires dans les demi-anneaux afin que celles-ci tiennentcompte des propriétés propres à ces derniers.

Dans la littérature, nous retrouvons quelques références à des systèmes d’équationslinéaires dans des sous-classes des demi-anneaux notamment pour les demi-anneaux,idempotents [5, 18, 26, 27, 65] et pour l’algèbre de Kleene [49, 60, 72]. Cependant, dansces ouvrages, ils ne s’appliquent pas à caractériser les équations linéaires de façon géné-rale. Ils s’intéressent davantage à la résolution de problèmes particuliers qui font appelà des équations pouvant être représentées sous certaines formes précises. Il s’avère ce-pendant que ces formes ne sont pas sans rappeler la forme caractéristique des équationslinéaires en algèbre linéaire classique, d’où leur appellation.

Page 65: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 4. Algèbre linéaire 58

Il a donc fallu trouver une façon de généraliser la notion d’équation linéaire auxdemi-anneaux. Afin d’atteindre cet objectif, nous nous sommes basés sur la générali-sation de l’algèbre linéaire aux demi-anneaux. Nous avons retenu cette approche parmid’autres, car, croyons-nous, il s’agit de l’approche la plus naturelle et la plus facilementgénéralisable.

4.1 Algèbre linéaire classique

Avant de s’attarder à la généralisation de l’algèbre linéaire aux demi-anneaux, faisonsun bref rappel des différentes notions que nous retrouvons en algèbre linéaire classique.Les définitions, ainsi que certains exemples que nous retrouvons dans cette section, sonttirées des chapitres 1, 2 et 15 de [68].

4.1.1 Espace vectoriel, indépendance linéaire et bases

À la base de l’algèbre linéaire classique, nous retrouvons ce que nous appelons unespace vectoriel.

Définition 4.1.1 (Espace vectoriel). Soit C un corps. Un espace vectoriel sur C estun groupe abélien 〈V, +, 0〉 avec une loi de composition externe � : C × V −→ V

respectant les propriétés suivantes :

r � (u+ v) = r � u+ r � v(r + s) � u = r � u+ s � u

(rs) � u = r � (s � u)

1 � u = u

pour tout r, s ∈ C, pour tout u, v ∈ V et où 1 est l’élément neutre de la multiplicationdans C. Les éléments de C sont appelés scalaires tandis que ceux de V sont appelésvecteurs. De plus, par abus de notation, on désigne généralement un espace vectorieluniquement par l’ensemble univers V .

Exemple 4.1.2.1. L’exemple d’espace vectoriel le plus connu est sans doute celui formé par Rn sur

le corps R. Dans ce cas, l’addition vectorielle est défini par

(a1, a2, . . . , an) + (b1, b2, . . . , bn)def= (a1 + b1, a2 + b2, . . . , an + bn)

et le produit par un scalaire est défini par

r � (a1, a2, . . . , an)def= (ra1, ra2, . . . , ran) .

Page 66: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 4. Algèbre linéaire 59

2. Soit un corps C. L’ensemble F de toutes les fonctions de C vers C forme unespace vectoriel sur C pour les opérations standard d’addition de fonctions et demultiplication par un scalaire tel que défini par

(f + g)(x)def= f(x) + g(x)

et par(r � f)(x)

def= r(f(x)) .

3. Soit un espace vectoriel V sur un corps C. Alors, V n forme un espace vectoriel surC où l’addition et la multiplication par un scalaire sont définies de façon similaireà ce que nous faisons pour Rn.

Un autre exemple d’espace vectoriel est celui généré par la combinaison linéaire devecteurs appartenant à un espace vectoriel.

Définition 4.1.3 (Combinaison linéaire). Soit v1, v2, . . . , vn des vecteurs appartenantà l’espace vectoriel V sur C ainsi que r1, r2, . . . , rn des scalaires. Nous appelons alorscombinaison linéaire la construction

r1 � v1 + r2 � v2 + · · ·+ rn � vn .

Définition 4.1.4 (Espace vectoriel généré par un ensemble de vecteurs). Soit V unespace vectoriel sur C et E = {v1, v2, . . . , vn} un ensemble, potentiellement infini, devecteurs appartenant à V . Alors, l’espace vectoriel généré par E, noté par Gen(E), estl’ensemble de toutes les combinaisons linéaires de vecteurs appartenant à E. C’est-à-dire

Gen(E)def= {r1 � v1 + r2 � v2 + · · ·+ rn � vn | ri ∈ C, vi ∈ E} .

L’espace vectoriel ainsi généré est habituellement un sous-espace vectoriel de V .

Définition 4.1.5 (Sous-espace vectoriel). Soit S un sous-ensemble de V , un espacevectoriel sur le corps C. Alors, nous disons que S est un sous-espace vectoriel de V siet seulement s’il est un espace vectoriel sur C obtenu en restreignant les opérations +

et � de V à S. Ce qui est équivalent à dire qu’il existe E ⊆ V tel que S = Gen(E).

Lorsque l’espace vectoriel généré par un ensemble de vecteurs appartenant à V estV lui-même, il devient légitime de se demander s’il existe un plus petit ensemble devecteurs permettant de générer V . Or, en se basant sur la définition d’un espace vectorielgénéré par un ensemble de vecteurs, nous nous apercevons que les vecteurs appartenantà cet ensemble et qui sont égaux à une combinaison linéaire des autres vecteurs peuventêtre retirés. De telle sorte que l’ensemble de vecteurs résultant génère encore le mêmeespace vectoriel. Cette possibilité de pouvoir exprimer un vecteur à l’aide d’autres mèneà la notion de dépendance et d’indépendance linéaire.

Page 67: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 4. Algèbre linéaire 60

Définition 4.1.6 (Dépendance linéaire). Soit E = {v1, v2, . . . , vn} un ensemble nonvide de vecteurs appartenant à V . Alors, pour n ≥ 2, nous dirons que cet ensembleest linéairement dépendant si et seulement s’il existe un vecteur vi ∈ E pouvant êtreexprimé par une combinaison linéaire des autres vecteurs appartenant à E, c’est-à-dire

∃i, r1, r2, . . . , ri−1, ri, . . . , rntel que

r1 � v1 + r2 � v2 + · · ·+ ri−1 � vi−1 + ri+1 � vi+1 + · · ·+ rn � vn = vi .

Le vecteur vi sera alors qualifié de vecteur linéairement dépendant.Dans le cas où n = 1,nous dirons que l’ensemble est linéairement dépendant si et seulement si le seul élémentde cet ensemble est l’élément 0. Dans le même ordre d’idées, nous dirons qu’un ensemblede vecteurs est linéairement indépendant s’il n’est pas linéairement dépendant. Donc siE est un singleton, il est automatiquement linéairement indépendant du moment qu’ilne s’agisse pas de l’élément neutre 0.

Dans la littérature, nous retrouvons généralement une autre définition de la dé-pendance et de l’indépendance linéaire qui est équivalente à celle que nous venons dedonner [68, Théorème 1.6]. Cette autre définition nous est donnée en 4.1.7.

Définition 4.1.7 (Indépendance linéaire (deuxième version)). Soit E = {v1, v2, . . . , vn}un ensemble non vide de vecteurs appartenant à V . Alors, nous disons que E est linéaire-ment indépendant si et seulement si

r1 � v1 + r2 � v2 + · · ·+ rn � vn = 0→ r1 = r2 = · · · = rn = 0 .

Donc lorsqu’un espace vectoriel est généré par un ensemble E de vecteurs, nous pou-vons enlever de cet ensemble les vecteurs linéairement dépendants d’un sous-ensemblede E jusqu’à ce que nous obtenions un sous-ensemble de E duquel il n’est plus possibled’enlever des vecteurs linéairement dépendants. Alors, un tel ensemble s’appelle basede l’espace vectoriel.

Définition 4.1.8 (Base d’un espace vectoriel). Soit B = {v1, v2, . . . , vn} un ensemblenon vide de vecteurs appartenant à V . Nous disons que B forme une base de V s’ilgénère V et qu’il est linéairement indépendant.

Exemple 4.1.9. L’ensemble des vecteurs

e1 = (1, 0, . . . , 0), e2 = (0, 1, . . . , 0), . . . , en = (0, 0, . . . , 1)

forme une base de l’espace vectoriel Cn sur le corps C. Cette base porte le nom de basecanonique.

Page 68: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 4. Algèbre linéaire 61

La notion de base d’un espace vectoriel est très importante en algèbre linéaire enraison du fait que tout espace vectoriel, hormis le cas pathologique ayant comme seulélément 0, possède au moins une base. De plus, il n’est pas très difficile de montrer quetoutes les bases d’un même espace vectoriel ont la même cardinalité.

Définition 4.1.10 (Dimension d’un espace vectoriel). Soit B une base d’un espacevectoriel V sur le corps C. Alors, la dimension de cet espace vectoriel, noté par dim(V ),est définie par :

dim(V )def= |B| .

Dans le cas où l’espace vectoriel considéré est le cas pathologique ayant comme seulélément 0, nous disons que la dimension de cet espace vectoriel est de 0.

4.1.2 Transformations linéaires, équations linéaires et matrices

Maintenant que nous avons défini ce qu’est un espace vectoriel ainsi que quelquespropriétés de ceux-ci, nous allons nous attarder sur un type de transformation quipermet de les manipuler. Il s’agit des transformations linéaires.

Définition 4.1.11 (Transformation linéaire). Soit V et W deux espaces vectoriels surun même corps C. Alors, une transformation linéaire est un homomorphisme entre Vet W . En d’autres mots, nous disons que h : V −→ W est une transformation linéairesi et seulement si

h(r � u+ s � v) = r � h(u) + s � h(v)

pour tout r, s ∈ C et tout u, v ∈ V .

Bien que nous ayons défini les transformations linéaires pour toutes paires d’espacesvectoriels de dimensions finies sur un corps C, nous aurions pu aussi nous limiter à lesdéfinir entre les espaces vectoriels Cm et Cn. Ceci vient du fait que toutes les trans-formations linéaires entre deux espaces vectoriels quelconques sur un corps C peuventêtre représentées par des transformations linéaires entre Cm et Cn où m et n sont lesdimensions respectives.

Tout d’abord, nous remarquons que tout vecteur appartenant à un espace vectorielV sur un corps C peut être représenté comme un vecteur dans Cm où m = dim(V ).Sachant que tout espace vectoriel V possède au moins une base et que tout vecteurv ∈ V s’écrit comme une combinaison linéaire des vecteurs appartenant à la base, nouspouvons, en fixant une base et un ordre sur les éléments de celle-ci, représenter v par lesscalaires multipliant les éléments de la base. La représentation d’un vecteur v en terme

Page 69: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 4. Algèbre linéaire 62

d’une base B, pour laquelle nous avons fixé l’ordre de ces éléments, est donnée par lafonction φB : V −→ Cm définie par :

φB(v)def=

r1

r2

...rn

telle que

v = [ r1 r2 . . . rn ]

b1

b2

...bn

oùm = dim(V ) et où les bi sont les vecteurs formant la base B. Pour une base ordonnéefixée, il est clair que cette fonction est bijective donc possède un inverse. En faisant appelà ces propriétés, nous obtenons facilement une représentation d’une transformationlinéaire de V vers W en terme d’une transformation linéaire de Cm vers Cn. Soit B unebase ordonnée fixée pour V , C une base ordonnée fixée pour W et h une transformationlinéaire de V versW . Alors, nous définissons la transformation linéaire θB,C : Cm −→ Cn

représentant h par :θB,C(v)

def= (φC ◦ h ◦ φ−1

B )(v)

où ◦ désigne la composition de fonctions.

De surcroît, il est possible de caractériser davantage les transformations linéaires deCm vers Cn.

Théorème 4.1.12 ([68, Théorème 2.10]). Soit h : Cm −→ Cn une transformationlinéaire. Alors, il existe une matrice A de dimension n×m sur C telle que

h(v) = A · v

où · est la multiplication matricielle. Inversement, soit A une matrice de dimensionn×m. Alors, A · v est une transformation linéaire.

Exemple 4.1.13. Soit I : P2[x] −→ P3[x] l’opérateur d’intégration défini sur l’espacevectoriel formé par les polynômes de degré maximal 2 sur R. Posons que B = (1, x, x2)

Page 70: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 4. Algèbre linéaire 63

et C = (1, x, x2, x3). Alors,

φC(I(1)) = φC(x) =

0

1

0

0

, φC(I(x)) = φC

(x2

2

)=

0

012

0

,

φC(I(x2)) = φC

(x3

3

)=

0

0

013

et donc

θB,C(v) =

0 0 0

1 0 0

0 12

0

0 0 13

v .

Ceci fait qu’intégrer le polynôme de degré deux, p(x) = 5 + x+ 2x2, revient à effectuerun produit matriciel

φC(I(p(x))) = θB,C(φB(p(x))) =

0 0 0

1 0 0

0 12

0

0 0 13

5

1

2

=

0

51223

d’où I(p(x)) = 5x+ 1

2x2 + 2

3x3.

Le théorème 4.1.12 indique donc qu’il est possible de considérer uniquement lesfonctions de Cm vers Cn s’écrivant sous la forme d’une matrice comme étant les trans-formations linéaires sur un corps C. De plus, ceci permet de caractériser les systèmesd’équations linéaires en terme de transformations linéaires. Une équation linéaire surun corps C est définie comme étant une équation de la forme

Ax = b (4.1)

où A est une matrice de dimension n×m dont les éléments sont dans C, x est un vecteurcolonne de taille m dont les éléments sont des variables et b est un vecteur colonne detaille n dont les éléments sont dans C.

Définition 4.1.14 (Système d’équations linéaires). Soit h : V −→ W une transfor-mation linéaire entre les espaces vectoriels V et W sur le corps C. Alors, un systèmed’équations linéaires a la forme

h(v) = u

Page 71: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 4. Algèbre linéaire 64

où u ∈ W et v est un vecteur inconnu de V . En d’autres mots, en résolvant un systèmed’équations linéaires nous voulons savoir pour quel(s) vecteur(s) de V la fonction h

s’évalue en u. Dans le cas où u = 0, nous parlerons d’un système d’équations homogèneet sinon de système d’équations inhomogène.

Pour résoudre ce genre de système d’équations, nous mettons à profit le fait que lestransformations linéaires sont caractérisées par des transformations linéaires de Cm versCn lorsque nous avons fixé une base ordonnée pour ceux-ci. Lorsque nous représentonsun vecteur de V dans Cm, où m = dim(V ), nous devons choisir une base ordonnée,mais comme celle-ci n’est pas nécessairement unique, il se peut qu’il existe plusieursreprésentations de v dans Cm. Nous nous retrouvons, en fait, à générer des classesd’équivalence de vecteurs de Cm en respect de la relation d’équivalence ≡V définie par :

u ≡V vdef↔ ∃B et C, des bases ordonnées de V telles que φ−1

B (u) = φ−1C (v)

où u, v ∈ Cm. Nous pouvons aisément passer d’un vecteur u, obtenu avec la base ordon-née B, à un autre vecteur v équivalent obtenu avec la base ordonnée C en appliquantla fonction ΦB,C : Cm −→ Cm définie par :

ΦB,C(u)def= (φC ◦ φ−1

B )(u) .

De plus, il n’est pas difficile de montrer que ΦB,C est une transformation linéaire deCm vers Cm ce qui fait que nous pouvons la représenter à l’aide d’une matrice. Cettematrice est désignée par MB,C où la ie colonne est φC(bi), c’est-à-dire le i

e vecteur de labase ordonnée B représenté dans Cm à l’aide de la base ordonnée C.

Il se produit sensiblement la même chose pour ce qui est des transformations linéairesentre deux espaces vectoriels quelconques représentés par une transformation linéaire deCm vers Cn. Il existe plusieurs représentations équivalentes d’une même transformationlinéaire entre deux espaces vectoriels V et W , dépendamment du choix de la basede chacun. Les classes d’équivalences sont caractérisées par la relation d’équivalence≡V−→W définie par :

h ≡V−→W h′def↔ ∀u, v ∈ V : u ≡V v ⇔ h(u) ≡W h′(v)

où h et h′ sont des transformations linéaires de V versW . Nous pouvons donc définir unetransformation linéaire h′ de Cm vers Cn, obtenue avec les bases ordonnées respectivesB′ et C′, à l’aide d’une transformation linéaire h de Cm vers Cn, obtenue avec les basesordonnées respectives B et C, équivalente, selon ≡V−→W , de la façon suivante :

h′(v) = (φC′ ◦ φ−1C ◦ h ◦ φB ◦ φ−1

B′ )(v) .

Page 72: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 4. Algèbre linéaire 65

Comme φC′ ◦ φ−1C , h et φB ◦ φB′ sont toutes des transformations linéaires nous avons

queh′(v) = MC,C′AMB′,Bv

, où A est la matrice de la transformation linéaire de Cm vers Cn représentant latransformation linéaire h étant données les bases ordonnées B et C.

Tout ceci fait qu’un système d’équations linéaires exprimé sous la forme donnée par(4.1) possède plusieurs systèmes d’équations linéaires équivalents qui correspondent àdes changements de bases dans les espaces vectoriels Cm et Cn. De plus, ces systèmeséquivalents sont obtenus en multipliant la matrice A de dimension n×m et le vecteurb à gauche par une matrice inversible de taille n× n et en multipliant la même matriceA à droite par une matrice inversible de taille m×m.

Exemple 4.1.15. Le système d’équation[4 3

7 11

]x =

[1

1

]

est équivalent au système[1 0

0 −47

][4 3

7 11

]x

[1 0

0 1

]=

[1 0

0 −47

][1

1

]

qui se réécrit sous la forme [4 3

−4 −447

]x =

[1−47

].

Le système résultant est quant à lui équivalent au système[1 0

1 1

][4 3

−4 −447

]x

[1 0

0 1

]=

[1 0

1 1

][1

1

]

qui se réécrit sous la forme[4 3

0 3 + −447

]x =

[1

1 + −47

].

Donc nous pouvons dire que la solution du système d’équations est

x =

[823−323

].

Page 73: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 4. Algèbre linéaire 66

4.1.3 Transformations affines, équations affines et espaces af-fines

Dans la section précédente, nous avons fourni une définition d’un système d’équa-tions linéaires à l’aide d’une transformation linéaire entre deux espaces vectoriels. Celadit, il existe un autre genre de transformations, entre espaces vectoriels, pour lesquellesdéterminer en quelles valeurs celles-ci s’évaluent en une valeur donnée revient à résoudreun système d’équations linéaires. Nous nommons ces transformations les transforma-tions affines.

Définition 4.1.16 (Combinaison affine). Soit

r1 � v1 + r2 � v2 + · · ·+ rn � vn

une combinaison linéaire de vecteurs d’un espace vectoriel V sur un corps C. Alors,nous dirons qu’il s’agit d’une combinaison affine si et seulement si

n∑i=1

ri = 1 .

Définition 4.1.17 (Transformation affine). Soit V et W deux espaces vectoriels surle même corps C. Alors, une transformation affine est une fonction f : V −→ W quipréserve les combinaisons affines, c’est-à-dire

n∑i=1

ri = 1⇐ f

(n∑i=1

ri � vi

)=

n∑i=1

ri � f(vi) .

Remarque 4.1.18. À première vue l’implication dans la définition 4.1.17 semble ne pasêtre du bon sens. Toutefois, si elle était dans l’autre sens, il serait possible que la fonctionf préserve des combinaisons linéaires quelconques (autres qu’affines). Alors que dansla cas présent, les combinaisons linéaires que f préserve n’ont pas d’autres choix qued’être des combinaisons affines.

Il est aussi possible de définir les transformations affines à l’aide des transformationslinéaires en accord avec le théorème 4.1.19.

Théorème 4.1.19 ([68, Théorème 15.2]). Une fonction f : V −→ W est une trans-formation affine si et seulement si elle s’écrit sous la forme f = Tw ◦ h où h est unetransformation linéaire de V vers W et Tw : W −→ W est une transformation affinedéfinie par

Tw(x)def= x+ w

pour tout w ∈ W .

Page 74: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 4. Algèbre linéaire 67

Avec le résultat donné par le théorème 4.1.19, nous s’apercevons qu’en fait les trans-formations linéaires sont incluses dans les transformations affines. De plus, comme nousavons montré que toutes les transformations linéaires entre deux espaces vectorielspeuvent être exprimées par un produit matriciel (4.1.12), nous pouvons exprimer toutesles transformations affines entre deux espaces vectoriels sur le même corps C sous laforme

Ax+ b (4.2)

, où A est une matrice de dimension m × n dont les éléments sont dans C, x est unvecteur colonne de taille n dont les éléments sont des variables et b est un vecteurcolonne de taille m dont les éléments sont dans C. Or, comme l’inverse sous l’additionde vecteurs existe, il est clair que déterminer en quelles valeurs une transformation affines’évalue en une valeur précise revient à résoudre un système d’équations linéaires.

Nous aurions donc pu définir les systèmes d’équations linéaires en terme de trans-formations affines plutôt qu’en terme de transformations linéaires. Cela dit, nous intro-duisons tout de même un nouveau type d’équations qui est équivalent aux équationslinéaires dans le cas des espaces vectoriels, mais qui ne le restera pas lorsque nous nousattarderons à la généralisation de ceux-ci.

Définition 4.1.20 (Systèmes d’équations affines). Soit f : V −→ W une transfor-mation affine entre les espaces vectoriels V et W sur le corps C. Alors, un systèmed’équations affines est

f(v) = u

, où u ∈ W et où v est un vecteur inconnu de V . En d’autres mots, en résolvant unsystème d’équations affines, on veut savoir pour quel(s) vecteur(s) de V la fonction fs’évalue en u.

Nous terminons cette section en introduisant un type d’espace qui, au lieu d’êtreclos sous les combinaisons linéaires comme le sont les espaces vectoriels, est clos sousles combinaisons affines.

Définition 4.1.21 (Espace affine). Soit un espace vectoriel V . Alors, un espace affineest un sous-ensemble S de V qui est clos sous les combinaisons affines. C’est-à-dire quepour n’importe quel sous-ensemble fini de S, toute combinaison affine de ces vecteursappartient aussi à S.

Par une construction similaire à celle qui nous a permis de définir les transformationsaffines à l’aide des transformations linéaires, il est possible de définir les espaces affinesà l’aide des espaces vectoriels.

Page 75: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 4. Algèbre linéaire 68

Définition 4.1.22 (Espace affine (deuxième version)). Soit V un espace vectoriel. Pourun v ∈ V et S un sous-espace vectoriel de V , l’ensemble

v + Sdef= {v + s | s ∈ S}

forme un espace affine.

En fait, les espaces affines sont généralement définis par 4.1.22, plutôt que par 4.1.21,car ces deux définitions sont équivalentes [68, Théorème 15.3]. Toutefois, comme pour lecas de la définition d’indépendance linéaire, lorsque nous généralisons la notion d’espacevectoriel, ces deux définitions ne sont plus équivalentes.

4.1.4 Équations implicites

Dans les deux sections précédentes, nous nous sommes intéressés au problème dedéterminer pour quelles valeurs une transformation affine s’évalue en un vecteur précis.Cela dit, il ne s’agit pas du seul problème touchant les transformations qu’il est inté-ressant de résoudre. Nous pouvons vouloir déterminer, entre autres, le ou les pointsfixes d’une transformation ainsi que les valeurs pour lesquelles deux transformationssont égales.

Remarque 4.1.23. Il est important de noter que la notion de point fixe n’a de sensque lorsque nous sommes en présence d’une transformation affine entre deux espacesvectoriels isomorphes, c’est-à-dire que leurs dimensions sont égales.

En fait, ces deux problèmes se ramènent au problème de déterminer pour quellesvaleurs une transformation affine s’évalue en un vecteur précis. Ceci est dû au fait que lesespaces vectoriels V sont des groupes abéliens ; c’est-à-dire que les systèmes d’équations

f(v) = v

f(v) = f ′(v)

se réécrivent sous une forme équivalente

f(v)− v = 0

f(v)− f ′(v) = 0

, où f et f ′ sont des transformations affines. Or, il s’avère que f(v)−v et f(v)−f ′(v) sontencore des transformations affines ; ce qui fait que nous sommes en présence de systèmesd’équations affines que nous savons déjà comment résoudre. Toutefois, comme nousl’avons fait dans le cas des équations affines, nous nous donnons la peine de différencierces systèmes.

Page 76: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 4. Algèbre linéaire 69

Définition 4.1.24 (Systèmes d’équations implicites). Soit f : V −→ W et f ′ : V −→W deux transformations (linéaires ou affines) entre deux espaces vectoriels sur un mêmecorps C. Alors, nous appelons système d’équations implicites les systèmes de la forme

f(v) = f ′(v)

où v est un vecteur inconnu de V . En d’autres mots, en résolvant un système d’équa-tions linéaires implicites nous voulons savoir pour quel(s) vecteur(s) de V la fonction fs’évalue en la même valeur que la fonction f ′.

4.2 Modules

Dans cette section, nous nous attardons aux modules qui sont la généralisation desespaces vectoriels, et des concepts qui leur sont associés, à toutes les sous-classes desdemi-anneaux définies de manière équationnelle ou quasi équationnelle. Typiquement,les modules sont définis uniquement pour les anneaux [2, 12, 68] ou les demi-anneaux [25,66]. Cependant, ceci es problématique lorsque nous voulons transposer les conceptsprésents dans les espaces vectoriels à d’autres sous-classes des demi-anneaux que lescorps. Il existe certes certains travaux définissant les modules sur des sous-classes desdemi-anneaux [22, 23, 60] mais ceux-ci ne s’appliquent pas à transposer les notions quenous retrouvons dans les espaces vectoriels.

4.2.1 Modules, indépendance linéaire et bases

Une première généralisation de la notion d’espace vectoriel que nous pouvons faireconcerne les anneaux commutatifs. Dans ce cas, un module est défini exactement commeun espace vectoriel sur un corps [68]. Par contre, si nous sommes en présence d’anneauxen général, nous ne pouvons définir les modules de la même façon. Nous parlons alorsplutôt de module à gauche et de module à droite.

Définition 4.2.1 (Module sur un anneau [2, 12]). Soit A un anneau. Un module àgauche (respectivement module à droite) sur A est un groupe abélien 〈M, +, 0〉 avecune loi de composition externe �g : A ×M −→ M (�d : M × A −→ M) respectant lespropriétés suivantes :

r �g (m+ n) = r �g m+ r �g n(r + s) �g m = r �g m+ s �g m

(rs) �g m = r �g (s �g m)

1 �g m = m

(m+ n) �d r = m �d r + n �d rm �d (r + s) = m �d r +m �d sm �d (sr) = (m �d s) �d rm �d 1 = m

Page 77: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 4. Algèbre linéaire 70

pour tout r, s ∈ A, pour tout m,n ∈M et où 1 est l’élément neutre sous la multiplica-tion dans A. Par abus de notation, nous désignons généralement un module à gauche(respectivement à droite) sur un anneau uniquement par l’ensemble univers M .

Exemple 4.2.2.

1. Tout espace vectoriel est à la fois un module à gauche et un module à droite surle même anneau.

2. Soit A un anneau. Alors, il s’agit à la fois d’un module à gauche et d’un moduleà droite sur lui-même où �g et �d sont la multiplication sur cet anneau.

3. Soit M un module à gauche sur un anneau A. Alors, Mn est un module à gauchesur A lorsque nous définissons les opérations par :

(a1, a2, . . . , an) + (b1, b2, . . . , bn)def= (a1 + b1, a2 + b2, . . . , an + bn)

etr �g (a1, a2, . . . , an)

def= (r �g a1, r �g a2, . . . , r �g an) .

Nous constatons que les définitions de modules à gauche et de modules à droitesur un anneau sont très similaires à la définition d’espace vectoriel. En fait, lorsquenous sommes en présence d’un anneau commutatif, nous n’avons plus besoin de faire ladistinction entre les modules à droite et les modules à gauche, car il s’agit de la mêmechose [2, Exercise 2.1] ce qui fait que nous retombons sur la définition d’un espacevectoriel. De plus, il arrive que nous soyons en présence à la fois d’un module à droiteet d’un module à gauche sur un même anneau. Ceci mène à la définition d’un nouveautype de module.

Définition 4.2.3 (Bimodule sur un anneau [2]). Soit M un module à gauche surl’anneau A1 et un module à droite sur l’anneau A2. Nous dirons que M est un bimodulesi la propriété suivante est respectée :

r �g (m �d s) = (r �g m) �d s

pour tout r ∈ A1, s ∈ A2 et m ∈M .

Voyons maintenant comment la notion de module s’adapte aux demi-anneaux.

Définition 4.2.4 (Module sur un demi-anneau [25, 66]). Soit S un demi-anneau. Unmodule à gauche (respectivement module à droite) sur S est un monoïde commutatif〈M, +, 0〉 avec une loi de composition externe �g : S ×M −→ M (�d : M × S −→ M)

Page 78: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 4. Algèbre linéaire 71

respectant les propriétés suivantes :

r �g (m+ n) = r �g m+ r �g n(r + s) �g m = r �g m+ s �g m

(rs) �g m = r �g (s �g m)

1S �g m = m

0S �g m = 0

r �g 0 = 0

(m+ n) �d r = m �d r + n �d rm �d (r + s) = m �d r +m �d sm �d (sr) = (m �d s) �d rm �d 1S = m

m �d 0S = 0

0 �d r = 0

pour tout r, s ∈ S, pour toutm,n ∈M , où 1S est l’élément neutre sous la multiplicationdans S et où 0S est l’élément neutre sous l’addition dans S. Par abus de notation, nousdésignons généralement un module à gauche (respectivement à droite) sur un demi-anneau uniquement par l’ensemble univers M .

Remarque 4.2.5. La notion de bimodule s’étend naturellement au cas des demi-anneauxen considérant les modules à gauche et à droite sur ceux-ci plutôt que sur les anneaux.

Une fois encore, nous constatons que nous sommes en présence d’une définitionsimilaire aux précédentes. Il est même possible de pousser notre analyse un peu plusloin. En comparant les définitions de modules sur les corps, de modules sur les anneauxet de modules sur les demi-anneaux aux définitions de ces structures algébriques (corps,anneaux, demi-anneaux), nous remarquons que nous préservons, en quelque sorte, lesaxiomes les définissant. Il semble donc y avoir un lien entre la définition des modules surune structure algébrique et la définition de cette dernière. Cela dit, dans la littérature,nous n’avons pas trouvé de définition générale des modules sur une structure algébriquequelconque qui ferait usage de ce lien apparent. En ayant une telle définition, on pourraitdès lors étendre le concept d’espace vectoriel à toutes les sous-classes des demi-anneauxet par le fait même la définition d’équation linéaire dans ces sous-classes. Nous noussommes donc penchés sur ce problème pour en arriver à la définition 4.2.7.

Définition 4.2.6 (Restriction d’un ensemble d’équations). Soit ς un signature et X unensemble dénombrable de variables tel que Tς(X) 6= ∅. Soit Φ un ensemble d’équationsdéfini sur Tς(X). La restriction de l’ensemble d’équations Φ à un sous-ensemble Q deTς(X), noté par Φ|Q, est définie par :

Φ|Qdef= {φ1 = φ2 ∈ Φ | φ1, φ2 ∈ Q} .

Définition 4.2.7 (Généralisation des modules aux sous-classes des demi-anneaux). SoitS une sous-classe des demi-anneaux définie de manière équationnelle ou quasi équation-nelle sur la signature ζ telle que {+, ·, 0, 1} ⊆ ς et soit X un ensemble dénombrable devariables tel que Tς(X) 6= ∅. Considérons maintenant la signature ς1 = {+1, �g, 01, 11}et X ′ un ensemble dénombrable de variables obtenues en primant toutes les variables

Page 79: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 4. Algèbre linéaire 72

de X. De plus, nous définissons la fonction partielle h : Tς(X) −→ Tς∪ς1(X ∪X ′) par :

h(x)def=

h(y) +1 h(z) si x = y + z

y �g h(z) si x = y · z01 si x = 0

x′ si x ∈ Xnon définie sinon .

Nous définissons alors un module à gauche sur S, une sous-classe des demi-anneauxdéfinie de manière équationnelle à l’aide de l’ensemble d’équations Φ, comme étant laclasse M définie par :

M ={A | A est une ς\{·, 1}-algèbre et (∀ϕ ∈ Φ|Tς\{·,1}(X) : A |= ϕ)

}avec une loi de composition externe �l : S×M −→M satisfaisant les équations suivante{

h(ϕ1) = h(ϕ2) | ϕ1 = ϕ2 ∈ ΦTς(X)\Tς\{·,1}(X)

}.

Pour un module à droite, nous remplaçons �g par �d dans la signature ζ1 et h(y · z) =

y �gh(z) devient plutôt h(z ·y) = h(z)�dy. Pour les classes définies de manière quasi équa-tionnelle, la classe M est définie en restreignant chacune des composantes des formulesde Horn et la loi de composition externe en appliquant h à chacune des composantesles formules de Horn.

Exemple 4.2.8. Supposons que nous veuillons définir un module à gauche sur les demi-anneaux idempotents à l’aide de la définition 4.2.7. Les axiomes définissant les demi-anneaux idempotents sont les suivants :

x+ y = y + x x+ 0 = x

x+ (y + z) = (x+ y) + z x(yz) = (xy)z

x(y + z) = xy + xz (x+ y)z = xz + yz

x1 = x 1x = x

0x = 0 x0 = 0

x+ x = x

pour tout x, y, z appartenant à l’ensemble univers de l’algèbre. Donc pour définir lemodule à gauche sur les demi-anneaux idempotents, nous devons commencer par séparerles axiomes en deux groupes : ceux qui font appel à la multiplication ainsi que l’identitésur celle-ci et ceux qui n’y font pas appel. Avec le premier groupe d’axiomes, nousdéfinissons la structure algébrique 〈M, +, 0〉 qui, dans le cas présent, correspond à unmonoïde idempotent. Avec le second groupe d’axiomes, nous obtenons l’ensemble des

Page 80: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 4. Algèbre linéaire 73

équations définissant �g en leur appliquant la fonction h de la façon suivante :

x �g (y �g z′) = h(x(yz)) = h((xy)z) = (xy) �g z′

x �g (y′ + z′) = h(x(y + z)) = h(xy + xz) = x �g y′ +1 x �g z′

(x+ y) �g z′ = h((x+ y)z) = h(xz + yz) = x �g z′ +1 y �g z′

non définie = h(x1) = h(x) = x′

1 �g x′ = h(1x) = h(x) = x′

0 �g x′ = h(0x) = h(0) = 01

x �g 01 = h(x0) = h(0) = 01

où x, y sont des éléments quelconques de l’ensemble univers des demi-anneaux idem-potents et x′, y′, z′ sont des éléments quelconques de M . Nous remarquons que dans lecas où la fonction h n’est pas définie, l’axiome des demi-anneaux idempotents n’a pasd’axiome correspondant dans les modules.

En ayant en main une définition des modules pour toutes les sous-classes des demi-anneaux définies de manière équationnelle ou quasi équationnelle, nous pouvons nousattarder à la généralisation des notions que nous avions définies sur les espaces vectoriels.Nous pourrions croire que toutes notions de base touchant les espaces vectoriels peuventêtre généralisées sans trop se poser de questions, mais il en est tout autrement. Parcontre, pour les notions de combinaison linéaire et de module généré par combinaisonlinéaire, la généralisation se fait naturellement.

Définition 4.2.9 (Combinaison linéaire). Soit m1,m2, . . . ,mn des éléments d’un mo-dule à gauche sur une sous-classe des demi-anneaux ayant comme ensemble univers S,ainsi que r1, r2, . . . , rn, des éléments de S. Alors, nous appelons combinaison linéaire laconstruction

r1 �g m1 + r2 �g m2 + · · ·+ rn �g mn .

Pour un module à droite, nous utilisons plutôt �d tandis que pour un bimodule, nousmultiplions les mi, à gauche, en utilisant �g et, à droite, en utilisant �d.

Définition 4.2.10 (Module généré). SoitM un module à gauche sur une sous-classe desdemi-anneaux ayant comme ensemble univers S et E = {m1,m2, . . . ,mn} un ensemble,potentiellement infini, d’éléments appartenant à M . Alors, le module à gauche générépar E, noté par Gen(E), est l’ensemble de toutes les combinaisons linéaires des élémentsappartenant à E, c’est-à-dire

Gen(E)def= {r1 �g m1 + r2 �g m2 + · · ·+ rn �g mn | ri ∈ S, mi ∈ E} .

Lorsque nous sommes en présence d’un module à droite ou d’un bimodule, nous faisonsplutôt appel à la notion de combinaison linéaire associée à ceux-ci.

Page 81: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 4. Algèbre linéaire 74

Cependant, pour ce qui est de l’indépendance linéaire, il faut être plus nuancé.Comme nous l’avons vu dans la section 4.1.1, définitions 4.1.6 et 4.1.7, l’indépendancelinéaire entre vecteurs peut être définie de deux manières différentes qui sont équivalen-tes. Nous nous attendrions donc à ce que leurs généralisations aux modules demeurentéquivalentes. Toutefois, il n’en est pas ainsi car il arrive qu’un ensemble d’éléments soitlinéairement indépendant selon la généralisation d’une définition tandis qu’il ne l’estpas selon l’autre.

Exemple 4.2.11. Prenons l’anneau R×R où l’addition et la multiplication sont définisterme à terme à l’aide de l’addition et la multiplication dans R, où l’élément neutre del’addition est (0, 0) et où l’élément neutre de la multiplication est (1, 1). Considéronsmaintenant le module à gauche défini par R×{0} sur R×R où �g est la multiplicationdans R×R. Dans ce cas, si nous considérons qu’un ensemble d’éléments d’un moduleest linéairement indépendant si et seulement si

r1 �g m1 + r2 �g m2 + · · ·+ rn �g mn = 0→ r1 = r2 = · · · = rn = 0

alors les ensembles formés d’un seul élément de R× {0} ne sont pas linéairement indé-pendants car

(0, 1)(n, 0) = (0, 0) .

Par contre, si nous considérons plutôt qu’un ensemble d’éléments d’un module est liné-airement indépendant si et seulement si les éléments ne peuvent s’écrire comme unecombinaison linéaire des autres éléments, ces mêmes ensembles singletons sont touslinéairement indépendants.

Dans la littérature concernant les modules sur les anneaux [2, 68], nous définissonsl’indépendance linéaire d’un ensemble E en généralisant la définition 4.1.7, c’est-à-direqu’un ensemble de vecteurs est linéairement indépendant si une combinaison linéaire deceux-ci égale 0 implique que les coefficients sont tous égaux à 0. Cela dit, la généralisa-tion de 4.1.6, c’est-à-dire qu’un vecteur d’un ensemble s’écrit comme une combinaisonlinéaire des autres vecteurs de l’ensemble, aux modules sur les anneaux englobe lagénéralisation de 4.1.7 en raison du théorème 4.2.12. De plus, nous savons que cetteinclusion est stricte en raison de l’exemple précédent 4.2.11.

Théorème 4.2.12. Soit E un ensemble d’éléments d’un module à gauche (respecti-vement, module à droite) sur un anneau. Si E est linéairement indépendant selon lagénéralisation de la définition 4.1.7 alors E est linéairement indépendant selon la gé-néralisation de la définition 4.1.6.

Preuve du théorème 4.2.12 :

Page 82: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 4. Algèbre linéaire 75

Nous allons plutôt montrer la contraposée. Soit E = {m1,m2, . . . ,mn} un ensembled’éléments d’un module à gauche M sur un anneau. Supposons que E soit linéairementdépendant (selon la généralisation de la définition 4.1.6). Dans le cas où mi 6= 0, ilexiste mi, r1, r2, . . . , ri−1, ri+1, . . . , rn tels que

mi = r1 �g m1 + r2 �g m2 + · · ·+ ri−1 �g mi−1 + ri+1 �g mi+1 + · · ·+ rn �g mn .

Comme M est un module sur un anneau, nous pouvons réécrire cette expression sousla forme

0 = r1 �g m1 + r2 �g m2 + · · ·+ ri−1 �g mi−1 −mi + ri+1 �g mi+1 + · · ·+ rn �g mn .

Or, dans ce cas, les ri ne sont pas tous égaux à 0, ce qui fait que les éléments de E nesont pas linéairement indépendants selon la généralisation de la définition 4.1.7. Dansle cas où mi = 0, il existe r1, r2, . . . , ri−1, ri+1, . . . , rn tels que

0 = r1 �g m1 + r2 �g m2 + · · ·+ ri−1 �g mi−1 + rimi + ri+1 �g mi+1 + · · ·+ rn �g mn .

Or, ri peut prendre n’importe quelle valeur ce qui fait que les éléments de E ne sont paslinéairement indépendants selon la généralisation de la définition 4.1.7 Pour les modulesà droite la preuve est symétrique. �

En raison du résultat donné par le théorème 4.2.12, nous allons définir l’indépen-dance linéaire sur les modules en généralisant la définition 4.1.7 même s’il s’agit d’unécart avec ce que nous retrouvons dans la littérature touchant les modules sur lesanneaux.

Définition 4.2.13. Soit E = {m1,m2, . . . ,mn} un ensemble non vide d’éléments ap-partenant à M , un module à gauche sur une sous-classe des demi-anneaux. Alors, pourn ≥ 2, nous dirons que cet ensemble est linéairement dépendant si et seulement s’ilexiste un mi ∈ E pouvant être exprimé par une combinaison linéaire des autres élé-ments appartenant à E, c’est-à-dire

r1 �g m1 + r2 �g m2 + · · ·+ ri−1 �g mi−1 + ri+1 �g mi+1 + · · ·+ rn �g mn = mi .

Dans le cas où n = 1, on dira que E est linéaire dépendant si et seulement si E = {0}.Dans le même ordre d’idée, nous dirons qu’un ensemble d’éléments d’un module est lin-éairement indépendant s’il n’est pas linéairement dépendant. Donc, si E est un singleton,il est automatiquement linéairement indépendant sauf si E = {0}. Les généralisationsde la dépendance linéaire aux modules à droite et bimodules se font en utilisant lanotion de combinaison linéaire associée à ceux-ci.

Avec cette définition d’indépendance linéaire, nous conserverons la propriété quetout module possède une base en accord avec la définition d’une base 4.2.14.

Page 83: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 4. Algèbre linéaire 76

Définition 4.2.14 (Base d’un module). Soit B = {m1,m2, . . . ,mn} un ensemble nonvide d’éléments de M , un module à gauche sur une sous-classe des demi-anneaux. Nousdisons que B forme une base de M s’il génère M et qu’il est linéairement indépendant.Les généralisations de base aux modules à droite et bimodules se font en utilisant lesnotions de combinaison linéaire et de module généré associées à ceux-ci.

Nous parlerons alors de la dimension d’un module comme étant la cardinalité d’unebase de ce dernier en raison du fait que toutes les bases d’un module ont la mêmecardinalité en suivant la même argumentation qui montre que toutes bases d’un espacevectoriel ont la même cardinalité.

4.2.2 Transformations linéaires, équations linéaires explicites etmatrices

Attardons-nous maintenant à la généralisation de la notion de transformation liné-aire dans le but de caractériser les équations linéaires dans n’importe quel module surune sous-classe des demi-anneaux.

Définition 4.2.15 (Transformation linéaire). Soit M et N deux modules à gauche surun même demi-anneau S. Alors, une transformation linéaire est un homomorphismeentre M et N . La définition s’étend aussi naturellement aux modules à droite et auxbimodules.

Ceci nous mène directement à une généralisation de la notion de système d’équationslinéaires.

Définition 4.2.16 (Système d’équations linéaires explicites). Soit h : M −→ N unetransformation linéaire entre deux modules à gauche sur un même demi-anneau S.Alors, un système d’équations linéaires explicites a la forme

h(m) = n

, où n ∈ N et où m est un élément inconnu de M . Un système d’équations linéairesexplicites entre modules à droite et entre bimodules se définit de la même façon enprenant la notion de transformation linéaire qui leur est associée.

À la lumière de la définition 4.2.16, nous remarquons qu’il y a en fait trois types desystèmes d’équations linéaires à traiter, un pour chaque type de module. Cela dit, sans

Page 84: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 4. Algèbre linéaire 77

entrer dans les détails, comme on l’a fait à la section 4.1.2, il est possible de représentertoutes les transformations linéaires entre modules à gauche (respectivement, modulesà droite) sur une sous-classe des demi-anneaux ayant S comme ensemble univers parune transformation linéaire entre Sn et Sm, car selon notre définition d’indépendancelinéaire, tous les modules admettent au moins une base.

Théorème 4.2.17. Soit Lg : Sn −→ Sm une transformation linéaire représentant unetransformation linéaire entre modules à gauche sur une sous-classe des demi-anneauxayant comme ensemble univers S. Alors, il existe une matrice A de taille m × n dontles éléments appartiennent à S telle que

Lg(x) = (xTAT )T .

où l’opérateur T correspond à la transposition d’une matrice. Soit Ld : Sn −→ Sm unetransformation linéaire représentant une transformation linéaire entre modules à droitesur une sous-classe des demi-anneaux ayant comme ensemble univers S. Alors, il existeune matrice A de taille m× n dont les éléments appartiennent à S telle que

Ld(x) = Ax .

Preuve du théorème 4.2.17 :

Nous nous contentons de prouver le théorème pour la transformation linéaire Lg, lapreuve étant symétrique pour Ld.

Soit s ∈ Sn. Alors, s peut être réécrit comme une combinaison linéaire en utilisantla base canonique (voir exemple 4.1.9), c’est-à-dire

s =

s1

s2

...sn

= s1e1 + s2e2 + · · ·+ snen .

Comme Lg est une transformation linéaire, elle préserve les combinaisons linéaires, etdonc

Lg(s) = s1Lg(e1) + s2Lg(e2) + · · ·+ snLg(en) .

Ceci fait que la fonction est uniquement déterminée par les si. En définissant la matriceA de telle sorte que sa ie colonne soit égale à Lg(ei), il est clair que

Lg(s) = (sTAT )T .

Page 85: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 4. Algèbre linéaire 78

Remarque 4.2.18. Nous constatons facilement que les transformations Lg et Ld seconfondent lorsque la multiplication dans S est commutative, car nous aurions alorsque

Ax = (xTAT )T .

Nous pourrions alors être tenté de représenter les transformations linéaires entrebimodules d’une façon semblable. Toutefois, il n’est pas possible d’en faire autant, carpour une base donnée, il se peut qu’il y ait plus d’une façon de représenter un élément dumodule en terme d’une combinaison linéaire. C’est pourquoi nous ne considérerons pasà l’avenir la résolution d’équations linéaires définies par des transformations linéairesentre bimodules.

Exemple 4.2.19. Soit le bimodule formé par une sous-classe S des demi-anneaux sur elle-même. Alors, l’élément neutre sous la multiplication forme une base de ce bimodule.Considérons maintenant l’élément a ·b ·c appartenant à S, où a, b, c ∈ S. Or, en utilisantla base 1, il existe deux façons de représenter cet élément à l’aide d’une combinaisonlinéaire :

a · b · c = a �g 1 �d (b · c)a · b · c = (a · b) �g 1 �d c

En se limitant de la sorte, nous pouvons caractériser les équations linéaires sur unesous-classe d’un demi-anneau de façon plus directe.

Définition 4.2.20 (Système d’équations linéaires explicites (deuxième version)). Unsystème d’équations linéaires explicites sur une sous-classe S des demi-anneaux est uneéquation s’écrivant sous l’une des deux formes suivantes :

(xTAT )T = b

Ax = b

où A est une matrice de taille m×n dont les éléments appartiennent à S, x est vecteurd’inconnues et b est vecteur dont les éléments appartiennent à S.

Pour résoudre ces systèmes d’équations, nous pouvons procéder de la même façonque nous avons fait pour les systèmes d’équations linéaires sur les espaces vectorielsen tirant profit du fait qu’une transformation linéaire peut être exprimée de plusieursfaçons équivalentes en changeant de base. Or, ces transformations équivalentes sontobtenues en multipliant à gauche et à droite les matrices A par des matrices inversibles.

Page 86: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 4. Algèbre linéaire 79

4.2.3 Transformation affines, équations affines explicites et mo-dules affines

Dans les modules sur une sous-classe des demi-anneaux, il est aussi possible degénéraliser le concept de transformation affine.

Définition 4.2.21 (Combinaison affine). Soit

r1 �g m1 + r2 �g m2 + · · ·+ rn �g mn

une combinaison linéaire d’éléments d’un module à gauche sur une sous-classe S d’undemi-anneau. Alors, nous dirons qu’il s’agit d’une combinaison affine si et seulement si

n∑i=1

ri = 1 .

Pour définir une combinaison affine sur les modules à droite et les bimodules, nousutiliserons la notion de combinaison linéaire correspondante.

Définition 4.2.22 (Transformation affine). Soit M et N espaces modules à gauchesur une même sous-classe S d’un demi-anneau, alors une transformation affine est unefonction f : M −→ N qui préserve les combinaisons affines, c’est-à-dire

n∑i=1

ri = 1⇐ f

(n∑i=1

ri �g mi

)=

n∑i=1

ri �g f(mi) .

Pour définir les transformations affines entre modules à droite et entre bimodules, nousutiliserons la notion de combinaison affine correspondante.

Encore une fois, il est évident que les transformations linéaires entre modules sontincluses dans les transformations affines entre modules. Cependant, il n’est pas possiblede caractériser les transformations affines à l’aide des transformations linéaires commenous l’avons fait pour les espaces vectoriels.

Exemple 4.2.23. Dans les espaces vectoriels, nous avons vu au théorème 4.1.19 que lestransformations affines sont obtenues à partir d’une transformation linéaire à laquellenous avons ajouté un vecteur. Dans le cas des modules en général (modules à gauche,module à droite ou bimodules), ce n’est pas le cas. Prenons en particulier le moduleM sur la sous-classe S des demi-anneaux pour laquelle l’opérateur + définit un sup-demi-treillis et ne possède aucun élément compris entre 0 et 1. Alors la transformationf : S −→ S définie par :

f(x)def= axb+ c

, où a, b, c ∈ S, est une transformation affine. Toutefois, axb n’est pas une transformationlinéaire.

Page 87: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 4. Algèbre linéaire 80

De plus, à la différence des espaces vectoriels, il est évident que les systèmes d’é-quations construit à partir d’une transformation affine ne sont plus équivalents auxsystèmes d’équations linéaires explicite.

Définition 4.2.24 (Système d’équations affines explicites). Soit f : M −→ N unetransformation affine entre deux modules à gauche sur une même sous-classe S desdemi-anneaux. Alors un système d’équations affines explicites est

f(v) = u

, où u ∈ N et où v est un élément inconnu de M . En d’autres mots, en résolvant unsystème d’équations affines, nous voulons savoir pour quels éléments de M la fonctionf s’évalue en u. Pour définir les systèmes d’équations affines explicites sur les modules àdroite et les bimodules, nous utilisons la notion de transformation affine correspondante.

Nous pouvons aussi étendre la notion d’espaces affines aux modules.

Définition 4.2.25 (Module affine). Soit M un module à gauche sur une sous-classeS des demi-anneaux. Un module affine N est un sous-ensemble de M qui est clos sousles combinaisons affines. C’est-à-dire que pour n’importe quel sous-ensemble fini de N ,toute combinaison affine de ces éléments appartient aussi à N . Pour définir les modulesaffines sur les modules à droite et les bimodules, nous utilisons la notion de combinaisonaffine correspondante.

Cependant, à la différence des espaces affines et des espaces vectoriels, il n’existepas de lien entre les modules et les modules affines permettant de définir l’un à partirde l’autre. Cela dit, à partir d’un module, il est tout de même possible de construire unmodule affine.

Lemme 4.2.26. Soit M un module à gauche sur une sous-classe S des demi-anneaux.Alors, pour tout sous-module N et tout élément m de M , l’ensemble

m+Ndef= {m+ n | n ∈ N}

forme un module affine.

Preuve du lemme 4.2.26 :

Soit R = {r1, r2, . . . , rk} un ensemble d’éléments appartenant à S tel que

k∑i=1

ri = 1

Page 88: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 4. Algèbre linéaire 81

et A = {m + n1,m + n2, . . . ,m + nk} un sous-ensemble de m + N . Considérons lacombinaison affine

k∑i=1

ri �g (m+ ni) .

∑ki=1 ri �g (m+ ni)

= 〈 Associativité + et distributivité de �g 〉(∑ki=1 ri

)m+

(∑ki=1 ri �g ni

)= 〈

∑ki=1 ri = 1 〉

m+(∑k

i=1 ri �g ni)

= 〈 N est un module à gauche, n =(∑k

i=1 ri �g ni)∈ N 〉

m+ n

Donc l’ensemble m+N est clos sous les combinaisons affines ce qui fait que ce dernierforme un module affine d’après la définition 4.2.25. �

4.2.4 Équations implicites

À la lumière des résultats présentés dans les sections précédentes, il était importantde faire la distinction entre les systèmes d’équations linéaires et les systèmes d’équa-tions affines dans les espaces vectoriels. De la même façon, il est important de faire ladistinction entre les systèmes d’équations linéaires (affines) explicites et les systèmesd’équations linéaires (affines) implicites, car ceux-ci ne sont plus équivalents dans lesmodules en général (voir exemple 4.2.28). Dorénavant, lorsque nous parlerons d’équa-tions linéaires (respectivement affines), nous désignerons à la fois les équations linéairesexplicites et les équations linéaires implicites.

Définition 4.2.27 (Système d’équations implicites). Soit f : M −→ N et f ′ : M −→N deux transformations (linéaires ou affines) entre deux modules à gauche sur une mêmesous-classe S des demi-anneaux. Alors, nous appelons système d’équations implicitestout système de la forme

f(m) = f ′(m)

où m est un vecteur inconnu de M . En d’autres mots, en résolvant un système d’équa-tions linéaires, nous voulons savoir pour quel(s) vecteur(s) de M la fonction f s’évalue

Page 89: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 4. Algèbre linéaire 82

en la même valeur que la fonction f ′. Pour définir les systèmes d’équations implicitessur les modules à droite et les bimodules, nous utilisons la notion de transformationlinéaire ou affine correspondante.

Exemple 4.2.28. Soit M le module à gauche définit sur un demi-anneau idempotentà l’aide de la définition 4.2.7. Alors, nous savons que l’opérateur + définit entre leséléments du module ne possède par d’inverse en vertu du lemme 3.1.5 car + est idem-potent. Donc, nous ne pouvons réécrire les systèmes d’équations implicites définit àl’aide des transformations (linéaire ou affines) f : M −→ M et f ′ : M −→ M donnéssous la forme

f(m) = f ′(m)

sous la forme d’un système d’équations explicites

h(m) = m′ .

Tout ceci illustre bien le fait que lorsque nous généralisons des notions définies surles espaces vectoriels, il faut faire attention à la définition que nous généralisons car,dépendamment de celle que nous choisissons, nous ne nous trouvons pas nécessairementà considérer la même chose.

Page 90: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5

Résolution d’équations

Dans les chapitres précédents, nous avons vu que l’algèbre de Kleene peut êtreutilisée pour raisonner sur les programmes. Par exemple, nous nous en sommes servi afinde prouver l’équivalence entre deux programmes en faisant différentes manipulationsalgébriques [47]. Cela dit, que se passe-t-il lorsque deux programmes ne sont pas équi-valents ? Nous pouvons alors se demander ce qui manque à un programme pour qu’il soitéquivalent à un autre ? Or, il s’avère que cette question peut être abordée en résolvantdes systèmes d’équations en algèbre de Kleene.

En étant capable de résoudre des systèmes d’équations en algèbre de Kleene, nousespérons pouvoir résoudre différents problèmes liés à l’analyse de programmes. Danscette optique, nous nous sommes attardés à la résolution d’équations que nous qualifionsde quasi linéaires dans une sous-classe de l’algèbre de Kleene. Ce chapitre fait donc étatdes différents résultats obtenus et des principaux défis que nous devons surmonter afind’étendre la résolution à d’autres classes d’équations et d’algèbres.

Cela dit, avant de s’attaquer à la résolution d’équations en algèbre de Kleene, voyons,plus en détail, comment celle-ci peut être utile à l’analyse de programmes. Pour ce faire,nous allons présenter deux cas de figures : Le premier touche la vérification de modèlestandis que le second touche la synthèse de contrôleurs.

Vérification de modèles

Un modèle est une représentation abstraite d’un programme informatique qui per-met de raisonner plus facilement sur celui-ci. Pour un même programme, il est possible

Page 91: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 84

de générer plusieurs modèles tout dépendamment de ce que nous voulons étudier à pro-pos du programme. Lorsque nous abstrayons un programme en algèbre de Kleene, nousnous intéressons au flot de contrôle du programme. C’est-à-dire aux actions qui serontfaites dans les différents chemins d’exécutions possibles.

Les trois principales étapes de la vérification de modèles (la génération de modèles,l’encodage du comportement et l’algorithme de vérification) peuvent bénéficier de larésolution d’équations en algèbre de Kleene comme nous allons le voir dans ce qui suit.

Génération de modèles :

Les pointeurs de fonctions peuvent devenir un casse-tête au moment de la géné-ration du modèle d’un programme informatique. En fait, il arrive que nous ne soyonspas en mesure de connaître à l’avance (statiquement) quelles valeurs certains pointeursde fonctions peuvent prendre. À titre d’exemple, considérons la fonction suivante codéeen langage C :

int processFile(char * fileName, int (*function)(FILE *)){FILE * filePtr ;int ret = 0 ;

filePtr = fopen(fileName, "rt") ;ret = (*function)(filePtr) ;fclose(filePtr) ;

return ret ;}

Dans ce cas, si nous ne connaissons pas les valeurs possibles que peut prendre le pointeurde fonction function, nous ne pouvons générer un modèle exact.

Remarque 5.0.1. En représentant un programme en un terme d’une algèbre, il est faciled’abstraire les parties inconnues du code en introduisant des variables dans le modèlealgébrique.

En posant que « d1def= FILE * filePtr ; », « d2

def= int ret = 0 ; »,

« o def= filePtr = fopen(fileName, "rt") ; », « c def

= fclose(filePtr) ; » et que x est unevariable modélisant l’appel à la fonction pointée, le programme ci-dessus se traduit enalgèbre de Kleene par le terme :

d1 · d2 · o · x · c

Page 92: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 85

Remarque 5.0.2. Avec l’approche algébrique, même si le modèle obtenu contient unepartie inconnue, il est tout de même possible de faire une partie de la vérification demodèles.

Supposons que nous veuillons s’assurer que la fonction ouvre un fichier, le lise etle ferme. Une telle propriété se traduit en algèbre par l’expression ∞o∞r∞c∞ où« r def

= fread » tandis que ∞ désigne n’importe quelle séquence d’actions possible (voirchapitre 6 pour de plus amples détails sur la traduction de propriétés en algèbre deKleene). Donc pour que la fonction satisfasse la propriété, il faut que l’inégalité

d1 · d2 · o · x · c ≤ ∞o∞r∞c∞

soit vérifiée. Suite à diverses manipulations algébriques, nous obtenons que cette iné-galité est satisfaite si et seulement si x ≤ ∞r∞. En d’autres mots, ceci nous indiquequ’il reste à déterminer si la fonction qui sera appelée à l’exécution lit dans le fichier,sachant, en outre, par l’inéquation o · x · c ≤ ∞o∞r∞c∞, que le fichier sera ouvert etfermé.

Remarque 5.0.3. En pratique la propriété ∞o∞r∞c∞ ne doit pas être utilisée inté-gralement pour faire de la vérification de modèles. En effet, un programme qui fermele fichier avant de l’ouvrir ou de lire à l’intérieur de celui-ci satisferait cette propriétémême si cela ne devrait pas arriver. Pour pallier à ce problème, il faudrait modifier lapropriété de sorte à spécifier que nous ne pouvons fermer le fichier avant de l’ouvrir oude lire dans ce dernier.

Encodage du comportement :

En introduisant des variables dans l’expression algébrique encodant la propriété àrespecter, il est possible d’exprimer de nouvelles propriétés. Par exemple, la propriétédisant que nous voulons qu’un programme débute et termine par le même bloc d’actionss’écrit :

z∞z

où z est une variable et où ∞ désigne n’importe quelle séquence d’actions possible.

Remarque 5.0.4. En utilisant des systèmes à plusieurs équations et plusieurs inconnues,il est possible de décrire des comportements encore plus complexes.

Supposons que nous veuillons vérifier que le programme P peut se diviser en deuxparties ne partageant pas de code commun, c’est-à-dire n’ayant pas de traces d’exécu-

Page 93: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 86

tions communes, cela se traduirait par le système d’équations suivant :{P ≤ x+ y

x u y = 0

Algorithme de vérification :

Avec l’approche algébrique, l’algorithme de vérification manipule des éléments del’algèbre afin de prouver des théorèmes. Cela implique qu’une fois que nous avons prouvéqu’une exécution possible du programme vérifie l’inégalité, il n’est pas nécessaire dela prouver une seconde fois. En exploitant le fait que certaines parties ont déjà étéprouvées, il semble être possible d’accélérer la vérification de modèles. Par exemple,pour valider l’inégalité

r · q · t+ t · t · r · q · t ≤ ∞r∞

l’algorithme doit, dans un premier temps, prouver que r · q · t ≤ ∞r∞ est valide, ce quiest le cas. Par la suite, il doit prouver que t · t · r · q · t ≤ ∞r∞ est valide. Toutefois,afin de prouver la seconde inégalité, il devra aussi prouver que r · q · t ≤ ∞r∞ ce qui adéjà été fait.

Synthèse de contrôleurs

Dans [47], Kozen a montré comment, en utilisant l’algèbre de Kleene, il est possiblede prouver que deux programmes sont équivalents moyennant l’ajout de l’instruction« bc+bc; » au début des deux programmes en plus de supposer que le test c est construitde sorte qu’il soit commutatif avec le programme p. Ces programmes sont

if b then begin p; q endelse begin p; r end

etp; if c then q else r

où p, q, r sont des programmes et b, c sont des propositions. Ils se traduisent respective-ment, en algèbre de Kleene avec tests, par

(bpq + bpr)

et parp(cq + cr) .

Page 94: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 87

Cela dit, même sans avoir su au préalable qu’il fallait ajouter l’instruction « bc+bc; » audébut des programmes, nous aurions été en mesure de prouver qu’ils sont équivalents.Il suffirait, en fait, de résoudre l’équation

x(bpq + bpr) = xp(cq + cr)

en supposant que x est un test. Cette équation a comme solution x = bc+ bc.

Aussi, lorsque nous faisons de la vérification de modèles, il arrive qu’un programmene satisfasse pas une propriété. Dans ce cas, il faut trouver la façon de modifier leprogramme afin qu’il respecte la propriété. Or, en insérant dans la représentation algé-brique du programme des variables à certains endroits, il est possible de déterminer cequ’il manque à un programme afin qu’il satisfasse la propriété. En fait, en ajoutant desvariables, cela revient à faire de la vérification de modèles de programmes possédantune partie inconnue.

Remarque 5.0.5. L’endroit où nous insérons la variable peut être déterminé par un hu-main, mais il serait d’autant plus intéressant que cela soit fait de manière automatique.

En appliquant l’algorithme de vérification basé sur l’approche algébrique, noussommes en mesure d’identifier des endroits spécifiques qui font que la propriété n’estpas satisfaite. Par exemple, considérons l’inégalité suivante :

r · a+ q · a ≤ q · a

Pour vérifier que celle-ci est valide, nous vérifions que les deux inégalités

r · a ≤ q · a

etq · a ≤ q · a

le sont. Toutefois, en poursuivant la vérification nous nous apercevons que r · a ≤q · a n’est pas valide tandis que q · a ≤ q · a l’est. C’est-à-dire qu’à l’endroit où nousavons séparé l’inégalité principale en deux sous-inégalités, il y a quelque chose qui faitque la propriété ne peut être satisfaite. À partir de cela, nous pouvons, soit informerle programmeur de l’endroit problématique, soit introduire une variable et résoudrel’inéquation dans le but de trouver une modification qui pourrait être apportée auprogramme.

Page 95: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 88

5.1 Résolution d’équations quasi linéaires en algèbrede Kleene

5.1.1 Systèmes d’équations quasi linéaires

Dans l’introduction de ce chapitre, nous avons vu que différents problèmes, issusde l’analyse de programmes, requièrent que nous résolvons différents types d’équations.Parmi celles-ci, notons, entre autres, les trois types d’équations suivants :

1. Les équations où la variable apparaît une seule fois.

d1 · d2 · o · x · c ≤ ∞o∞r∞c∞

2. Les équations où la variable apparaît plusieurs fois en séquence.

P ≤ z∞x

3. Les équations où la variable apparaît des deux côtés du symbole de l’inégalité/é-galité.

x(bpq + bpr) = xp(cq + cr)

À partir de ces quelques exemples de systèmes d’équations, nous nous apercevonsrapidement que certains problèmes semblent être plus difficiles à traiter que d’autres.En fait, il est normal de concevoir que déterminer si un programme débute et terminepar le même bloc d’actions soit plus difficile à faire que de trouver une seule partiemanquante à celui-ci. Nous pourrions alors s’attarder à la résolution d’équations engénéral en faisant appel à la théorie de l’unification [4]. Toutefois, cette approche est enquelque sorte victime de sa généralité dans le sens où trouver la solution d’une équationdevient rapidement très complexe lorsque nous traitons un cas général. De plus, dansla littérature, nous n’avons pas trouvé de travaux portant sur l’unification en algèbrede Kleene ou une structure algébrique similaire. Nous avons donc choisi de délaisser lathéorie de l’unification, à proprement parler, et de nous concentrer sur l’identificationd’une série de règles qui permettraient de résoudre des équations un peu à la manièrede ce qui est fait en algèbre classique.

Un choix s’impose quant au type d’équations que nous désirons résoudre. Il va sansdire que ce choix limite le genre de problèmes que nous serons en mesure de traiteravec la résolution d’équations. Nous pourrions être tenté de choisir le type d’équa-tions à résoudre en fonction de la classe de problèmes que nous souhaitons aborder.Cependant, cette approche n’est pas très souhaitable lorsque nous abordons pour unepremière fois la résolution d’équations en algèbre de Kleene, car nous risquons ainsi de

Page 96: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 89

se buter à des équations très difficiles à résoudre ou qui n’admettent tout simplementpas de solution. Dans ce cas, il est préférable de s’attarder à une classe plus restreinted’équations et moins attrayante du point de vue des applications potentielles à l’analysede programmes, mais qui risque d’être plus faciles à traiter et qui nous permettra dedévelopper un coffre à outils pour la résolution d’équations en algèbre de Kleene.

En se basant sur la résolution d’équations en algèbre classique, nous pourrions êtretenté de se limiter aux équations linéaires, car il s’agit du type d’équations le plus facileà traiter. Toutefois, comme nous l’avons vu dans le chapitre 4, il faut faire attentionlorsque nous généralisons la notion d’équations linéaires. En effet, en algèbre de Kleene,les équations dites linéaires sont d’un intérêt plutôt limité. Les équations affines, quisont plus générales que les équations linéaires, demeurent quant à elles difficiles à carac-tériser sous une forme facilitant leur résolution (c’est-à-dire pas de forme matricielle)dans le cadre d’une algèbre de Kleene, ce qui rend leur résolution d’autant plus com-plexe. Nous allons donc nous restreindre à une autre classe d’équations qui se situeentre les équations linéaires et les équations affines. Nous nommerons cette classe leséquations quasi linéaires. Afin d’introduire ces équations, nous devons, tout d’abord,étendre la notion de module à l’algèbre de Kleene. Pour ce faire, nous pouvons appliquerla définition 4.2.7 (page 71) ou utiliser directement la définition d’un module sur unealgèbre de Kleene, donnée dans [60], qui est équivalente.

Définition 5.1.1 (Module sur une algèbre de Kleene). Un module à gauche (respective-ment module à droite) sur une algèbre de Kleene 〈K, +, ·, ∗, 0, 1〉 est un monoïde com-mutatif et idempotent 〈M, +, 0〉 avec une loi de composition externe �g : K×M −→M

(�d : K ×M −→M) telle que les propriétés suivantes sont respectées :

r �g (m+ n) = r �g m+ r �g n(r + s) �g m = r �g m+ s �g m

(rs) �g m = r �g (s �g m)

1 �g m = m

0 �g m = 0

r �g 0 = 0

m+ r �g n ≤ n → r∗ �g m ≤ n

(m+ n) �d r = m �d r + n �d rm �d (r + s) = m �d r +m �d sm �d (sr) = (m �d s) �d rm �d 1 = m

m �d 0 = 0

0 �d r = 0

m+ n �d n ≤ r → m �d r∗ ≤ n

pour tout r, s ∈ K et pour tout m,n ∈ M . Il est important de noter que l’opérateur+ de l’algèbre de Kleene et celui du module à gauche ne sont pas nécessairement lesmêmes. Nous utilisons le même symbol par abus de notation.

Définition 5.1.2 (Transformations quasi linéaires). Soit h : M −→ N une transfor-mation linéaire entre deux modules à gauche (respectivement modules à droite) sur unealgèbre de Kleene. Alors une transformation quasi linéaire est une fonction f : M −→ N

de la formef(x)

def= h(x) + n

Page 97: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 90

où n ∈ N .

Alors, nous définissons la classe des équations quasi linéaires comme étant celle for-mée des équations quasi linéaires explicites et implicites définies à l’aide des transfor-mations quasi linéaires (voir chapitre 4). Or, comme les transformations quasi linéairessont définies à l’aide des transformations linéaires sur un module, nous pouvons définirplus directement les équations quasi linéaires en algèbre de Kleene.

Définition 5.1.3 (Équations quasi linéaires). Une équation quasi linéaire en algèbrede Kleene s’écrit sous la forme

Ax+ b = Cx+ d

où A et C sont des matrices de taille m×n dont les éléments appartiennent à l’universd’une algèbre de Kleene, x est une matrice d’inconnues de taille n× 1 et b et d sont desvecteurs dont les éléments appartiennent à l’univers d’une algèbre de Kleene.

Les équations quasi linéaires telles que définies en 5.1.3 correspondent en fait auxéquations quasi linéaires que nous obtiendrions en considérant uniquement les transfor-mations quasi linéaires entre modules à droite sur une algèbre de Kleene. Cependant, iln’est pas nécessaire de faire la distinction entre les systèmes d’équations quasi linéairesobtenus par les transformations quasi linéaires entre modules à gauche et entre modulesà droite, car du point de vue de la résolution, si nous savons résoudre l’un, nous savonsrésoudre l’autre.

De plus, nous remarquons que les équations quasi linéaires correspondent aux équa-tions linéaires dans les demi-anneaux idempotents tels que définies dans [5, 18, 26, 27,49, 72]. Dans ces ouvrages, nous nous intéressons aussi à leur résolution dans certains casparticuliers. Dans [18, 26], Cottenceau et Gaubert résolvent uniquement les systèmesd’équations implicites s’écrivant sous la forme

Ax+ b = x

dans des demi-anneaux idempotents complets, ce qui revient à considérer ce genred’équations en algèbre de Kleene [49, 72] car il s’agit D’une sous-classe d’algèbre del’algèbre de Kleene. Toutefois, celles-ci ont une solution triviale puisque les matrices surune algèbre de Kleene forment une algèbre de Kleene (voir théorème 3.2.7). Dans [5, 27],les auteurs considèrent plutôt les demi-anneaux idempotents symétrisés afin de résoudretoutes les équations quasi linéaires et ils fournissent une série de conditions nécessairesà la résolution de ces systèmes d’équations.

Page 98: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 91

Toutefois, au lieu de partir de ces travaux afin de résoudre les équations quasilinéaires, nous allons, dans un premier temps, considérer les équations quasi linéairesdans le cas général. Cela dit, le fait que ces travaux se restreignent ainsi à certainessous-classes des demi-anneaux idempotents pour résoudre des équations nous indiquequ’il est peu probable d’obtenir une méthode de résolution applicable pour l’algèbre deKleene en général.

5.1.2 Résolution d’équations quasi linéaires explicites

Les équations quasi linéaires explicites en algèbre de Kleene étant similaires auxéquations linéaires sur les corps, il est légitime de se demander si nous ne pourrionspas s’inspirer de la résolution de ces dernières afin de résoudre les autres. Dans lasection 4.1.2, nous avons vu que la résolution des équations linéaires sur les corps estrendue possible parce qu’un système d’équations linéaires peut être réécrit sous plusieursformes équivalentes. Suivant le même principe que celui présenté à la section 4.2.2,une équation quasi linéaire explicite en algèbre de Kleene possède plusieurs systèmesd’équations équivalents obtenus en effectuant un changement de base. Pour passer d’unsystème d’équations à l’autre il faut, tout simplement, multiplier le système par desmatrices inversibles. De façon formelle, nous avons que

Ax+ b = b↔MANx+Mb = Mc (5.1)

où M et N sont des matrices inversibles. Alors, pour résoudre ces systèmes d’équationsquasi linéaires à la manière des équations linéaires en algèbre classique, nous devonsidentifier les matrices inversibles en algèbre de Kleene, c’est-à-dire les matrices M pourlesquelles il existe une matriceM−1 telle queMM−1 = M−1M = id où id est la matriceidentité. Toutefois, si nous considérons une algèbre de Kleene quelconque, représentéepar l’algèbre de Kleene libre, nous nous apercevons que les seules matrices inversiblessont les matrices de permutation.

Théorème 5.1.4 (Matrices inversibles en algèbre de Kleene). Soit Mm,n(K) l’ensembledes matrices sur une algèbre de Kleene. Alors, seules les matrices de permutation ontdes inverses.

Preuve du théorème 5.1.4 :

Nous utilisons un résultat provenant du théorème 6.2.2 de [27]. Ce dernier stipuleque dans un demi-anneau positif, c’est-à-dire un demi-anneau pour lequel

a+ b = 0→ a = 0 et b = 0

Page 99: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 92

une matrice carrée A, à coefficients dans ce dernier, est inversible à gauche si et seule-ment si elle est monomiale, c’est-à-dire qu’elle s’écrit sous la forme

A = DP

, où D est une matrice diagonale, c’est-à-dire que seul les éléments sur la diagonalesont non nulles, et P est une matrice de permutation, et que les coefficients de D sontinversibles à gauche. Or, dans l’algèbre de Kleene libre, seul l’élément neutre sous lamultiplication est inversible à gauche. Donc la matrice diagonale D n’a d’autres choixque d’être la matrice identité. Ceci fait que les matrices inversibles à gauche sont lesmatrices de permutation. Toutefois, comme une matrice de permutation à un inversequi est égale à sa transposée, il s’agit aussi d’un inverse à droite. �

Ce résultat implique qu’à moins de considérer une sous-classe particulière de l’algè-bre de Kleene, nous ne serons pas en mesure de résoudre les systèmes d’équations quasilinéaires explicites à la manière des systèmes d’équations linéaires en algèbre classique.Il faut donc chercher une manière différente de résoudre les équations quasi linéaires ex-plicites en algèbre de Kleene. Pour ce faire, nous allons changer notre approche du toutau tout. Au lieu de considérer le problème dans son ensemble, nous allons plutôt consi-dérer des équations particulières afin d’identifier les principaux enjeux auxquels noussommes confrontés. En procédant de la sorte, nous constatons que plusieurs systèmesd’équations quasi linéaires explicites possèdent plus d’une solution.

Exemple 5.1.5.– Le système d’équations quasi linéaires

x+ c = c

possède comme solution l’ensemble de toutes les valeurs inférieures à C.– Le système d’équations quasi linéaires

Ax+ A+ b = A+ b

a au moins x = 1 et x = 0 comme solutions.

Dans le cas où un système d’équations possède une plus petite et une plus grandesolution, il devient facile de caractériser l’ensemble de toutes les solutions. Pour identifierces solutions extrêmes, il suffit de séparer le système d’équations quasi linéaires en deuxsystèmes d’inéquations quasi linéaires explicites tels que :

Ax+ b ≤ c et c ≤ Ax+ b .

En résolvant celui de gauche, nous pouvons obtenir la plus grande solution tandis qu’enrésolvant celui de droite, nous pouvons obtenir la plus petite solution du système d’équa-tions quasi linéaires explicites. Toutefois, dans une algèbre de Kleene, nous ne pouvons

Page 100: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 93

pas toujours trouver les solutions extrêmes nous permettant de caractériser l’ensemblede toutes les solutions.

Lemme 5.1.6. Dans une algèbre de Kleene, un système d’équations quasi linéairesexplicites possédant un nombre fini de solutions possède une solution maximale.

Preuve du lemme 5.1.6 :

Posons queX = {x1, x2, . . . , xn} est un ensemble fini de solutions au système d’équa-tions quasi linéaires explicites

Ax+ b = c .

CommeX est fini, le supremum de cet ensemble existe et est égal à xs = x1+x2+· · ·+xn.Nous allons donc montrer que xs est aussi une solution du système d’équations.

Axs + b

= 〈 xs = x1 + x2 + · · ·+ xn 〉A(x1 + x2 + · · ·+ xn) + b

= 〈 Distributivité de · sur + 〉Ax1 + Ax2 + · · ·+ Axn + b

= 〈 Idempotence de + 〉Ax1 + b+ Ax2 + b+ · · ·+ Axn + b

= 〈 Hypothèse Axi + b = C pour tout 1 ≤ i ≤ n 〉c+ c+ · · ·+ c

= 〈 Idempotence de + 〉c

Remarque 5.1.7. Le lemme 5.1.6 ne dit pas que tout système d’équations quasi linéairesexplicites en algèbre de Kleene possédant une solution en possède nécessairement uneplus grande. En fait, si l’ensemble de solutions est infini, le supremum de cet ensemblen’existe pas nécessairement. Cela dit, si nous sommes dans le cas d’un sup-demi-treilliscomplet alors la plus grande solution existe toujours.

Pour ce qui est de la plus petite solution, il est évident qu’elle n’existe pas engénéral, car, en algèbre de Kleene, la borne inférieure de deux éléments n’existe pasnécessairement. De plus, même si la borne inférieure entre deux solutions existe, ilarrive que cette dernière ne soit pas solution du système d’équations.

Page 101: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 94

Exemple 5.1.8. Considérons l’inéquation suivante

∞r ≤ ∞x

interprété dans le modèle des langages, où r est une lettre de l’alphabet et ∞ estl’ensemble de tous les mots de longueur finie sur l’alphabet. Alors, cette inéquation acomme solution x = r et x = 1. Toutefois, la borne inférieure de ces deux solutions, quiest égale à 0, n’est pas solution de cette inéquation car ∞r 6≤ 0.

Tout ceci fait que nous ne pouvons, dans une algèbre de Kleene, identifier l’ensemblede toutes les solutions possibles d’un système d’équations quasi linéaires explicites entrouvant simplement la plus grande et la plus petite solution. En algèbre classique,il est aussi impossible de borner, en général, l’ensemble des solutions d’un systèmed’équations linéaires. Toutefois, avec un nombre fini de solutions, il est toujours possiblede caractériser l’ensemble de toutes les solutions possibles. Nous voudrions donc savoirs’il est possible d’en faire autant en algèbre de Kleene lorsque nous considérons dessystèmes d’équations quasi linéaires explicites.

Rappelons qu’en algèbre classique, cette propriété est due, en partie, au fait quel’ensemble des solutions d’un système d’équations linéaires forme un espace affine. Enalgèbre de Kleene, nous retrouvons un résultat semblable pour les équations quasi li-néaires explicites.

Lemme 5.1.9. Soit A ∈ Mm,n(K), b et c deux vecteurs de dimension m dont leséléments appartiennent à K. Alors, l’ensemble des solutions du système d’équations

Ax+ b = c

forme un module affine sur K où l’addition dans le module est l’addition matricielle.

Preuve du lemme 5.1.9 :

Soit x1 et x2 deux solutions du système d’équations quasi linéaires explicites

Ax+ b = c .

Alors, une combinaison affine de ces solutions est aussi une solution du système d’équa-tions. Considérons deux éléments r1 et r2 tels que r1+r2 = 1 et montrons que x1r1+x2r2

est une solution. Par monotonie et distributivité de la multiplication nous avons que

Ax1r1 + br1 = cr1 et Ax2r2 + br2 = cr2 .

D’où

Page 102: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 95

Ax1r1 + br1 + Ax2r2 + br2 = cr1 + cr2

↔ 〈 Associativité + et distributivité · sur + 〉A(x1r1 + x2r2) + b(r1 + r2) = c(r1 + r2)

↔ 〈 r1 + r2 = 1 〉A(x1r1 + x2r2) + b = c

Nous avons donc que x1r2 + x2r2 est solution du système d’équations Ax+ b = c, c’est-à-dire qu’une combinaison affine de solutions est aussi solution du système d’équations.

Au chapitre 4, nous avons vu que n’importe quel espace affine est construit à l’aided’un espace vectoriel. Toutefois, dans les modules un tel résultat n’existe pas de sorteque les solutions du système d’équations quasi linéaires explicites ne s’expriment pasen terme des solutions du système d’équations homogènes associé. Malgré tout, si noussommes capable d’identifier une base finie du module affine formé par les solutions, nousserons en mesure de caractériser les solutions des systèmes d’équations quasi linéairesexplicites. Il arrive cependant que, dans certains modèles de l’algèbre de Kleene, lemodule affine engendré par les solutions d’un système d’équations quasi linéaires nepossède pas de base finie.

Exemple 5.1.10. Considérons l’équation

x+ 1 = 1

interprétée dans le modèle de l’algèbre tropicale définie sur Q∗ ou lieu de N(voir [9,section 4.3.4]). Dans ce cas, 1 correspond à l’entier naturel zéro, noté par 0nat, et estl’élément maximal de l’algèbre, l’addition correspond au minimum entre deux élémentsselon l’ordre des rationnels positifs, la multiplication correspond à l’addition de nombrerationnels et où l’étoile de Kleene d’un nombre donne toujours 0nat. L’ensemble dessolutions de cette équation correspond donc à l’ensemble des nombres rationnels positifs.Ceci fait que n’importe quelle combinaison affine d’un nombre fini de solutions estaussi une solution de l’équation. Ceci implique que l’ensemble des solutions forme unespace affine. Or, par définition des nombres rationnels ceux-ci ne peuvent être générésà partir d’un nombre finis de rationnels et des opérations de l’algèbre tropicale. Il estalors impossible de caractériser toutes les solutions de l’équation par un nombre fini desolutions.

Ce dernier résultat est assez lourd de conséquences en ce qui concerne la résolutiond’équations quasi linéaires explicites en algèbre de Kleene. En fait, il dit que nousne pouvons pas toujours exprimer l’ensemble de toutes les solutions d’une équation

Page 103: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 96

quasi linéaire explicite à l’aide d’un nombre fini de solutions. Il est alors pratiquementimpossible de résoudre un système d’équations quasi linéaires explicites en algèbre deKleene dans le sens où nous ne pourrons pas toujours connaître l’ensemble de toutes lessolutions possibles. Au lieu de chercher l’ensemble de toutes les solutions des systèmesd’équations quasi linéaires explicites, il est donc plus réaliste de se limiter à rechercherun sous-ensemble de solutions. Toutefois, en se limitant à un sous-ensemble de solutions,il faut faire un choix entre les solutions que nous jugeons pertinentes et celles qui ne lesont pas.

Dans le cadre de ce travail, nous avons donc choisi de nous limiter à déterminer laplus grande solution d’un système d’équations quasi linéaires explicites. Cette solutionn’existe pas en général, en algèbre de Kleene, comme nous l’avons vu précédemment.Par contre, les cas pour lesquels elle n’existe pas ne sont pas représentatifs de la réalitéobservée en analyse de programmes. Dans ce qui suit, nous nous limiterons donc à larésolution d’équations quasi linéaires explicites dans la classe des treillis d’actions.

Cette dernière classe d’algèbres a été retenue pour deux principales raisons. Lapremière raison vient du fait que la plupart des exemples naturels d’algèbre de Kleeneappartiennent à cette classe tel que mentionné dans [50]. La seconde vient du fait quedans cette algèbre, si un système d’équations quasi linéaires explicites possède unesolution, alors il en possède une plus grande.

Lemme 5.1.11. Soit A ∈ Mm,n(TA), b et c deux vecteurs de dimension m dont leséléments appartiennent à TA. Si le système d’équations quasi linéaires explicites

Ax+ b = c

possède une solution alors il en possède une maximale.

Preuve du lemme 5.1.11 :

Supposons que le système d’équations quasi linéaires explicites possède au moinsune solution. Alors, nous savons que

b ≤ c

puisque x = y ↔ x ≤ y∧x ≥ y et que x+ y ≤ z ↔ x ≤ z∧ y ≤ z. De plus, nous savonsque x est une solution si et seulement si

Ax ≤ c .

Or, dans un treillis d’actions ceci est équivalent à

x ≤ A\c

Page 104: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 97

puisque les matrices forment une algèbre de Kleene résiduée [31]. Donc x = A\c est laplus grande solution car s’il ne s’agissait pas d’une solution, le système d’équations neposséderait pas de solution, ce qui contredirait l’hypothèse de départ. �

Ceci nous donne un moyen direct de déterminer si une équation quasi linéaire ex-plicite dans un treillis d’actions possède au moins une solution. Nous savons que si

x = A\c

est une solution, alors il s’agit de la plus grande solution et que s’il ne s’agit pas d’unesolution alors le système d’équations ne possède pas de solution.

Corollaire 5.1.12. Soit A ∈ Mm,n(TA), b et c deux vecteurs de dimension m dont leséléments appartiennent à TA. Alors, le système d’équations quasi linéaires explicites

Ax+ b = c

a une solution si et seulement si

b ≤ c et c ≤ A(A\c) + b .

Même s’il est facile de déterminer si un système d’équations quasi linéaires explicitespossède ou non une solution dans un treillis d’actions, il demeure difficile de déterminersi ce dernier possède ou non une solution. Le corollaire 5.1.12 nous indique que leproblème de trouver la plus grande solution peut être ramené au problème de déterminersi une inégalité est valide ou non. Or, le problème de déterminer si une inégalité estvalide dans une algèbre n’est généralement pas une chose facile. En algèbre de Kleene,ce problème est PSPACE-complet [54, 45] tandis que pour les treillis d’actions nous nesavons pas encore si c’est décidable ou non [50]. Donc pour être en mesure de déterminersi un système d’équations quasi linéaires explicites possède ou non une solution, il faudrarestreindre en plus la classe d’algèbre considérée de manière à ce qu’il soit possible dedéterminer si une inégalité est valide.

En résumé, la résolution de systèmes d’équations quasi linéaires explicites en al-gèbre de Kleene est pratiquement impossible. Comme nous l’avons vu tout au longde cette section, ceci est principalement dû au fait que les modèles de l’algèbre deKleene peuvent décrire des réalités très différentes. Il faut donc considérer la résolutiond’équations dans différentes sous-classes qui ont des propriétés ayant des modèles auxcomportements similaires.

Page 105: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 98

5.1.3 Résolution d’équations quasi linéaire implicites

Nous allons maintenant nous attarder à la résolution des équations quasi linéairesimplicites en algèbre de Kleene. Comme nous l’avons déjà mentionné, il est impossiblede faire comme en algèbre classique où il est possible de ramener toutes les équationsimplicites en équations explicites, car en algèbre de Kleene les éléments ne possèdentpas d’inverse sous l’addition. Il faut donc trouver une autre approche pour résoudre cegenre d’équations. Alors, au lieu d’aborder le problème dans son ensemble nous allons,encore une fois, le diviser en plusieurs sous-catégories.

Les deux premières sous-catégories que nous présentons permettent de ramener, enquelque sorte, la résolution d’équations quasi linéaires implicites à la résolution d’équa-tions quasi linéaires explicites. Tout d’abord, si nous nous rapportons à la définition5.1.3, nous constatons que les équations quasi linéaires explicites sont incluses dans leséquations quasi linéaires implicites. Il va sans dire que nous n’avons pas besoin de s’at-tarder sur ce genre d’équations, car nous les avons déjà traitées à la section précédente.Ensuite, nous constatons facilement qu’en utilisant la définition de la relation d’ordreen algèbre de Kleene,

x ≤ ydef↔ x+ y = y

il est possible de ramener une équation quasi linéaire implicite en une inégalité où lavariable apparaît seulement d’un seul côté du symbole de l’inégalité. Dans ce cas, nousnous retrouvons en fait à traiter un des types d’inégalités que nous obtenons dans larésolution d’équations quasi linéaires explicites.

Une première sous-catégorie que nous ne pouvons ramener à la résolution d’équationsquasi linéaire explicites nous est donnée par les équations s’écrivant sous la forme

x = Ax+ b . (5.2)

Ces équations admettent au moins une solution triviale puisque les matrices sur unealgèbre de Kleene forment une algèbre de Kleene. La plus petite solution de ce genred’équations est x = A∗b. De plus, lorsque que I ≤ A où I est la matrice identité, nousavons que tous les éléments s’écrivant sous la forme A∗c où b ≤ c sont des solutions decette équation. Dans le cas où I 6≤ A et b 6= 0, il n’est pas si évident de déterminers’il existe plus d’une solution. Toutefois, il est raisonnable de croire qu’alors le systèmed’équations admet une seule solution en raison du théorème d’Arden [3] qui stipule que,pour les langages réguliers, l’équation x = A•x∪b a une solution unique BA∗ si ε 6∈ A etb 6= ∅. Cela dit, nous ne pouvons malheureusement pas généraliser directement la preuvedu théorème d’Arden à l’algèbre de Kleene. Nous nous retrouvons donc encore une foisdans une situation où il est difficile de caractériser l’ensemble de toutes les solutionsd’un système d’équations mais où il est facile de trouver une solution particulière.

Page 106: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 99

Pour ce qui est des autres types d’équations quasi linéaires implicites, nous ne pos-sèdons pas de résultat direct comme c’est le cas pour les équations s’écrivant sous laforme (5.2). Cela dit, il est légitime de se demander s’il est possible d’exploiter le faitque nous sachions trouver la plus petite solution des systèmes d’équations s’écrivantsous la forme (5.2), afin de résoudre les autres systèmes d’équations quasi linéaires.L’idée est donc de créer, à partir d’un système d’équations quasi linéaires implicites,un autre système s’écrivant sous la forme (5.2) et d’utiliser la plus petite solution de cedernier système afin de trouver la plus petite solution du premier.

Considérons, tout d’abord, les systèmes d’équations de la forme

Ax+ b = x+ d . (5.3)

Pour retomber sur une équation de la forme (5.2), il suffit d’arriver à supprimer le termeconstant d. Si les éléments possédaient un inverse sous l’addition, cela serait facile, maisce n’est malheureusement pas le cas. Cela dit, dans certaines algèbres de Kleene, nouspouvons tout de même définir un opérateur qui agit, en quelque sorte, comme un inversesous l’addition. Cet opérateur est noté par − et est défini de la manière suivante :

x− y def=

∑z≤x∧(6∃z′:z′≤z∧z′≤y)

z . (5.4)

En fait, l’opérateur − est l’adjoint inférieur de la correspondance de Galois formée avecl’opérateur +, ce dernier correspondant à l’adjoint supérieur. Du fait qu’il s’agit d’unecorrespondance de Galois découle une série de propriétés élémentaires. Parmi celles-ci,il y a notamment les propriétés

x ≤ y → x− z ≤ y − z (5.5)

(x+ y)− z = (x− z) + (y − z) (5.6)

données respectivement par le corollaire 4.4 et le lemme 4.24 de [1]. À la lumière de cespropriétés, nous remarquons que si une équation de la forme (5.3) a une solution, alors

(Ax− d) + (b− d) = x− d .

S’il était possible de remplacer x − d par une autre variable, disons y, nous serions enmesure de caractériser les équations de la forme donnée par (5.3) qui ont une solution.Toutefois, il n’est pas toujours possible de faire cette substitution, car Ax− d ne peutêtre réécrit sous une forme similaire à A′(x−d). En fait, pour que la substitution puisseêtre faite, il faut que A soit la matrice identité. Or, dans ce cas, le système d’équationspossède toujours au moins la solution b+ d.

Considérons maintenant les systèmes d’équations de la forme

Ax+ b = Cx . (5.7)

Page 107: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 100

Dans ce cas, il faut se départir du terme constant C pour obtenir une équation de laforme donnée par (5.2). Encore une fois, si nous avions un inverse sous la multiplicationpour tous les éléments, cela serait direct. Pour éliminer le terme constant C, il seraitalors tentant de se restreindre aux treillis d’actions comme nous l’avons fait pour leséquations quasi linéaires explicites. Cela dit, cette approche n’est pas plus viable carbien que nous puissions diviser des deux côtés par C en raison de la monotonie desopérateurs de résidus, le résultat de C\C n’est pas toujours égal à 1.

Comme il n’est pas possible de ramener les systèmes d’équations (5.3) ou (5.7) sousla forme (5.2), nous ne pouvons pas réécrire les équations quasi linéaires implicites sousla forme (5.2) afin de les résoudre. Nous allons donc utiliser une approche similaire àcelle que nous avons développée pour résoudre les équations quasi linéaires explicitesafin de résoudre des équations quasi linéaires implicites

Ax+ b = Cx+ d .

Nous commençons par diviser l’égalité en plusieurs inégalités, de sorte à obtenir deuxtypes d’inégalités

b ≤ Cx+ d

etAx ≤ Cx+ d .

Dans le cas de la première inégalité, il s’agit de trouver la solution minimale d’unsystème d’équations quasi linéaires explicites. Or, comme nous le montre l’exemple5.1.8 à la page 94, cette solution minimale n’existe pas toujours. Pour ce qui est dudeuxième type d’inégalité, elle possède toujours la solution triviale x = 0. Toutefois,comme la première inégalité doit être aussi respectée, cela nous permet d’éliminer lasolution triviale ainsi que plusieurs autres solutions.

En fait, à partir de ces deux inégalités, nous pouvons appliquer un algorithme itératifqui calcule une solution de Ax ≤ Cx + d. Malheureusement, cet algorithme ne setermine pas toujours car il se peut qu’il ait besoin d’un nombre infini d’itérations pourtrouver la solution. Cela dit, voici comment l’algorithme fonctionne. Premièrement, ilfaut trouver la plus petite solution (en fait nous pourrions nous contenter d’une solutionquelconque) de b ≤ Cx + d, si elle existe. Nous notons cette dernière par S≤. Par lasuite, nous devons remplacer x par x + S≤ dans le terme à gauche du symbole ≤ dela seconde inégalité, de sorte à obtenir A(x + S≤) ≤ Cx + d. De cette substitutiondécoule l’inégalité AS≤ ≤ Cx+ d qui doit elle aussi être respectée. Nous trouvons alorsla solution minimale de cette inégalité, si elle existe, que nous notons par S ′≤. Enfin,il faut mettre à jour S≤ en posant que S≤

def= S≤ + S ′≤ ; puis nous répétons les étapes

précédentes à partir de l’étape de la substitution. Nous arrêtons lorsqu’un point fixe estatteint, c’est-à-dire lorsque S≤ = S≤ + S ′≤.

Page 108: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 101

Remarque 5.1.13. Bien que l’algorithme présenté ne termine pas tout le temps lorsqu’ily a une solution, il permet, dans plusieurs cas, de discriminer rapidement les équationsn’admettant pas de solution.

5.2 L’algèbre ALG

À la fin de la section 5.1.2, nous avons vu que, dans le cas d’un treillis d’actions,déterminer si une équation quasi linéaire explicite possède une solution revient à vérifiersi une certaine inégalité est valide. Dans cette optique, nous introduisons une sous-classedes treillis d’actions dans laquelle il est relativement facile de déterminer si une inégalitéest valide ou non. Cette classe d’algèbres est définie par les treillis d’actions pour lesquelsles axiomes suivants tiennent :

y\x = 1 x, y ∈ G et x = y (5.8)

y\x = 0 x ∈ G ∪ {0, 1}, y ∈ G et x 6= y (5.9)

z\(y + x) = z\y + z\x x, y ∈ A et z ∈ G (5.10)

z\(y · x) = (z\y) · x x ∈ A et y, z ∈ G (5.11)

où G un ensemble générateur minimal et A est l’ensemble univers de l’algèbre. Par lasuite nous référerons à cette algèbre par ALG. De plus, comme il s’agit d’une structurerésiduée et que 0 est l’élément minimal de l’algèbre, nous savons qu’il existe un élémentmaximal, élément que nous noterons ∞.

Ces axiomes sont basés sur des théorèmes de l’algèbre des langages sur un alphabetΣ (voir section 2.1.1). En fait, cette algèbre offre une axiomatisation intègre et complètede la théorie équationnelle des ensembles réguliers. Le reste de la section est consacré àla preuve de complétude de l’algèbre, à la façon de déterminer si une inégalité est valideou non ainsi qu’à la complexité de calcul de cette dernière. De plus, nous terminonscette section en donnant un exemple de comparaison d’éléments en algèbre de Kleene.

5.2.1 Complétude de l’algèbre

Pour montrer que ALG fournit une axiomatisation complète de la théorie équa-tionnelle de l’algèbre des ensembles réguliers, nous devons faire appel à un résultat decomplétude touchant les algèbres de Kleene résiduées pour lesquelles les axiomes (5.8)à (5.11) tiennent. Nous notons cette algèbre AKR’.

Page 109: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 102

Théorème 5.2.1. Une équation est valide dans l’algèbre de Kleene libre, noté par FΣ,si et seulement si elle est valide dans tous les modèles de AKR’.

Preuve du théorème 5.2.1 :

Ce théorème est une conséquence directe du fait qu’une équation valide de l’algèbrede Kleene libre peut être dérivée des axiomes définissant une algèbre de Kleene et dufait qu’il est possible de définir un opérateur de dérivation sur l’algèbre de Kleene libretel que présenté par Kozen dans [49]. Nous remarquons facilement que la définition del’opérateur de dérivation sur l’algèbre de Kleene libre (définition 3.3.6 à la page 56)correspond en fait aux axiomes (5.8) à (5.11). Par conséquent, nous avons que

x\y = z ↔ Dx(y) = z .

Donc, les identités définissant l’opérateur de dérivation peuvent être vues comme denouveaux axiomes à partir desquels nous pouvons inférer de nouvelles équations. Alors,comme dans chaque modèle de AKR’, ces axiomes tiennent et comme nous retrouvonsces mêmes axiomes dans l’algèbre de Kleene libre, toute équation qui peut être inféréedans cette dernière peut l’être aussi dans ce premier. �

Remarque 5.2.2. Dans l’énoncé du théorème 5.2.1, nous ne parlons pas de l’algèbre librede AKR’ pour désigner l’ensemble des équations valides dans tous les modèles de AKR’car les axiomes (5.8) à (5.11) ne sont pas valides pour tous les éléments de l’algèbre. Orpour pouvoir parler d’algèbre libre, il aurait fallu que les axiomes soient valides pourtous les éléments de l’algèbre.

En d’autres mots, le théorème 5.2.1 dit que l’algèbre de Kleene libre peut être aussivue comme étant « l’algèbre libre » de AKR’ dans le sens où toute équation valide dansl’algèbre de Kleene libre l’est aussi dans AKR’. De plus, ceci signifie que AKR’ est uneaxiomatisation complète de la théorie équationnelle de l’algèbre des ensembles régulierspuisque l’algèbre de Kleene libre est isomorphe à RegΣ.

Puisque dans RegΣ la borne inférieure de deux éléments existe et puisque RegΣ estisomorphe à FΣ, cela implique que la borne inférieure existe aussi dans cette dernière.De plus, rappelons que dans le cas où la borne inférieure existe, les opérateurs de résidusont comme propriété de transformer les bornes supérieures au dénominateur en bornesinférieures, c’est-à-dire que (x + y)\z = x\z u y\z. Il est donc possible de caractériserla borne inférieure à l’aide des résidus dans FΣ. Dans le cas où |Σ| ≥ 2 ceci nous estdonné par l’égalité

x u y = (a+ b)\(ax+ by) (5.12)

avec a, b ∈ Σ et a 6= b. Dans le cas où Σ = {a}, il suffit de remarquer le problème peutêtre ramener au cas où |Σ| = 2. En posant, Σ′ = Σ ∪ {b} tel que a 6= b nous pouvons

Page 110: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 103

définir l’opérateur u comme précédemment. De la sorte, pour tout x, y ∈ FΣ x u y = z

si et seulement si x u y = z lorsque x, y ∈ FΣ′ .

Théorème 5.2.3. Une équation est valide dans l’algèbre de Kleene libre, noté par FΣ,si et seulement si elle est valide dans tous les modèles de ALG.

Preuve du théorème 5.2.3 :

D’après le théorème 5.2.1, nous savons que les axiomes de AKR’ offrent une axio-matisation complète de la théorie équationnelle de l’algèbre des ensembles réguliers. Deplus, comme dans FΣ la borne inférieure est caractérisée par les opérateurs de résidus,la borne inférieure existe dans une algèbre de Kleene résiduée pour laquelle les axiomes(5.8) à (5.11) tiennent. Donc les axiomes de cette algèbre sont eux aussi complets pourl’algèbre des ensembles réguliers. Par conséquent, les axiomes de ALG sont completspour l’algèbre des ensembles réguliers. �

5.2.2 Comparaison d’éléments

Le fait que ALG soit complète par rapport à l’algèbre des langages réguliers signifieque les résultats concernant la dérivation d’expressions régulières [11, 17] et que ceuxconcernant les facteurs [17], dans le contexte des langages réguliers, tiennent dans cettealgèbre. Cela dit, de Moor et al. [20] ont montré comment déterminer si une expressionrégulière est inférieure ou égale à une autre en utilisant la matrice des facteurs [7, 17].Alors, nous pouvons utiliser la procédure développée par de Moor et al. pour déterminersi une inégalité est valide dans ALG. Cependant, la complexité de cette méthode estexponentielle en la taille d’une expression régulière [70] et n’est pas très intuitive. Pources raisons, nous allons présenter une autre méthode permettant de décider si uneinégalité est valide dans ALG.

L’idée consiste à ramener la comparaison de n’importe quels deux éléments à unecomparaison d’un élément avec 1. En utilisant le fait que nous sommes en présence d’unealgèbre résiduée, nous pouvons réécrire x ≤ y en 1 ≤ y/x ou en 1 ≤ x\y. Alors, pourdéterminer si une inégalité est valide, nous procédons en deux étapes. Premièrement,nous calculons le résultat de la division entre deux éléments, c’est-à-dire x\y. Puis nousvérifions si cet élément est supérieur ou égal à 1. Le calcul de la division entre deuxéléments peut être faite de façon directe en appliquant différentes lois de l’algèbre deKleene en raison du fait que l’algèbre ALG est complète pour l’algèbre des ensemblesréguliers et du théorème 5.2 de [11] qui stipule qu’un langage régulier admet un nombrefini de dérivés.

Page 111: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 104

Cependant, le calcul de x\y de façon directe est assez difficile à implanter et cettefaçon de faire revient sensiblement à la technique développée par de Moor et al. [20].Donc, au lieu d’effectuer le calcul de x\y directement, nous allons mettre à profit lefait que l’algèbre ALG est complète par rapport à l’algèbre des ensembles réguliers etque n’importe quel élément de cette dernière peut être représenté sous la forme d’unsystème d’équations. Dans [39, 44], Kozen utilise cette correspondance entre éléments etsystèmes d’équations pour prouver que son axiomatisation est complète pour l’algèbredes ensembles réguliers. Dans ce qui suit, nous allons utiliser une représentation, d’unélément de l’algèbre à l’aide d’un système d’équations, similaire et équivalente à celleque Kozen a employée.

Posons que LinEq désigne l’ensemble de tous les systèmes d’équations de la formedonnée par

x = Ax+ b (5.13)

où A ∈ Mm,m(ALG), b est un vecteur de dimension m dont les éléments appartiennent àALG et x est un vecteur d’inconnues de dimension m. La ie rangée et je colonne d’unematrice A sont respectivement ((AT )i)

T et Aj tandis que ses éléments sont désignéspar ai,j. Le i

e élément d’un vecteur b est quant à lui désigné par bi. Nous définissons0 comme étant une matrice dont les entrées sont l’élément 0 ainsi que 1 comme étantla matrice dont les entrées sont l’élément 1. Soit S def

= x = Ax + b, où x est unematrice de taille n × 1, et S ′ def

= x′ = A′x′ + b′, où x′ est une matrice de taille m × 1,deux systèmes d’équations. Alors, nous définissons la somme, le produit et l’étoile desystèmes d’équations de la façon suivante :

S +E S′ def

= y =

0 ((AT )1)T ((A′T )1)T

0 A 0

0 0 A′

y +

b1 + b′1b

b′

(5.14)

S ·E S ′def= y =

[A b((A′T )1)T

0 A′

]y +

[bb′1b′

](5.15)

S∗Edef= y =

[0 ((AT )1)T

0 b((AT )1)T + A

]y +

[1

b

](5.16)

où y est une nouvelle matrice de variables ayant une taille appropriée. Nous remarquonsque les définitions de ces opérations algébriques ne sont pas sans rappeler les preuves,par construction d’automates, que les ensembles réguliers sont clos sous l’union, laconcaténation et la fermeture transitive (voir section 2.1.2).

L’interprétation d’un élément de l’algèbre de Kleene libre sur un alphabet Σ vers

Page 112: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 105

un système d’équations, SΣ : FΣ −→ LinEq , est définie par :

SΣ(a)def=

x =

[0 a

0 0

]x+

[0

1

]si a ∈ Σ

x = [0]x+ [0] si a = 0

x = [0]x+ [1] si a = 1

(5.17)

et étendue de manière homomorphe sur tous les éléments en utilisant les opérateurs +E,·E et ∗E . Ceci fait que pour chaque élément de FΣ nous pouvons lui associer un élémentde LinEq. En utilisant la correspondance entre notre représentation d’un élément etcelle de Kozen [39, Lemma 15], il est facile de prouver le corollaire 5.2.4.

Corollaire 5.2.4. Soit e un élément de l’algèbre libre de Kleene avec un alphabet Σ.Alors,

e = [ 1 0 . . . 0 ]A∗b

où A et b sont des matrices obtenues en calculant SΣ(e).

Preuve du corollaire 5.2.4 :

La preuve est faite par induction sur la structure d’un élément de l’algèbre de Kleenelibre. Nos hypothèses d’induction sont que

e1 = [ 1 0 . . . 0 ]A∗b

avec SΣ(e1)def= x = Ax+ b et que

e1 = [ 1 0 . . . 0 ]A′∗b′

avec SΣ(e2)def= x′ = A′x′ + b′.

Pour le cas de base e def= 0, par définition de SΣ nous avons facilement que [1][0]∗[0] = 0.

Pour le cas de base e def= 1, par définition de SΣ nous avons facilement que [1][0]∗[1] = 1.

Pour le cas de base e def= a où a ∈ G, d’après la définition de SΣ, il faut prouver que

[ 1 0 ]

[0 a

0 0

]∗ [0

1

]= a. Toutefois, ce résultat est direct puisque

[0 a

0 0

]∗=

[1 a

0 1

].

Page 113: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 106

Pour l’étape d’induction e def= e1 + e2 : par les hypothèses d’induction, la définition de

+E, la définition de ∗ sur les matrices, nous devons prouver que

e1 + e2 = [ 1 0 . . . 0 ]

1 ((AT )1)T ((A′T )1)T

0 A 0

0 0 A′

∗ b1 + b′1

b

b′

.

En calculant le produit nous avons que

[ 1 0 . . . 0 ]

1 ((AT )1)T ((A′T )1)T

0 A 0

0 0 A′

∗ b1 + b′1

b

b′

= 〈 Définition de ∗ (voir page 49) 〉

[ 1 0 . . . 0 ]

1 ((AT )1)TA∗ ((A′T )1)TA′∗

0 A∗ 0

0 0 A′∗

b1 + b′1

b

b′

= 〈 Produit matriciel 〉

((AT )1)TA∗b+ ((A′T )1)TA′∗b′ + b1 + b′1= 〈 Produit matriciel 〉

[ 1 0 . . . 0 ](AA∗b+ A′A′∗b′ + b+ b′)

= 〈 Distributivité de · sur + et commutativité de + 〉[ 1 0 . . . 0 ](AA∗b+ b) + [ 1 0 . . . 0 ](A′A′∗b′ + b′)

= 〈 Définition de ∗ 〉[ 1 0 . . . 0 ]A∗b+ [ 1 0 . . . 0 ]A′∗b′

= 〈 Hypothèses d’induction 〉e1 + e2

Pour l’étape d’induction edef= e1 · e2 : par les hypothèses d’induction, la définition

de ·E et la définition de ∗ sur les matrices, nous devons prouver que

e1 · e2 = [ 1 0 . . . 0 ]

[A b((A′T )1)T

0 A′

]∗ [bb′1b′

].

En calculant le produit nous avons que

[ 1 0 . . . 0 ]

[A b((A′T )1)T

0 A′

]∗ [bb′1,1b′

]= 〈 Définition de ∗ (voir page 49) 〉

Page 114: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 107

[ 1 0 . . . 0 ]

[A∗ A∗b((A′T )1)TA′∗

0 A′∗

][bb′1b′

]= 〈 Produit matriciel 〉

[ 1 0 . . . 0 ](A∗bb′1 + A∗b((A′T )1)TA′∗b′)

= 〈 Distribitivité de · sur + 〉[ 1 0 . . . 0 ]A∗b(b′1 + ((A′T )1)TA′∗b′)

= 〈 Produit matriciel 〉[ 1 0 . . . 0 ]A∗b[ 1 0 . . . 0 ](b′ + A′A′∗b′)

= 〈 Définition de ∗ 〉[ 1 0 . . . 0 ]A∗b · [ 1 0 . . . 0 ]A′∗b′

= 〈 Hypothèses d’induction 〉e1 · e2

Pour l’étape d’induction e def= e∗1, par les hypothèses d’induction, la définition de ∗E

et la définition de ∗ sur les matrices, nous devons prouver que

e∗1 = [ 1 0 . . . 0 ]

[0 ((AT )1)T

0 b((AT )1)T + A

]∗ [1

b

].

En calculant le produit nous avons que

[ 1 0 . . . 0 ]

[0 ((AT )1)T

0 b((AT )1)T + A

]∗ [1

b

]= 〈 Définition de ∗ (voir page 49) et loi de désimbrication 5.28 〉

[ 1 0 . . . 0 ]

[1 ((AT )1)TA∗

(b((AT )1)TA∗

)∗0 A∗

(b((AT )1)TA∗

)∗ ][1

b

]= 〈 Produit matriciel 〉

1 + ((AT )1)TA∗(b((AT )1)TA∗)∗b

= 〈 (xy)∗x = x(yx)∗ 〉1 + ((AT )1)TA∗b(((AT )1)TA∗b)∗

= 〈 Produit matriciel 〉1 + [ 1 0 . . . 0 ]AA∗b([ 1 0 . . . 0 ]AA∗b)∗

= 〈 Définition de ∗ 〉([ 1 0 . . . 0 ]AA∗b)∗

= 〈 b1 = 0 ou b1 = 1 〉(b1)∗([ 1 0 . . . 0 ]AA∗b(b1)∗)∗

= 〈 Loi de désimbrication 5.28, page 118 〉(b1 + [ 1 0 . . . 0 ]AA∗b)∗

Page 115: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 108

= 〈 Produit matriciel 〉([ 1 0 . . . 0 ](b+ AA∗b))∗

= 〈 Définition de ∗ 〉([ 1 0 . . . 0 ]A∗b)∗

= 〈 Hypothèses d’induction 〉e∗1

Alors, au lieu de raisonner en algèbre de Kleene, il est possible de raisonner avec lessystèmes d’équations représentant un élément de l’algèbre. Or, il s’avère qu’il est aussipossible de ramener le raisonnement dans ALG à un raisonnement avec les systèmesd’équations. Pour ce faire, nous définissons de nouveaux opérateurs sur les systèmesd’équations de telle sorte que nous puissions étendre le corollaire 5.2.4 à chaque élémentde l’algèbre ALG. En fait, les définitions des nouveaux opérateurs \E, /E et uE sontobtenues à partir des étapes d’induction de la preuve (par induction sur la structure)du corollaire 5.2.4 lorsque nous étendons ce dernier à tous les éléments de ALG. Noshypothèses d’induction sont que SΣ(e1)

def= x = Ax+b, où x est un vecteur de dimension

n, et que SΣ(e2)def= y = Cy + d, où y est un vecteur de dimension m, telles que

e1 = [ 1 0 . . . 0 ]A∗B et que e2 = [ 1 0 . . . 0 ]C∗D.

À partir de nos hypothèses d’induction, nous savons que SΣ(e1) est une représen-tation de e1 sous la forme d’un système d’équations. Plus précisément, sachant quee1 = [ 1 0 . . . 0 ]A∗b, il est équivalent de dire que e1 est associé à la première lignede x, c’est-à-dire que x1 = e1. La même chose se produit pour e2, c’est-à-dire quey1 = e2. Alors, au lieu de considérer les définitions explicites de e1 et e2, nous pou-vons considérer leurs définition implicites, c’est-à-dire x1 et y1 respectivement. Celles-cinous sont données par les systèmes d’équations SΣ(e1) et SΣ(e2). Formellement, cesdéfinitions implicites sont x1 = ((AT )1)Tx+ b1 et y1 = ((CT )1)TX + d1.

Considérons, maintenant, l’étape d’induction e def= e1ue2 : en utilisant les définitions

implicites de e1 et e2 pour calculer e1 u e2, nous avons que :

x1 u y1 = (((AT )1)Tx+ b1) u (((CT )1)Ty + d1) . (5.18)

De plus, les lois

(x+ y) u z = (x u z) + (y u z) (5.19)

(ax u y) = a(x u a\y) (5.20)

Page 116: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 109

, où a ∈ G, sont valides des ALG en raison du théorème 5.2.3 et du fait que celles-cisont des théorèmes dans RegG. À partir de celles-ci, il est facile de montrer que

1 u

(∑x∈S

x

)y = 0 (5.21)(∑

x∈S

x

)y u

(∑x′∈S′

x′

)y′ =

((∑x∈S

x

)u

(∑x′∈S′

x′

))(y u y′) (5.22)

lorsque S ⊆ G et S ′ ⊆ G. Aussi, par construction en utilisant SΣ, les entrées des matricesA,C sont soit 0 ou

∑a∈S a avec S ⊆ G et les entrées de B,D sont soit 0 ou 1. Ceci nous

permet de développer la partie de droite de 5.18.

x1 u y1

= 〈 Définition implicite de x1 et y1 〉(((AT )1)Tx+ b1) u (((CT )1)Ty + d1)

= 〈 Produit matriciel 〉(∑n

i=1 a1,ixi + b1) u (((CT )1)Ty + d1)

= 〈 Loi (5.19) 〉∑mi=1

(a1,ixi u (((CT )1)Ty + d1)

)+ (b1 u (((CT )1)Ty + d1))

= 〈 Loi (5.19) 〉∑mi=1

((a1,ixi u ((CT )1)Ty) + (a1,jxj u d1)

)+ (b1 u ((CT )1)Ty) + (b1 u d1)

= 〈 d1 = 0 ou d1 = 1 et la loi (5.21) 〉∑mi=1(a1,ixi u ((CT )1)Ty) + (b1 u ((CT )1)Ty) + (b1 u d1)

= 〈 Produit matriciel 〉∑mi=1(a1,ixi u ((CT )1)Ty) + (b1 u

∑nj=1C1,jyj) + (b1 u d1)

= 〈 Loi (5.19) 〉∑mi=1(a1,ixi u ((CT )1)Ty) +

∑nj=1(C1,jyj u b1) + (b1 u d1)

= 〈 b1 = 0 ou b1 = 1 et la loi (5.21) 〉∑mi=1(a1,ixi u ((CT )1)Ty) + (b1 u d1)

= 〈 Produit matriciel 〉∑mi=1

(a1,ixi u

(∑nj=1C1,jyj

))+ (b1 u d1)

= 〈 Loi (5.19) et commutativité du + 〉∑nj=1

∑mi=1(a1,ixi u c1,jyj) + (b1 u d1)

= 〈 Loi (5.22) 〉∑nj=1

∑ni=1(a1,i u c1,j)(xi u yj) + (b1 u d1)

Réécrit sous forme matricielle nous avons

Page 117: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 110

x1 u y1

= 〈 Dérivation précédente 〉∑nj=1

∑ni=1(a1,i u c1,j)(xi u yj) + (b1 u d1)

= 〈 Notation matricielle 〉

[a1,1 u c1,1 . . . a1,m u c1,1 . . . a1,1 u c1,n . . . a1,m u c1,n

]

x1 u y1

...xm u y1

...x1 u yn

...xm u yn

+b1ud1

Cela dit, nous devons encore calculer xi u yj pour tout 1 ≤ i ≤ n et pour tout1 ≤ j ≤ m. Pour ce faire, nous appliquons la même méthode que nous avons utiliséepour calculer x1 u y1. C’est-à-dire que nous utilisons la définition implicite de xi etde yj et développons les termes résultants. En exprimant les termes résultants sousforme matricielle comme nous l’avons fait ci-dessus, nous nous apercevons que noussommes en présence d’un système d’équations de la forme z = Ez + f où les xi u yjcorrespondent à des entrés du vecteur d’inconnues z. De plus, comme la première lignede ce système d’équations correspond à la définition implicite de x1 u y1, nous avonsque e1 u e2 =

[1 0 . . . 0

]E∗f . Nous pouvons alors définir la borne inférieure de

deux systèmes d’équations de la façon suivante :

S uE S ′def= z = (A× C)z + b× d (5.23)

où × est défini sur les matrices par

E × E ′ def=

E × e′1,1 E × e′1,2 . . . E × e′1,n′E × e′2,1 E × e′2,2 . . . E × e′2,n′

...... . . . ...

E × e′m′,1 E × e′m′,2 . . . E × e′m′,n′

pour E ∈ Mm,n(ALG) et E ′ ∈ Mm′,n′(ALG) et par

E × e def=

e1,1 u e e1,2 u e . . . e1,n u ee2,1 u e e2,2 u e . . . e2,n u e

...... . . . ...

em,1 u e em,2 u e . . . em,n u e

pour E ∈ Mm,n(ALG) et e ∈ ALG.

Page 118: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 111

Pour l’étape d’induction e def= e1\e2 , en utilisant les définitions implicites de e1 et

e2 pour calculer e1\e2, nous avons que :

x1\y1

= 〈 Définition de x1 〉(((AT )1)Tx+ b1)\y1

= 〈 Produit matriciel 〉(∑m

i=1 a1,ixi + b1) \y1

= 〈 Lois des structures résiduées 3.3.3 〉dmi=1 xi\(a1,i\y1) u b1\y1 .

Comme, par construction en utilisant SΣ, les entrées de la matrice A sont soit 0

ou∑

a∈S a avec S ⊆ G, deux cas sont possibles pour le calcul de a1,i\y1 pour tout1 ≤ i ≤ m. Dans le cas où a1,i = 0, nous avons que xi\(a1,i\y1) =∞. Or, comme∞ estl’élément maximal dans ALG, il agit comme élément neutre pour la borne inférieure.Ceci fait que nous pouvons ne pas calculer ces cas. Formellement, c’est-à-dire que

x1\y1 =l

i∈I1

xi\(a1,i\y1) u b1\y1

où I1 = {i | 1 ≤ i ≤ n ∧ a1,i 6= 0}. Dans le cas où a1,i =∑

a∈Sia avec Si ⊆ G pour tout

i ∈ I1, nous avons que

xi\(a1,i\y1)

= 〈 a1,i =∑

a∈Sia 〉

xi\(∑

a∈Sia\y1)

= 〈 Lois des structures résiduées 3.3.3 〉xi\

da∈Si

(a\y1)

= 〈 Lois des structures résiduées 3.3.3 〉da∈Si

xi\(a\y1) .

Donc

x1\y1 =l

i∈I1

(l

a∈Si

xi\(a\y1)

)u b1\y1 .

Il reste alors à calculer a\y1. Pour ce faire, nous remplaçons y1 par sa définition implicitede sorte à obtenir

Page 119: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 112

a\y1

= 〈 Définition implicite de y1 〉a\(∑n

j=1 c1,jyj + d1

)= 〈 Loi 5.10 〉∑n

j=1 a\(c1,jyj)a\d1

= 〈 Par construction c1,j = 0 ou c1,j =∑

a∈S a avec S ⊆ G et loi 5.11 〉∑mj=1(a\c1,j)yj + a\d1 .

Une fois encore, par construction en utilisant SΣ, les entrées de la matrice C sont soit 0

ou∑

a∈S a avec S ⊆ G. Ceci fait que a\c1,i est égal soit à 0 ou à 1. De plus, nous avonsque les entrées de d sont soit 0 ou 1 de sorte que a\d1 = 0. Donc

a\y1 =n∑

j∈J1,a

yj .

où J1,a = {j | 1 ≤ j ≤ n ∧ a ≤ c1,j}. Nous avons alors que

x1\y1 =l

i∈I1

l

a∈Si

xi\

∑j∈J1,a

yj

u b1\y1 . (5.24)

Cela dit, nous devons encore calculer xi\(∑

j∈J1,ayj

)pour tout i ∈ I1 et calculer b1\y1.

Dans le dernier cas, c’est direct puisque b1 égale soit 0 ou 1 donc b1\y1 égale ∞ ou y1.Dans le premier cas, nous appliquons la même méthode que nous avons utilisée pourcalculer x1\y1. C’est-à-dire que nous utilisons les définitions implicites de xi et des yjpuis développons les termes résultants de sorte à obtenir une équation de la forme

xi\

∑j∈J1,a

yj

=l

i′∈Ii,a∈Si′

xi′\ ∑j′∈Ji,a

yj′

u bi\ ∑j′∈Ji,a

yj′

. (5.25)

Une fois ceci fait, il se peut qu’il faille calculer d’autres termes de la formexi\(∑

j∈J1,ayj

). En fait, nous devons continuer à développer chacun de ces termes

jusqu’à ce qu’ils soient tous définis.

Pour simplifier la notation, nous allons dorénavant désigner les termes que nousavons développés précédemment et ayant la forme xi′\

(∑j∈J ′ yj

)par les variables W1

à Wk et les termes de la forme bi′\(∑

j∈J ′i′,ayj

)par M1 à Mk. De la sorte, l’équation

5.25 s’écrit sous la formeWn =

l

l∈Ln

Wl uMn ,

Page 120: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 113

où Ln ⊆ {i : 1 ≤ i ≤ k}. En réécrivant toutes les égalités ayant la forme donnéeen 5.25 de cette façon, nous nous retrouvons en présence d’un système d’équationsoù la première équation de ce système correspond au calcul de x1\y1 donnée en 5.24,c’est-à-dire

W1 =dl∈L1

Wl uM1

W2 =dl∈L2

Wl uM2

...Wn =

dl∈Ln

Wl uMn

...Wk =

dl∈Lk

Wl uMk .

Donc pour trouver la valeur de x1\y1, il faut résoudre ce système d’équations de sorteà trouver la valeur de W1. Pour ce faire, nous appliquons l’algorithme suivant :

1. Identifer les variables Wn pour lesquelles n ∈ Ln, c’est-à-dire que l’équation défi-nissant Wn peut s’écrire sous la forme

Wn = Wn ul

l∈L1\{n}

Wl uMn .

2. Remplacer les équations définissant les Wn identifiés à l’étape précédente par

Wn =l

l∈L1\{n}

Wl uMn

de sorte à éliminer la récursion de premier niveau entre les variables.

3. Dans la définition de W1, sélectionner une variable disons Wl′ . Remplacer cettevariable par sa définition partout dans le système d’équations. En d’autres mots,supprimer toutes les occurrences de cette variable. C’est-à-dire que l’équation W1

deviendra

W1 =

l

l∈L1\{1,l′}

Wl uM1

u l

l∈Ll′\{l′}

Wl uMl′

4. Répéter les étapes 1 à 3 jusqu’à ce qu’il n’y ait plus de variables Wi dans la défi-

nition de W1 et retourner ce résultat. C’est-à-dire que W1 aura la forme suivante

W1 =l

n∈N

Mn .

Théorème 5.2.5. L’algorithme de résolution termine et la solution est le résultat dex1\y1. De plus cette solution est de la forme

x1\y1 =l

i∈K

∑j∈Ji

yj (5.26)

Page 121: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 114

Preuve du théorème 5.2.5 :

Il est clair que l’algorithme termine car à chaque itération, nous éliminons les ré-cursions de premier niveau pour ensuite éliminer une variable en la remplaçant par sadéfinition. Or, comme il y a un nombre fini de variables, l’algorithme termine. Pourmontrer que la solution trouvée est égale à x1\y1, il faut prouver que l’étape où nouséliminons la récursion est correcte. À l’étape 2, nous remplacions les variables de laforme

Wn = Wn ul

l∈L1\{n}

Wl uMn

parWn =

l

l∈L1\{n}

Wl uMn .

D’après la définition de u, nous savons que

Wn = Wn ul

l∈L1\{n}

Wl uMn

est équivalent àWn ≤

l

l∈L1\{n}

Wl uMn .

Donc Wn peut être égale à n’importe quelle valeur inférieure àdl∈L1\{n}Wl u Mn.

Toutefois, nous savons que x1\y1 est la plus grande valeur que peut prendre z tel quex1 · z ≤ y1. Alors, si nous posions que Wn est égale à une valeur strictement inférieureà

dl∈L1\{n}Wl uMn, il existerait un z plus grand que x1\y1 tel que x1 · z ≤ y1 ce qui

est une contradiction. Donc l’algorithme termine et donne le bon résultat pour x1\y1.C’est-à-dire que

W1 =l

n∈N

Mn .

Toutefois, précédemment, nous avons défini les Mn comme étant les termes de la formebi′\

(∑j∈J ′

i′,ayj

). Or, comme par construction bi′ ne peut prendre que les valeurs 0 et

1, le résultat de cette division est soit ∞ où(∑

j∈J ′i′,ayj

). Ce qui fait que

x1\y1 =l

i∈K

∑j∈Ji

yj

puisque ∞ est l’élément neutre de u. �

Pour simplifier la partie de droite de l’égalité donnée en 5.26, nous utilisons alorsle fait que les yj correspondent à une définition implicite d’un élément de l’algèbre.Or, à partir du système d’équations exprimant e2, obtenu en calculant SΣ(e2), il estfacile d’obtenir les systèmes d’équations correspondant aux yj. Il suffit d’interchanger

Page 122: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 115

la première et la je rangée de C et de d ainsi que d’interchanger la première et la

je colonne de C. En ayant ces systèmes d’équations, il est possible de calculer à quoicorrespondent les définitions implicites des yj en utilisant le corollaire 5.2.4. Il reste alorsà calculer la borne inférieure d’une série d’éléments de l’algèbre. Pour ce faire, nousfaisons de nouveau appel à SΣ qui est correctement définie pour les bornes inférieureset les bornes supérieures. Le système d’équations résultant sera donc égal à SΣ(e1\e2),c’est-à-dire que

S\ES ′def= x1\y1 .

Pour l’étape d’induction e def= e2/e1 : nous commençons par définir le renversé, noté

eR, d’un élément e comme suit :

eR =

e′ Si e = e′R

eR1 + eR2 Si e = e1 + e2

eR2 · eR1 Si e = e1 · e2 .

Il n’est pas difficile de se convaincre que cet opérateur est bien défini. En effet, commel’algèbre ALG est complète pour l’algèbre des ensemble réguliers et que le renversé estbien défini dans cette algèbre, il suffit de montrer que RG(eR) = RG(e)

R. Or, ceci estdirect en utilisant la définition du renversé dans l’algèbre des ensembles réguliers ; ils’agit des mots lus de droite à gauche. Nous pouvons donc appliquer le théorème 5.2.6pour calculer e2/e1.

Théorème 5.2.6.e2/e1 = (eR1 \eR2 )R

Avant de prouver le théorème 5.2.6, nous devons prouver que l’opérateur que

x ≤ y ↔ xR ≤ yR . (5.27)

Commençons par montrer l’implication x ≤ y → xR ≤ yR :

xR ≤ yR

↔ 〈 x ≤ y ↔ x+ y = y 〉xR + yR = yR

↔ 〈 Hypothèse x ≤ y 〉xR + (x+ y)R = (x+ y)R

↔ 〈 (x+ y)R = xR + yR et x+ x = x 〉xR + yR = xR + yR

Page 123: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 116

Montrons maintenant l’implication xR ≤ yR → x ≤ y :

xR ≤ yR

→ 〈 x ≤ y → xR ≤ yR 〉(xR)R ≤ (yR)R

↔ 〈 (xR)R = x 〉x ≤ y

Preuve du théorème 5.2.6 :

z ≤ e2/e1

↔ 〈 Définition de / 〉z · e1 ≤ e2

↔ 〈 Loi (5.27) 〉(z · e1)R ≤ eR2

↔ 〈 (x · y)R = yR · xR 〉eR1 · zR ≤ eR2

↔ 〈 Définition de \ 〉zR ≤ eR1 \eR2

↔ 〈 Loi (5.27) et (eR)R = e 〉z ≤ (eR1 \eR2 )R

L’opérateur /E est donc défini à l’aide des opérateurs \E et R.

Corollaire 5.2.7. Soit e un élément de l’algèbre ALG. Alors, nous avons que

e = [ 1 0 . . . 0 ]A∗B

où A et B sont des matrices obtenues en calculant SΣ(e).

Preuve du corollaire 5.2.7 :

Page 124: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 117

Il s’agit d’une conséquence directe du corollaire 5.2.4 et des définitions des opérateurs/E, \E et uE. �

Par le corollaire 5.2.7, nous savons que pour tout x, y ∈ ALG

x ≤ y

↔1 ≤ x\y

↔SΣ(1) ≤ SΣ(x\y) .

Nous devons donc déterminer si le résultat de SΣ(x\y) est supérieur ou égal à 1. Pource faire, il suffit de vérifier si le premier élément du vecteur obtenu en calculant SΣ(x\y)

est 1. Intuitivement, cela s’explique par le fait qu’un automate fini accepte le mot videsi et seulement son état initial est aussi final. Or, les systèmes d’équations représententun automate fini où l’état défini par la première ligne de la matrice A et du vecteur bcorrespond à l’état initial. De plus, une entrée non nulle dans b nous indique que l’étatest aussi final.

5.2.3 Complexité de la méthode

Faisons une petite parenthèse sur la complexité de calcul de la méthode utilisée pourfaire la comparaison entre deux éléments de ALG.

En raison du résultat de complétude de l’algèbre, l’algorithme permettant de com-parer des éléments dans ALG nous permet aussi de décider de la théorie équationnelle del’algèbre de Kleene. Or, nous savons que décider de la théorie équationnelle de l’algèbrede Kleene est un problème PSPACE-complet [45, 54]. Ceci fait qu’il serait étonnant quenotre algorithme soit polynomial, car nous aurions alors que P = NP = PSPACE.

Sans faire une étude exhaustive de notre approche, il est possible de dire qu’en pirecas, l’algorithme qui détermine si

e1 ≤ e2

est au moins exponentiel dans la taille du système d’équations représentant e2 multipliéepar la taille du système d’équations représentant e1. C’est-à-dire O(|e1| · 2|e2|), où |e1|et |e2| sont respectivement la taille des systèmes d’équations représentant e1 et e2,c’est-à-dire le nombre d’équations formant ces systèmes. De plus, l’algorithme demeuredans PSPACE. Ces résultats nous sont donnés par la procédure qu’il faut appliquerpour calculer le résidu de e2 par e1. En effet, lorsque nous construisons le système

Page 125: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 118

d’équations, nous devons calculer plusieurs résidus ayant au dénominateur un xi et aunumérateur une somme de yj (voir page 112). Or, il se peut que nous ayons à calculerle résidu pour toutes les combinaisons possibles de numérateurs et de dénominateurs.Il y a autant de xi que d’équations dans le système d’équations représentant e1 et il y a2n numérateurs où n désigne le nombre de yj, c’est-à-dire le nombre d’équations dansle système d’équations représentant e2.

À titre comparatif, la méthode développée par Oege de Moor et al. [20] n’est pasplus performante. Dans [70], nous retrouvons une étude exhaustive de la complexité dela méthode proposée. Nous y apprenons que leur méthode est au moins O(C4 · N) oùC est le nombre de facteurs de e2, qui est exponentiel en pire cas, et où N est la tailledu programme e1.

5.2.4 Exemple de comparaison

Comme les axiomes définissant ALG correspondent à des lois de l’algèbre libre deKleene, il est possible d’utiliser la méthode présentée à la section précédente afin devérifier si une égalité appartient à la théorie équationnelle de l’algèbre de Kleene. Nousallons donc prouver la règle de désimbrication

(x+ y)∗ = x∗(yx∗)∗ (5.28)

en utilisant l’approche développée pour comparer des éléments dans ALG. Nous devonstout d’abord séparer l’égalité en deux inégalités. Ici G correspond à {x, y}.

Considérons, tout d’abord, l’inégalité (x+ y)∗ ≤ x∗(yx∗)∗. Nous allons montrer quecette inégalité est valide. Nous commençons par diviser le terme de droite par celuide gauche de sorte à obtenir l’inégalité équivalente 1 ≤ (x + y)∗\x∗(yx∗)∗. Puis nousappliquons SΣ à l’élément de droite, c’est-à-dire

SΣ((x+ y)∗\x∗(yx∗)∗) = (SΣ(x) +E SΣ(y))∗E\E(SΣ(x)∗E ·E (SΣ(y) ·E SΣ(x)∗E )∗E ) .

Comme x, y ∈ Σ, nous pouvons calculer directement SΣ(x) et SΣ(y),

SΣ(x)def= v =

[0 x

0 0

]v +

[0

1

], SΣ(y)

def= w =

[0 y

0 0

]w +

[0

1

].

Avant de calculer (SΣ(x)+ESΣ(y))∗E et (SΣ(x)∗E ·E (SΣ(y)·ESΣ(x)∗E )∗E ), nous allonsintroduire des opérations permettant de simplifier les systèmes d’équations obtenus.

Page 126: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 119

Lemme 5.2.8. Soit v = Av+ b un système d’équations correspondant à un élément deALG et P une matrice de permutation. Alors,[

1 0 . . . 0]A∗b =

[1 0 . . . 0

](P ′AP ′T )∗P ′b

où P ′ =

[1 0

0 P

]. C’est-à-dire que le système d’équations v = Av + b est équivalent

au système d’équations v′ = P ′AP ′Tv′ + P ′b .

Preuve du lemme 5.2.8 :

[1 0 . . . 0

](P ′AP ′T )∗P ′b

= 〈 Règle de glissement 〉[1 0 . . . 0

]P ′(AP ′TP ′)∗b

= 〈 P ′TP ′ = I où I est la matrice identité 〉[1 0 . . . 0

]P ′A∗b

= 〈 P ′ =

[1 0

0 P

]〉

[1 0 . . . 0

] [ 1 0

0 P

]A∗b

= 〈 Produit matriciel 〉[1 0 . . . 0

] [ (A∗b)1[0 P

]A∗b

]= 〈 Produit matriciel 〉

(A∗b)1

= 〈 Produit matriciel 〉[1 0 . . . 0

]A∗b

Lemme 5.2.9. Soit v = Av+ b un système d’équations correspondant à un élément de

ALG où A =

[B 0

C 0

]et b =

[c

d

]. Alors,

[1 0 . . . 0

]A∗b =

[1 0 . . . 0

]B∗c .

C’est-à-dire que le système d’équations v = Av+b est équivalent au système d’équationsv′ = Bv′ + c.

Page 127: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 120

Preuve du lemme 5.2.9 :

[1 0 . . . 0

] [ B 0

C 0

]∗ [c

d

]= 〈 Définition de ∗ sur les matrices 〉[

1 0 . . . 0] [ B∗ 0

CB∗ 1

][c

d

]= 〈 Produit matriciel 〉[

1 0 . . . 0] [ B∗c

CB∗c+ d

]= 〈 Produit matriciel 〉

(B∗c)1

= 〈 Produit matriciel 〉[1 0 . . . 0

]B∗c

Lemme 5.2.10. Soit v = Av + b un système d’équations correspondant à un élémentde ALG où A est une matrice de dimension n × n et b un vecteur de dimension n telqu’il existe 1 ≤ i ≤ j ≤ n, ((AT )i)

T = ((AT )j)T et bi = bj. Alors,[

1 0 . . . 0]A∗b =

[1 0 . . . 0

](PAP T )∗PB

où P est une matrice de dimension (n − 1) × n telle que les lignes l de 1 à i − 1 sontégales à (el)

T , la ligne i est égale à (ei + ej)T , les lignes l de i+ 1 à j − 1 sont égales à

(el)T et les lignes l de j à n−1 sont égales à eTl+1. C’est-à-dire que le système d’équations

v = Av + b est équivalent au système d’équations v′ = PAP Tv′ + PB

Preuve du lemme 5.2.10 : Tout d’abord, nous remarquons que par construction de lamatrice P , P TP est une matrice de dimension n × n telle que les lignes l de 1 à i − 1

sont égales à (el)T , la ligne i est égale à (ei + ej)

T , les lignes l de i + 1 à j − 1 sontégales à (el)

T , la ligne j est égale à (ei + ej)T et les lignes l de j + 1 à n sont égales

à eTl . De plus, comme les lignes i et j de la matrice A sont égales et qu’en algèbre deKleene l’addition est idempotente AP TP = A. Le reste de la preuve est identique à lapreuve du lemme 5.2.8. �

Nous allons maintenant calculer (SΣ(x) +E SΣ(y))∗E .

Page 128: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 121

(SΣ(x) +E SΣ(y))∗E

= 〈 Définition de +E 5.14 〉z1 =

0 0 x 0 y

0 0 x 0 0

0 0 0 0 0

0 0 0 0 y

0 0 0 0 0

z1 +

0

0

1

0

1

∗E

= 〈 Lemme 5.2.8 avec P =

1 0 0 0 0

0 0 0 0 1

0 0 1 0 0

0 0 0 1 0

0 1 0 0 0

〉z2 =

0 y x 0 0

0 0 0 0 0

0 0 0 0 0

0 y 0 0 0

0 0 x 0 0

z2 +

0

1

1

0

0

∗E

= 〈 Lemme 5.2.9 〉z3 =

0 y x 0

0 0 0 0

0 0 0 0

0 y 0 0

z3 +

0

1

1

0

∗E

= 〈 Lemme 5.2.9 〉z4 =

0 y x

0 0 0

0 0 0

z4 +

0

1

1

∗E

= 〈 Lemme 5.2.10 avec P =

[1 0 0

0 1 1

]〉(

z5 =

[0 x+ y

0 0

]z5 +

[0

1

])∗E= 〈 Définition de ∗E 5.16 〉

z6 =

0 0 x+ y

0 0 0

0 0 x+ y

z6 +

1

0

1

= 〈 Lemme 5.2.8 avec P =

1 0 0

0 0 1

0 1 0

Page 129: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 122

z7 =

0 x+ y 0

0 x+ y 0

0 0 0

z7 +

1

1

0

= 〈 Lemme 5.2.9 〉

z8 =

[0 x+ y

0 x+ y

]z8 +

[1

1

]= 〈 Lemme 5.2.10 avec P =

[1 1

]〉

z9 = [x+ y]z9 + [1]

Donc le système d’équations associé à (SΣ(x) +E SΣ(y))∗E est

Sdef= v = [x+ y]v + [1] .

En développant SΣ(x)∗E ·E (SΣ(y)·ESΣ(x)∗E )∗E et en appliquant les règles simplificationscomme nous venons de le faire, nous obtenons le système d’équations

S ′def= w =

[x y

0 x+ y

]w +

[1

1

].

Il ne nous reste plus qu’à calculer le résultat de la division de ces deux systèmes d’équa-tions. Pour ce faire, nous utilisons la définition de \E donnée à la page 111. Nouscommençons par calculer v1\w1 :

v1\w1

= 〈 Définition implicite de v1 et w1 〉((x+ y)v1 + 1)\(xw1 + yw2)

= 〈 Propriétés des résidus 3.3.3 et définition implicite de X1 〉(xv1)\(xw1 + yw2) u (yv1)\(xw1 + yw2) uX1

= 〈 Propriétés des résidus 3.3.3 et axiomes (5.8) à (5.11) 〉v1\w1 u v1\w2 u w1

Comme nous n’avons pas encore calculé le résultat de v1\w2, il faut le faire. En procédantde façon similaire à précédemment, nous obtenons que v1\w2 = w2 u v1\w2. Le systèmed’équations résultant du calcul du résidu de v1 par w1 est donc :{

v1\w1 = v1\w1 u v1\w2 u w1

v1\w2 = w2 u v1\w2 .

Page 130: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 123

Il faut alors solutionner ce système d’équations. Nous associons à v1\w1 la variable W1

et à v1\w2 la variable W2. Ce qui nous donne le système d’équations :{W1 = W1 uW2 u w1

W2 = w2 uW2

En appliquant la première étape de l’algorithme de résolution, nous obtenons le systè-me : {

W1 = W2 u w1

W2 = w2

Puis nous remplaçons partout W2 par sa valeur de sorte à obtenir que W1 = w1uw2 ouencore que v1\w1 = w2uw1. Le système d’équations correspondant à w1 est exactementS ′ tandis que le système correspondant à w2 après simplification est égal à S. Nousdevons donc calculer S uE S ′. Toutefois, il n’est pas nécessaire de faire le calcul aucomplet car pour que SΣ(1) ≤ SΣ((x+ y)∗\x∗(yx∗)∗) soit valide, il suffit de déterminersi l’état initial est aussi final, c’est-à-dire si la première entrée de

[1]×

[1

1

]est égale à 1. Ce qui est évidemment le cas. Donc nous avons montré que l’inégalité(x+ y)∗ ≤ x∗(yx∗)∗ est valide.

Dans le cas de l’inégalité x∗(yx∗)∗ ≤ (x+ y)∗, il suffit de calculer le résultat de

SΣ(x∗(yx∗)∗)\ESΣ((x+ y)∗) .

Nous ne donnons pas les détails de ce calcul car ceux-ci sont très similaires à ceuxeffectués pour calculer (x+y)∗\x∗(yx∗)∗. Cela dit, à l’issue de ce calcul, nous trouveronsaussi que l’inégalité est satisfaite et, par conséquent, que la règle de désimbricationappartient à la théorie équationnelle de l’algèbre de Kleene.

5.3 Étendre la résolution

Dans les sections précédentes, nous avons fait un survol des différents enjeux liés àla résolution d’équations quasi linéaires en algèbre de Kleene. De plus, nous avons vucomment, en se restreignant à une classe d’algèbres particulière, il était possible de sur-monter partiellement quelques-uns de ces problèmes. Toutefois, nous avons aussi vu queplusieurs problèmes intéressants de l’analyse de programmes ne pouvaient être traitésen se limitant aux équations quasi linéaires. À ceci, il faut ajouter le fait que l’algèbre

Page 131: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 124

de Kleene nous offre une représentation très abstraite d’un programme en terme desactions que ce dernier pose. En analyse de programmes, il est parfois utile d’avoir unereprésentation un peu moins abstraite de façon à pouvoir induire plus d’informationssur le programme. L’algèbre de Kleene avec tests est un tel exemple de représentationmoins abstraite.

Dans le même ordre d’idées, il pourrait être très utile de raisonner sur des pro-grammes pour lesquels nous avons des hypothèses reflétant des raisonnements de lalogique du premier ordre. Afin d’illustrer ceci, prenons un exemple d’optimisation decode donné par Kozen et Patron dans [55]. Dans ce dernier article, il a été prouvé,en utilisant l’algèbre de Kleene avec tests, que le programme i := expr; j := expr eti := expr; j := i sont équivalents, sous l’hypothèse que expr ne contient aucune occur-rence de i. Cependant, si nous nous limitons à la comparaison syntaxique de ces pro-grammes, nous constatons qu’ils ne sont pas équivalents, car les traductions de ceux-cisont respectivement pq et pr, où p def

= i := expr, q def= j := expr et r def

= j := i.

Pour pallier partiellement à ce problème, il est tentant de raisonner sur les termesalgébriques étant donné un ensemble d’hypothèses. Par exemple, considérons un pro-gramme où l’ordre d’exécution de deux instructions particulières n’est pas important.Alors, afin de savoir ce qu’il manque à ce programme pour qu’il soit équivalent à unautre, la prise en compte de cette hypothèse peut faire en sorte que le système d’équa-tions ait une solution ou non. Il suffit de penser au cas où les instructions ne seraientpas exécutées dans le même ordre dans chacun des deux programmes. Il va sans direque la résolution d’équations avec des hypothèses est encore plus difficile que la ré-solution simple sans hypothèses supplémentaires. En fait, même en se restreignant àl’algèbre ALG, l’ajout d’hypothèses rend en général le problème indécidable en raisondu résultat de complétude de cette dernière par rapport à la théorie équationnelle del’algèbre des ensembles réguliers. Avoir une telle procédure signifierait qu’il est possiblede décider de la théorie universelle de Horn en algèbre de Kleene. Or, cette théorie n’estpas décidable [28, 54]. Cela dit, pour certains types d’hypothèses, il est possible de leséliminer et de pouvoir ainsi raisonner en algèbre de Kleene sans hypothèses [13], nouspermettant de contourner quelque peu le problème de décidabilité.

Il y a donc beaucoup de travail à faire au niveau de la résolution d’équations enalgèbre de Kleene et dans ses variantes. Dans ce qui suit, nous faisons état de diversesréflexions la résolution d’équations en algèbre de Kleene avec tests ainsi que sur larésolution d’équations autres que les équations quasi linéaires.

Page 132: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 125

5.3.1 Algèbre de Kleene avec tests

Comme l’algèbre de Kleene avec tests inclut l’algèbre de Kleene, tous les problé-mes auxquels nous avons fait face dans la résolution d’équations en algèbre de Kleenedemeurent présents. De plus, un enjeu important de la résolution d’équations en algèbrede Kleene avec tests vient du fait qu’il s’agit d’une algèbre bi-univers, c’est-à-dire qu’ily a des actions et des tests. Or, chacun de ces types d’éléments n’obéit pas exactementaux mêmes règles. Ceci fait que, dépendamment des éléments que nous retrouvons dansles équations, il faut appliquer des techniques de résolution différentes. Une premièretechnique pour les équations contenant seulement des actions atomiques, c’est-à-dire larésolution d’équations en algèbre de Kleene ; une seconde technique pour les équationscontenant seulement des tests, c’est-à-dire la résolution d’équations dans une algèbrede Boole. Finalement, une troisième technique pour les équations contenant à la foisdes tests et des actions atomiques.

Compte tenu de cette problématique, il serait tentant de se rabattre sur la théoriede l’unification qui peut être appliquée à toutes sortes d’algèbres. Toutefois, à l’heureactuelle, il n’est possible que de traiter les algèbres ayant un seul univers avec la théoriede l’unification. Il faudrait alors développer la théorie de l’unification pour les algèbresmulti-univers.

5.3.2 Autres types d’équations

Lorsque lisons un peu sur l’unification, nous nous apercevons que pour certainesalgèbres, il est possible de ramener la résolution d’équations quelconques à la résolutiond’équations linéaires dans une autre algèbre [4, 66]. Or, s’il était possible de faire la mêmechose en algèbre de Kleene, cela marquerait une avancée majeure dans la résolutiond’équations. Pour le moment, il nous est impossible de se prononcer sur la viabilitéd’une telle approche. Cela dit, les travaux de Nutt [66] semblent fournir un bon pointde départ afin de s’attaquer à ce problème. Dans ceux-ci, il montre comment ramenerl’unification dans les théories monoidales à l’unification dans des demi-anneaux.

Définition 5.3.1 (Théorie monoïdale). Une théorie monoïdale est une ς-algèbre A =

〈A, M ςA〉 où ς contient uniquement un opérateur binaire +, un nombre arbitraire d’opé-

rateurs unaire et un opérateur constant 0 tels que

1. + est associatif et commutatif

2. 0 est l’élément neutre de +

Page 133: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 126

3. chaque opérateur unaire h agit comme un homomorphisme sur + et 0, c’est-à-direque h(x+ y) = h(x) + h(y) et h(0) = 0.

L’algèbre de Kleene n’étant pas une théorie monoidale, il y aurait sûrement beaucoupde travail à faire pour adapter ces travaux. Toutefois, en travaillant avec l’opérateur ?

défini comme étant la plus petite solution de

x∗ = x? + 1

au lieu de l’opérateur ∗, l’algèbre de Kleene n’est pas très différente d’une théorie mo-noidale.

À défaut d’avoir une technique générale pour traiter les différentes équations, il esttoujours possible de procéder comme nous avons fait pour les équations quasi linéaireset de développer une technique de résolution qui s’applique à un type d’équations précis.En utilisant cette approche, nous avons commencé à raisonner sur la manière de résoudredes équations où nous retrouvons des variables en séquence d’un côté du symbole del’égalité. Par exemple, considérons l’équation

xcyd = (f + e)∗ctc(t+ e+ f)d . (5.29)

Il est clair que cette équation possède deux solutions, soit x = (f+e)∗ et y = tc(t+e+f),et x = (f +e)∗ct, y = (t+e+f). Toutefois, il est moins évident de trouver une méthodeautomatisée qui permette de résoudre ce genre d’équations. L’idée que nous avons euefait appel à ce que nous avons développé pour la résolution d’équations quasi linéairesexplicites dans ALG. Nous savons que l’équation 5.29 possède au moins une solution si

(f + e)∗ctc(t+ e+ f)d ≤ ∞c∞d .

Alors, nous appliquons essentiellement la méthode permettant de déterminer si l’iné-galité est satisfaite mais avec quelques légères différences. Tout d’abord, au lieu dediviser directement l’élément à droite de l’inégalité par l’élément à gauche en entier, nousprocédons par étapes. Dans le cas présenté ci-dessus, cela signifie que nous commençonspar diviser à droite par (f + e)∗ puis par c, puis t et ainsi de suite. En procédant dela sorte, les actions c et d du côté droit de l’inégalité vont agir comme des gardesnous indiquant que nous avons rencontré une action correspondante du côté gauche.De plus, nous conservons en mémoire ce par quoi nous avons divisé avant de rencontrerune « garde ». Ceci nous donnera une valeur potentielle pour une variable. Puis, nouspoursuivons l’algorithme pour trouver une valeur à la prochaine variable en séquencetout en continuant d’accumuler ce par quoi nous avons divisé pour une autre valeurpotentielle de la variable courante.

Afin de clarifier les choses, voici environ ce à quoi ressembleraient les étapes d’exé-cution de l’algorithme de résolution pour l’équation donnée en exemple.

Page 134: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 127

(f + e)∗ctc(t+ e+ f)d ≤ ∞c∞d↔ 〈 x = (f + e)∗ 〉

ctc(t+ e+ f)d ≤ ∞c∞d↔ 〈 x = (f + e)∗ ou x = (f + e)∗c 〉

tc(t+ e+ f)d ≤ ∞d ∨ tc(t+ e+ f)d ≤ ∞c∞d↔ 〈 x = (f + e)∗, y = t ou x = (f + e)∗ct 〉

c(t+ e+ f)d ≤ ∞d ∨ c(t+ e+ f)d ≤ ∞c∞d↔ 〈 x = (f + e)∗, y = tc ou x = (f + e)∗ct ou x = (f + e)∗ctc 〉

(t+ e+ f)d ≤ ∞d ∨ (t+ e+ f)d ≤ ∞c∞d↔ 〈 x = (f + e)∗, y = tc(t + e + f) ou x = (f + e)∗ct, y = (t + e + f) ou

x = (f + e)∗ctc(t+ e+ f) 〉d ≤ ∞d ∨ d ≤ ∞c∞d

↔ 〈 x = (f + e)∗, y = tc(t + e + f) ou x = (f + e)∗ct, y = (t + e + f) oux = (f + e)∗ctc(t+ e+ f)d 〉

1 ≤ ∞d+ 1 ∨ 1 ≤ ∞c∞d

Cet algorithme de résolution est très intuitif. Toutefois, rien pour le moment nenous garantit qu’il est correct pour toutes les instances possibles. Cela dit, il s’agitcertainement d’un bon point de départ pour investiguer la résolution d’équations ayantdes variables en séquence.

Finalement, malgré tout notre bon vouloir, il arrive que certaines équations n’aientpas de solution en algèbre de Kleene. Nous n’avons qu’à penser aux équations quicorrespondent aux grammaires non contextuelles, par exemple

x = axb+ 1 .

La solution de cette équation est l’ensemble des séquences anbn pour tout n ∈ N. Or,il n’est pas possible d’exprimer ceci par un élément de l’algèbre de Kleene. Il faudraitplutôt avoir une algèbre des langages non contextuels. Des travaux ont été faits à cesujet [7, 25, 60, 62]. Cependant, il n’y a pas de consensus au sein de la communauté àsavoir quelle représentation devrait être utilisée.

Le fait que certaines équations n’admettent pas de solution en algèbre de Kleene,mais en admettent dans des algèbres « plus expressives », ouvre la voie à un autre champd’études. Il s’agit alors de déterminer pour quels types d’équations l’algèbre de Kleeneest close sous la résolution. Par clos sous la résolution, nous entendons qu’il existe unesolution en algèbre de Kleene. Nous pouvons faire une analogie avec ce qui se passe enalgèbre classique où les nombres réels ne sont pas clos sous la résolution d’équationsquadratiques tandis que les nombres complexes le sont. En fait, on peut donner une

Page 135: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 5. Résolution d’équations 128

justification algébrique de l’algèbre de Kleene en terme de résolution d’équations dansles demi-anneaux idempotents. Dans ces derniers les équations de la forme

x = ax+ 1

n’ont pas de solution. Pour être en mesure de les résoudre il a fallu introduire l’algèbrede Kleene.

Page 136: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 6

Application à l’analyse de programmes

La résolution d’équations en algèbre de Kleene peut sembler, à première vue, bienloin d’une application pratique à l’analyse de programmes. Ce n’est toutefois pas lecas, car avec les résultats obtenus sur la résolution d’équations en algèbre de Kleene, ilnous a été possible d’élaborer une méthode algébrique pour faire de la vérification parévaluation de modèles pour une version restreinte du µ-calcul linéaire.

Dans le cadre de ce travail, nous considérons des logiques moins expressives que le µ-calcul linéaire [33, 34, 71]. La raison de ceci vient du fait que le µ-calcul linéaire est unelogique aussi expressive que les ensembles ω-réguliers [10]. Or, il s’avère que l’algèbredes ensembles ω-réguliers est un modèle de l’oméga algèbre [9, 15] et que cette algèbreest plus expressive que l’algèbre de Kleene. Ceci fait qu’il est impossible de faire de lavérification de modèles en algèbre de Kleene pour une logique plus expressive que le µ-calcul linéaire. Cela dit, il existe d’autres travaux qui visent à développer une méthodealgébrique, en utilisant des variantes de l’algèbre de Kleene, pour faire de la vérificationde modèles dans d’autres logiques [22, 36, 64]. Toutefois, à notre connaissance cela n’apas encore mené à un résultat d’intégrité et de complétude.

À ce point, il est légitime de se demander pourquoi faire de la vérification de modèlesde façon algébrique alors qu’il est déjà possible de le faire autrement. Il y a deux princi-pales raisons à ceci. Premièrement, l’algorithme de vérification de modèles corresponden quelque sorte à un prouveur de théorèmes. En fait, pour prouver qu’un programmesatisfait une propriété, l’algorithme applique une série de règles mathématiques afin depasser d’une expression algébrique à une autre équivalente jusqu’à l’obtention d’unecertaine expression algébrique que nous savons vraie ou fausse. Alors, chaque applica-tion de règle correspond à une nouvelle étape de la preuve. Il est donc facile de vérifierque le programme satisfait bel et bien la propriété en analysant la preuve. De plus,

Page 137: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 6. Application à l’analyse de programmes 130

il devient plus facile de prouver la correction de l’implémentation de l’algorithme, carcelui-ci correspond à un système de preuves. Ceci peut s’avérer plus difficile à fairelorsque nous considérons un algorithme basé sur la sémantique de la logique [35]. Undeuxième facteur qui rend intéressante l’approche algébrique à la vérification de mo-dèles vient de la flexibilité que nous offre l’algèbre. En algèbre, il est facile de travailleravec des inconnues via les variables. Ceci permet, entre autres, de faire de la vérificationde modèles pour des programmes en cours de développement, c’est-à-dire dont toutesles parties ne sont pas encore implantées.

6.1 Présentation de la méthode

L’approche algébrique à la vérification de modèles consiste à ramener la vérificationde modèles classique à une comparaison d’éléments dans une algèbre donnée. Plusprécisément, pour déterminer si un modèle P satisfait la formule φ, nous vérifions sil’inéquation

pPq ≤ ‖φ‖

est valide, où pPq et ‖φ‖ correspondent respectivement à la traduction du modèle etde la formule en éléments d’une algèbre. Plus précisément, dans ce qui suit, nous allonstraduire le programme et la formule dans l’algèbre ALG. La figure 6.1 présente de façonschématique la méthode algébrique de vérification de modèles.

ProgrammeP

Propriétéφ

Traducteur Traducteur

Expression del’algèbre de

Kleenee1

Expression del’algèbre de

Kleenee2

e1

?

≤ e2

e1 ≤ e2 est valide,P satisfait la propriété

e1 ≤ e2 n’est pas valide,P ne satisfait pas la propriété

Fig. 6.1 – Approche algébrique à la vérification de modèles.

Page 138: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 6. Application à l’analyse de programmes 131

Présentement, nous sommes en mesure de faire la vérification algébrique de modèlesd’une version restreinte du µ-calcul linéaire sur des traces d’exécutions finies. Plusprécisément, nous considérons la logique ayant la syntaxe suivante :

φ ::= tt | ff | φ1 ∨ φ2 | φ1 ∧ φ2 | a©φ | eventually(φ)

où “a” est une action atomique et eventually(φ) correspond à la formule µZ.φ ∨ �Zdans le µ-calcul linéaire dans laquelle � signifie que n’importe quelle action atomiquepeut être faite. Nous ferons référence à cette logique en disant qu’il s’agit de la logiqueL. Pour cette logique nous définissons une simple fonction de traduction qui prend uneformule et retourne un élément de ALG :

‖tt‖ = ∞‖ff‖ = 0

‖φ1 ∨ φ2‖ = ‖φ1‖+ ‖φ2‖‖φ1 ∧ φ2‖ = ‖φ1‖ u ‖φ2‖‖ a©φ‖ = a · ‖φ‖‖eventually(φ)‖ = ∞ · ‖φ‖

où “a” est un élément de G, l’ensemble de toutes les actions atomiques pouvant êtreeffectuées, et ∞ def

=(∑

x∈G x)∗.

Classiquement, les formules du µ-calcul linéaire sont interprétées sur des tracesinfinies générées par une structure de Kriple étiquetée. Une structure de Kripke éti-quetée est un sextuple (S, P,AP, δ, γ, Init) tel que S est un ensemble fini d’états, Pest un ensemble fini d’actions, AP est un ensemble fini de propositions atomiques,δ : S × P −→ 2S est une fonction de transitions, γ : S −→ 2AP est une fonction d’éti-quetage et Init est l’ensemble des états initiaux. Cependant, comme nous nous sommesrestreints aux traces finies dans une logique sans propositions atomiques, les structuresde Kripke étiquetées deviennent un cas spécial des automates finis non déterministes.Par conséquent, elles peuvent être représentées par un automate fini déterministe équi-valent. Ce qui fait que les programmes que nous considérons sont exprimés sous laforme d’un automate fini déterministe. Or, il existe une méthode simple permettant detraduire un automate fini en une expression de l’algèbre de Kleene telle que présentéepar Kozen dans [39, 43].

En ayant maintenant le programme et la formule exprimés sous la forme d’élémentsdeALG, il est possible d’appliquer la procédure développée pour comparer deux élémentsprésentés à la section 5.2.2. L’intégrité et la complétude de la méthode présentée sontgaranties par le théorème 6.1.1 dont la preuve est donnée à la section 6.2 qui se situe àla page 136.

Page 139: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 6. Application à l’analyse de programmes 132

Théorème 6.1.1. Pour tout programme P représenté à l’aide d’un automate fini etpour toute une formule φ de la logique L, nous avons que :

P |= φ↔ pPq ≤ ‖φ‖ .

6.1.1 Exemple

Nous allons maintenant donner un exemple complet présentant comment la vérifica-tion par évaluation de modèles peut être faite de manière algébrique dans l’algèbre ALG.La propriété que nous désirons vérifier est la suivante : “Aucune information ne peutêtre envoyée sur le réseau après la lecture d’un fichier”. Cette propriété est exprimée,en la logique L, par la formule

¬eventually( r© eventually( s© tt)) (6.1)

où r def= read et s def

= send. Cependant, au lieu de vérifier directement cette propriété nousallons plutôt considérer la forme positive de celle-ci. Cette forme positive correspond àla formule disant qu’un read est suivi par un send . Par dualité, nous avons que si unprogramme satisfait la forme positive, il ne peut pas satisfaire (6.1) et vice-versa.

La traduction de la forme positive de (6.1) est directe en utilisant la fonction detraduction :

‖eventually( r© eventually( s© tt))‖ = ∞ · ‖ r© eventually( s© tt)‖= ∞ · r · ‖eventually( s© tt)‖= ∞ · r · ∞ · ‖ s© tt‖= ∞ · r · ∞ · s · ‖tt‖= ∞ · r · ∞ · s · ∞= ∞r∞s∞

Le programme considéré est quant à lui donné par l’automate que nous retrouvonsà la figure 6.2. Ce programme peut être aussi représenté sous la forme d’un systèmed’équations qui est donné par :

Pgmdef=

y1

y2

y3

y4

=

0 r 0 0

0 r d+ e 0

p 0 0 s

0 0 0 0

y1

y2

y3

y4

+

0

0

0

1

où r

def= read, p def

= print, d def= decrypt, e def

= encrypt et s def= send. La traduction de

Page 140: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 6. Application à l’analyse de programmes 133

y2 y3 y4

y1

decrypt

encrypt

send

read

printread

Fig. 6.2 – Programme à vérifier.

celui-ci en algèbre de Kleene est donnée par

[1 0 0 0

]0 r 0 0

0 r d+ e 0

p 0 0 s

0 0 0 0

0

0

0

1

= (rr∗(d+ e)p)∗rr∗(d+ e)s .

Ayant le programme et la propriété exprimés en algèbre de Kleene, il est possiblede procéder à la vérification du modèle en tant que telle. Pour ce faire, nous devonsvérifier si

(rr∗(d+ e)p)∗rr∗(d+ e)s ≤ ∞r∞s∞

est valide ou non. Pour ce faire nous utilisons la procédure présentée à la section 5.2.2.Dans un premier temps, nous réécrivons l’inégalité sous la forme équivalente

1 ≤ (rr∗(d+ e)p)∗rr∗(d+ e)s\∞r∞s∞ .

Par la suite, nous appliquons la fonction SΣ aux éléments des deux côtés de l’inégalité.Cela dit, nous avons déjà une représentation du programme sous la forme d’un systèmed’équations. Il suffit donc de traduire la propriété sous la forme d’un système d’é-quations. En appliquant SΣ à ∞r∞s∞ et en simplifiant le résultat, nous obtenons lesystème d’équations suivant :

Prdef=

x1

x2

x3

=

Σ r 0

0 Σ s

0 0 Σ

x1

x2

x3

+

0

0

1

où Σ =

∑x∈G x.

Nous calculons alors Pgm\EPr. Le système d’équations obtenu en calculant le ré-sultat de la division de y1\x1 en utilisant les définitions implicites de X1 et Y1, nous est

Page 141: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 6. Application à l’analyse de programmes 134

donné par :

y1\x1 = y2\(x1 + x2)

y2\(x1 + x2) = y2\(x1 + x2) u y3\(x1 + x2)

y3\(x1 + x2) = y1\(x1 + x2) u y4\(x1 + x2 + x3)

y1\(x1 + x2) = x2\(x1 + x2)

y4\(x1 + x2 + x3) = x1 + x2 + x3 .

En appliquant l’algorithme de résolution (voir la section 5.2.2 à la page 103), nousobtenons

y1\x1 = x1 + x2 + x3

comme solution de ce système d’équations. Après simplifications, le système d’équationscorrespondant est :

z = [r + d+ e+ p+ s]z + [1] .

Comme la première entrée du vecteur [1] est égale à 1, l’inégalité 1 ≤ (rr∗(d+e)p)∗rr∗(d+

e)s\∞r∞s∞ est valide. C’est donc dire que le programme Pgm ne satisfait pas la pro-priété donnée en (6.1).

6.1.2 Introduction d’inconnues

Jusqu’à présent, nous nous sommes limités à donner une nouvelle technique pourfaire de la vérification de modèles, ce qui est en soi peu utile car nous pouvions le faireautrement. Toutefois, comme nous l’avons mentionné, en utilisant l’approche algébrique,il est possible de faire de la vérification de modèles avec des inconnues. Reprenonsun exemple présenté dans l’introduction du chapitre 5 ; nous allons montrer l’aspectnovateur de l’approche algébrique à la vérification de modèles.

Dans cet exemple, nous considérons un programme qui fait un appel à une fonctionvia un pointeur de fonction pour lequel nous ne connaissons pas l’ensemble des valeurspossibles. La traduction de ce programme en algèbre de Kleene est donnée par

d1 · d2 · o · x · c .

De plus, nous voulons nous assurer que le programme ouvre un fichier, le lit et le ferme,ce qui est exprimé en algèbre de Kleene par :

∞o∞r∞c∞ .

Alors, vérifier que le programme satisfait ou non la propriété revient à résoudre l’iné-galité

d1 · d2 · o · x · c ≤ ∞o∞r∞c∞ .

Page 142: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 6. Application à l’analyse de programmes 135

Comme nous avons une variable du côté gauche de l’inégalité, nous ne pouvons appliquerdirectement l’algorithme de vérification par évaluation de modèles. Cela dit, en utilisantles propriétés des résidus, nous pouvons réécrire cette inégalité sous la forme équivalentesuivante :

x ≤ (d1 · d2 · o)\∞o∞r∞c∞/c .

Nous pouvons simplifier le terme à droite du symbole de l’inégalité en calculant lerésultat des divisions en passant par SΣ. Après simplification, nous obtenons que

x ≤ ∞r∞ .

C’est-à-dire que pour que le programme satisfasse la propriété, il faut que la partieinconnue satisfasse la propriété ∞r∞. Donc au lieu de savoir directement si un pro-gramme satisfait ou non une propriété, nous allons plutôt chercher à savoir s’il peut lasatisfaire. Dans les cas où il ne peut la satisfaire, nous avons que x doit être inférieureà 0.

Lorsque nous positionnons la vérification de modèles avec inconnues dans le contextedu développement d’une application, on s’aperçoit qu’il est possible d’en tirer des avan-tages dans plusieurs situations. Par exemple, dans le cas où le développement d’uneapplication est divisé en plusieurs phases, lorsque l’une d’entre elles est terminée, nouspouvons vérifier que celle-ci respecte la propriété générale même s’il reste encore des par-ties à développer. De plus, lorsque le développement des phases subséquentes s’amorce,nous sommes en mesure de connaître quelle partie de la propriété générale ces phasesdoivent satisfaire. Cela permet aussi de faire de la vérification de modèles de façonincrémentale. En effet, si nous savons qu’une partie du code est très critique et risqued’être modifiée à plusieurs reprises au fil des ans, nous pouvons faire une première vé-rification de modèles pour le programme en entier en abstrayant la partie critique parune variable. De la sorte, nous obtiendrons une nouvelle propriété que la partie critiquedoit respecter afin que le programme dans son ensemble satisfasse la propriété globale.Il suffira donc de vérifier uniquement cette partie critique à chaque fois qu’elle seramodifiée sans avoir à vérifier le programme en entier.

Il est aussi possible d’introduire des inconnues dans la propriété. Nous aurons alorsà résoudre une inégalité où la variable est du côté droit du symbole. Ce problème re-vient à trouver l’ensemble des valeurs minimales faisant en sorte que cette inégalité estsatisfaite. Toutefois, pour le moment, nous ne savons pas comment résoudre ce genred’équations. En terme d’analyse de programmes, cela permettrait, en fixant un pro-gramme et une propriété contenant des inconnues, d’identifier une famille de propriétésque le programme peut respecter. Nous pourrions donc, par la suite, étudier cette famillede propriétés pour déterminer si le programme respecte des propriétés indésirables.

Page 143: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 6. Application à l’analyse de programmes 136

6.2 Intégrité et complétude de la méthode

Nous allons maintenant prouver le théorème 6.1.1. Pour ce faire, nous devons toutd’abord introduire la notion de séquence ainsi que certaines notions sur les traces surune structure de Kripke.

Définition 6.2.1 (Séquence). Soit G l’ensemble générateur minimal d’un demi-anneauidempotent. Une séquence, notée par σ, est définie, de manière inductive, comme suit :

– 1 est une séquence.– Si σ est une séquence et si x ∈ G alors σ · x est une séquence.

De plus, l’ensemble de toutes les séquences générées à partir de l’ensemble générateurminimal G est désigné par σG.

Une trace sur une structure de Kripke (S, P,AP, δ, γ, Init) est une suites0a0s1a1 . . . an−1sn telle que si+1 ∈ δ(si, ai) pour tout 0 ≤ i ≤ n − 1. Toutefois,comme la logique L est interprétée sur les automates finis déterministes, il est suf-fisant de considérer les traces comme étant des suites telle que s0a0a1 . . . an−1sn oùs0 ∈ S et si+1 = δ(si, ai) pour tout 0 ≤ i ≤ n − 1. Nous notons de telles traces parτ et l’ensemble de toutes les traces partant de l’état s et terminant à l’état s′ parτss′ = {τ | s0 = s ∧ sn = s′}. Le ie élément d’une trace τ est noté par τ [i] = ai etla trace débutant à partir du i

e élément est notée par τ i = siaiai+1 . . . an−1sn. L’en-semble de toutes les traces d’un automate fini déterministe P = (S,Σ, δ, s0, F ) estτP = ∪s∈F τsos. Pour chacune des traces d’un automate fini déterministe, il est possiblede donner une expression équivalente de l’algèbre de Kleene. Celle-ci est donnée en« enlevant » l’état initial et final d’une trace. L’expression de l’algèbre de Kleene résul-tante est une séquence. La fonction Γ transforme une trace en une séquence, c’est-à-direΓ(s0a0a1 . . . an−1sn) = a0a1 . . . an−1.

Dans ce qui suit, nous allons aussi référer au µ-calcul linéaire. La syntaxe du µ-calcullinéaire est donnée par :

φ := p | Z |¬φ | φ1 ∨ φ2 | φ1 ∧ φ2 | a©φ | µZ.φ

où “p” est une proposition atomique, “a” est une action atomique et Z est une variable.La sémantique du µ-calcul linéaire est définie sur les traces générées par une structure

Page 144: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 6. Application à l’analyse de programmes 137

de Kripke :

τ |= p ⇔ p ∈ γ(s0)

τ |= ¬φ ⇔ τ 6|= φ

τ |= φ1 ∨ φ2 ⇔ τ |= φ1 ∨ τ |= φ2

τ |= φ1 ∧ φ2 ⇔ τ |= φ1 ∧ τ |= φ2

τ |= a©φ ⇔ a0 = a ∧ τ 1 |= φ

τ |= µZ.φ ⇔ τ |= X tel que X est le plus petit point fixe de φ(X)

Nous disons alors qu’un programme P satisfait une formule φ, noté par P |= φ, siet seulement si toutes les traces générées par le programme P satisfont la formule φ,c’est-à-dire pour tout τ ∈ τP nous avons que τ |= φ.

De plus, par construction, pPq correspond à∑

x∈τP Γ(x). Alors, afin de prouver lethéorème 6.1.1, il est suffisant de prouver que :

τ |= φ⇔ Γ(τ) ≤ ‖φ‖ .

La preuve est faite par induction sur la structure de la formule φ. Premièrement,il est facile de vérifier que τ |= tt ⇔ Γ(τ) ≤ ∞ et que τ |= ff ⇔ Γ(τ) ≤ 0 commetout programme satisfait tt et qu’aucun programme ne satisfait ff. Comme hypothèsed’induction, nous supposons que φ1, φ2 sont deux formules de la logique L et que τ estn’importe quel chemin tel que :

τ |= φ1 ⇔ Γ(τ) ≤ ‖φ1‖ τ |= φ2 ⇔ Γ(τ) ≤ ‖φ2‖ .

Étape d’induction τ |= φ1∨φ2 ⇔ Γ(τ) ≤ ‖φ1‖+‖φ2‖ : À partir de la sémantique duµ-calcul linéaire, nous avons que τ |= φ1 ∨φ2 ⇔ τ |= φ1 ∨ τ |= φ2. Alors, τ |= φ1 ∨φ2 ⇔Γ(τ) ≤ ‖φ1‖ ∨ Γ(τ) ≤ ‖φ2‖. Comme nous considérons des éléments de l’algèbre ALG,nous avons que σ ≤ x ∨ σ ≤ y ⇔ σ ≤ x + y où σ est une séquence. Ce qui prouve queτ |= φ1 ∨ φ2 ⇔ Γ(τ) ≤ ‖φ1‖+ ‖φ2‖.

Étape d’induction τ |= φ1∧φ2 ⇔ Γ(τ) ≤ ‖φ1‖u‖φ2‖ : À partir de la sémantique duµ-calcul linéaire, nous avons que τ |= φ1 ∧φ2 ⇔ τ |= φ1 ∧ τ |= φ2. Alors, τ |= φ1 ∧φ2 ⇔Γ(τ) ≤ ‖φ1‖ ∧ Γ(τ) ≤ ‖φ2‖. Comme x ≤ z ∧ x ≤ y ⇒ x ≤ z u y est un théorème destreillis d’actions, nous avons prouvé que τ |= φ1 ∧ φ2 ⇔ Γ(τ) ≤ ‖φ1‖ u ‖φ2‖.

Étape d’induction τ ′ |= a©φ1 ⇔ Γ(τ ′) ≤ a · ‖φ1‖ : À partir de la sémantique duµ-calcul linéaire, nous avons que τ ′ |= a©φ1 ⇔ τ ′[0] = a ∧ τ ′1 |= φ1. Par hypothèsed’induction, nous avons que Γ(τ ′1) ≤ ‖φ‖. Dans ALG, nous avons que x ≤ y ⇔ a · x ≤a · y pour tout a ∈ G et x, y ∈ A, où A est l’ensemble univers de l’algèbre. Alors,

Page 145: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 6. Application à l’analyse de programmes 138

a ·Γ(τ ′1) ≤ a · ‖φ1‖. Donc par définition de Γ, par la concaténation de traces, et du faitque τ ′[0] = a, nous avons prouvé que τ ′ |= a©φ1 ⇔ Γ(τ) ≤ a · ‖φ1‖.

Étape d’induction τ ′ |= eventually(φ1) ⇔ Γ(τ ′) ≤ ∞ · ‖φ1‖ : À partir de la sé-mantique du µ-calcul linéaire, nous avons que τ ′ |= eventually(φ1) ⇔ τ ′ |= µZ.φ1 ∨�Z. Comme la fonction de traduction est un homomorphisme entre l’algèbre A =

〈A,∨,∧, a©〉 pour laquelle G = {tt,ff} et l’algèbre B = 〈B,+,u, a·〉 pour laquelleG = {∞, 0} nous avons que ‖µZ.φ‖ = µZ.‖φ‖. Alors, τ ′ |= eventually(φ1) ⇔ Γ(τ ′) ≤µZ.‖φ1‖ +

(∑x∈G x

)· Z. En algèbre de Kleene la solution de µZ.‖φ1‖ +

(∑x∈G x

)· Z

est bien connue et est égale à(∑

x∈G x)∗ · ‖φ1‖ =∞ · ‖φ1‖.

6.3 Implantation de la méthode

Nous avons implanté la méthode permettant de faire de la vérification de modèles defaçon algébrique. Pour ce faire, nous avons retenu comme langage de programmation lesml.net. En ayant un langage fonctionnel, l’implantation de la méthode de comparaisonde deux éléments devient très facile car nous pouvons quasiment copier directement ladéfinition de SΣ dans le langage. De plus, en choisissant une technologie .NET, nousavons pu construire facilement une interface Web pour l’outil.

Dans ce qui suit, nous allons montrer comment nous nous servons de l’outil. Lafigure 6.3 montre la vue principale à l’ouverture de l’outil. Nous remarquons deux casesde saisie ; la première à gauche permet de saisir une expression de l’algèbre de Kleenereprésentant un programme ; la seconde à droite permet de saisir une expression del’algèbre de Kleene représentant une propriété.

Dans le contexte de cette application Web, nous utilisons les mots en lettres minus-cules pour désigner des actions atomiques, le séquencement d’action est désigné par lesymbole ;, le choix entre deux actions est désigné par le symbole +, l’étoile de Kleeneest désignée par ∗ et les éléments 0, 1,∞ sont désignés respectivement par les caractères0, 1,#. À ces expressions, nous pouvons ajouter des parenthèses pour forcer un ordred’évaluation particulier et la préséance des opérateurs est la même que celle que nousavons donnée lorsque nous avons défini l’algèbre de Kleene (voir la définition 3.2.3).

Une fois que le programme et la propriété sont saisis, il suffit d’appuyer sur lebouton Solve afin d’exécuter l’algorithme de vérification de modèles algébrique. Alors,un message s’affiche indiquant si le programme satisfait ou non la propriété. La figure6.4 donne un exemple du résultat obtenu lorsqu’un programme satisfait la propriété.

Page 146: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 6. Application à l’analyse de programmes 139

Fig. 6.3 – Vue principale de l’outil de résolution.

Dans ce cas, nous avons utilisé un programme et une propriété que nous retrouvonsdans la liste d’exemples prédéfinis. Ces programmes et propriétés sont accessibles àpartir des listes déroulantes situées au-dessus des cases de saisie.

L’outil ne se limite pas seulement à dire si une inégalité est valide ou non. En effet,il génère aussi la preuve montrant que cette inégalité est valide si elle l’est. Pour faireafficher cette preuve, il suffit de cliquer sur le texte souligné Resolution steps. La figure6.5 montre à quoi ressemble la preuve pour l’exemple mentionné ci-dessus. Le formatd’affichage par défaut est un format texte. Cependant, il est possible de générer lapreuve sous un format pdf en sélectionnant le bouton pdf ; c’est ce que montre la figure6.6.

Jusqu’à présent, nous avons vu comment, avec l’outil Web, il était possible de faire dela vérification de modèles classique. Or, comme nous l’avons mentionné à la section 6.1.2,il est possible, en utilisant l’approche algébrique, d’introduire des inconnues dans leprogramme. Cette fonctionnalité a aussi été implantée. Nous pouvons donc introduiredans le programme des variables.

Remarque 6.3.1. Les inégalités pouvant être résolues par l’outil Web correspondentaux inégalités donnant la plus grande solution d’un système d’équations quasi linéairesexplicites. La résolution de tels systèmes d’équations est expliquée à la section 5.1.2. End’autres mots, cela signifie que nous ne pouvons avoir plusieurs variables en séquencedans l’abstraction du programme.

Page 147: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 6. Application à l’analyse de programmes 140

Fig. 6.4 – Exemple de programme satisfaisant une propriété.

Les variables sont désignées par des caractères majuscules. Une fois un programmesaisi, nous avons plus qu’à appuyer sur le bouton Solve pour résoudre l’inégalité : lerésultat s’affiche alors en précisant si le programme satisfait ou, sous certaines condi-tions, peut satisfaire la propriété. En affichant les étapes de résolution, nous disposonsen plus des propriétés que les parties inconnues doivent respecter. La figure 6.7 donneun exemple d’un tel résultat que nous obtenons lorsque nous faisons la vérification demodèles d’un programme contenant des inconnues. Dans ce cas particulier, nous consi-dérons un programme dans lequel nous retrouvons trois inconnues, soit X, Y, Z. Nouscherchons donc à déterminer les valeurs pouvant être prises par ces variables afin quela propriété puisse être respectée. En faisant afficher les étapes de résolution, plus par-ticulièrement à la dernière étape (ligne), nous remarquons que, pour que la propriétésoit satisfaite, les variables X et Z sont contraintes d’être respectivement inférieuresou égales à ∞; r;∞ et à ∞; r;∞; s;∞. Nous remarquons aussi qu’aucune borne supé-rieure n’est donnée pour la variable Y ; ce qui peut paraître étrange. Cependant, si nousremontons dans les étapes de résolution, nous pouvons constater, entre chaque étape,les règles qui ont été utilisées pour justifier le passage d’une étape à l’autre. Or, à ladeuxième avant-dernière étape, nous remarquons que la variable était encore présente.Toutefois, lorsque nous passons à l’avant-dernière étape de résolution, nous utilisons larègle x ≤ ∞ ⇔ true ce qui permet d’éliminer les restrictions sur la variable Y . Enfait, ceci vient du fait que, peu importe la valeur prise par la variable Y , le programmesatisfait la propriété.

Page 148: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 6. Application à l’analyse de programmes 141

Fig. 6.5 – Affichage de la preuve que le programme satisfait une propriété en formattexte.

Page 149: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 6. Application à l’analyse de programmes 142

Fig. 6.6 – Affichage de la preuve que le programme satisfait une propriété en formatpdf.

Page 150: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 6. Application à l’analyse de programmes 143

Fig. 6.7 – Vérification de modèles d’un programme comportant des inconnues.

Page 151: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 6. Application à l’analyse de programmes 144

Une dernière fonctionnalité de l’application Web permet de prendre directementun programme C et une propriété exprimée dans la logique L et de les convertir enexpressions de l’algèbre de Kleene. Pour rendre cette fonctionnalité disponible, il suffitde cliquer sur le texte souligné Program verification. Alors, il apparaît deux nouvellescases de saisie. Dans celle de gauche, nous entrons le programme C tandis dans celle dedroite, nous entrons la propriété. Encore une fois, il est possible d’utiliser des exemplesprédéfinis accessibles à l’aide des listes déroulantes. De plus, pour les programmes, il estpossible d’aller chercher directement des fichiers C contenus dans le système de fichiersen appuyant sur le bouton Parcourir puis de l’importer en appuyant sur le bouton OK.Une fois que le programme ou la propriété a été saisi, nous pouvons les traduire enexpressions de l’algèbre de Kleene en appuyant sur le bouton Translate correspondant.La figure 6.8 donne le résultat de la traduction d’un programme C et d’une propriétéde la logique L.

6.4 Étendre l’approche au µ-calcul linéaire

La logique L étant plutôt restreinte, il est peu probable que nous puissions utiliserl’outil développé pour faire de la vérification de modèles dans une situation réelle.Pour qu’une utilisation dans un cadre réel soit possible, il faudrait idéalement que nousayons un résultat d’intégrité et de complétude pour le µ-calcul linéaire en entier. Danscette optique, nous avons commencé à nous interroger sur la façon d’étendre l’approchealgébrique à la vérification de modèles au µ-calcul linéaire.

Une première extension

Une première extension du travail que nous avons fait consiste à considérer le µ-calcul linéaire restreint aux traces finies et sans les tests, c’est-à-dire considérer à laplace de la logique L, la logique ayant la syntaxe suivante :

φ := tt | Z | ¬φ | φ1 ∨ φ2 | a©φ | µZ.φ

où a est une action atomique et Z une variable. Nous nommons cette logique la lo-gique L1. Cette logique diffère de la logique L sur deux points. Premièrement, il y a laprésence de la négation ¬. Cela impose que l’algèbre dans laquelle les formules seronttraduites possède un opérateur qui joue le rôle de la négation. Dans les demi-anneauxidempotents, il est possible de définir l’opérateur de négation (voir [30]), qui joue le

Page 152: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 6. Application à l’analyse de programmes 145

Fig. 6.8 – Fonctionnalités de traduction d’un programme C et d’une formule de lalogique L vers des expressions de l’algèbre de Kleene.

Page 153: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 6. Application à l’analyse de programmes 146

rôle de la négation, par les axiomes :

x = x

x+ x = ∞x ≤ y → y ≤ x .

Deuxièmement, il y a la présence de l’opérateur du plus petit point fixe µ. Toutefois, cecidevrait naturellement pris en compte, en algèbre de Kleene, via l’opérateur ∗ puisquela variable Z ne peut apparaître qu’à la fin d’un terme. Donc, en ajoutant l’opérateurde négation à l’algèbre ALG, il est possible de définir une fonction de traduction de lalogique L1 vers cette algèbre par :

‖tt‖ = ∞‖¬φ‖ = ‖φ‖‖φ1 ∨ φ2‖ = ‖φ1‖+ ‖φ2‖‖ a©φ‖ = a · ‖φ‖‖µZφ‖ = µZ.‖φ‖‖Z‖ = Z

où a ∈ G.

Cela dit, pour pouvoir appliquer cette fonction de traduction, il faut être en mesurede calculer le résultat de la négation d’un élément ainsi que de calculer le plus petitpoint fixe d’une formule. Dans l’algèbre ALG augmentée de l’opérateur de négation, cescalculs ne semblent pas poser trop de problèmes.

Pour calculer la négation d’un élément, il semble qu’utiliser la correspondance exis-tant entre les éléments de l’algèbre de Kleene et les automates soit une bonne façon deprocéder. Il faut alors définir un opérateur de négation sur les systèmes d’équations re-présentant les éléments de l’algèbre. Soit S def

= x = Ax+b un système d’équations corres-pondant à l’automate fini déterministe représentant l’élément e, c’est-à-dire SΣ(e) = S.Alors, nous définissons la négation de ce système d’équations par :

SE def

= Y =

[A ([Σ] [1])T − A[1]

0 Σ

]Y +

[[1]−B

1

]

, où Σ =∑

x∈G x et où pour deux matrices C,D, nous avons que C −D = E est définipar la différence élément par élément (voir (5.4) à la page 99), c’est-à-dire

Ei,j = Ci,j −Di,j .

Cette définition est inspirée de la preuve que le complément d’un langage régulier estun langage régulier. Pour ce faire, un automate acceptant le langage complément est

Page 154: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 6. Application à l’analyse de programmes 147

construit à partir d’un automate fini déterministe acceptant le langage. Cela dit, il n’apas encore été prouvé que cette définition est correcte d’un point de vue algébrique.C’est-à-dire qu’il faut étendre le corollaire 5.2.7 à l’algèbre ALG augmentée de l’opé-rateur de négation. Toutefois, il ne devrait s’agir que d’une formalité puisque ALG estcomplète par rapport au modèle des langages réguliers et ces derniers admettent lanégation.

Pour calculer µZ.‖φ‖, il suffit de résoudre le système d’équations correspondant.Comme il s’agit du plus petit point fixe, nous devrions être en mesure de résoudreassez facilement ces équations en faisant appel à l’opérateur ∗. Cela dit, la négationcomplexifie quelque peu la résolution et il se peut que nous tombons dans des casnécessitant plus de travail.

Enfin, pour être en mesure de faire de façon algébrique de la vérification par éva-luation de modèles dans la logique L1, il reste à prouver l’intégrité et la complétude dela méthode, c’est-à-dire montrer que

P |= φ↔ pPq ≤ ‖φ‖ .

Cette preuve devrait être similaire à celle que nous avons donnée pour le théorème 6.1.1et devrait être assez facile dans l’ensemble, à l’exception du cas

P |= µZ.φ↔ pPq ≤ (µZ.‖φ‖) .

Une deuxième extension

En ayant étendu l’approche algébrique à la logique L1, il n’y a plus qu’un pas à fairepour traiter le µ-calcul linéaire restreint aux traces finies, c’est-à-dire considérer à laplace de la logique L1, le µ-calcul linéaire

φ := p | Z |¬φ | φ1 ∨ φ2 | a©φ | µZ.φ

où p est une proposition atomique, a est une action atomique et Z est une variable.La différence entre cette algèbre et l’algèbre L1 vient du fait qu’il y a maintenant despropositions atomiques. Cela impose donc que dans l’algèbre dans laquelle les formulesseront traduites, il y ait des éléments correspondant aux propositions atomiques. Or,comme les tests en algèbre de Kleene avec tests forment une algèbre de Boole, ils offrentune façon naturelle de représenter les propositions atomiques. Donc, en ajoutant lestests et la négation à l’algèbre ALG, il devrait être possible de traduire les formulesdu µ-calcul linéaire en algèbre. Toutefois, pour ajouter les tests à l’algèbre ALG, nousne pouvons nous limiter à faire ce qui a été fait pour ajouter les tests à l’algèbre de

Page 155: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 6. Application à l’analyse de programmes 148

Kleene. Il faut ajouter des axiomes supplémentaires afin de pouvoir calculer le résultatdu résidu de deux éléments. Voici une première ébauche de ces axiomes :

p\x = px+ p∞ p ∈ B, x ∈ Ay\x = 1 x, y ∈ Act et x = y

y\x = 0 x ∈ Act ∪ {0, 1} ∪B,y ∈ Act et x 6= y

z∞u x = 0 ∨ z∞u y = 0→ z\(y + x) = z\y + z\x x, y ∈ A et z ∈ Act

z\(y · x) = (z\y) · x x ∈ A, z ∈ Act

et y ∈ Act ∪B

où B est l’ensemble des tests, Act est l’ensemble des actions atomiques et A est l’en-semble univers de l’algèbre. L’idée est de baser ces axiomes sur des théorèmes deslangages sur les mots gardés, à la manière de ce que nous avons fait pour définir lesaxiomes (5.8) à (5.11). Une autre piste qui pourrait être utilisée pour définir ces axiomesnous vient de Kozen qui a défini les opérateurs de dérivation sur l’algèbre libre de Kleeneavec tests [53].

La fonction de traduction serait alors définie comme précédemment à l’exceptiondu fait qu’il faut maintenant traduire les propositions atomiques. Ceci serait fait de lamanière suivante :

‖p‖ = p · ∞

où p appartient à l’ensemble de tests de l’algèbre.

Pour être en mesure de vérifier si l’inégalité

pPq ≤ ‖φ‖

est valide dans cette nouvelle algèbre, il devrait être encore possible de passer parla correspondance entre les éléments de l’algèbre et les automates. Il faudra toutefoisredéfinir tous les opérateurs sur les systèmes d’équations représentant les éléments del’algèbre, c’est-à-dire les opérateurs +E, ·E, ∗E , uE, \E, /E et E. Pour la plupart d’entreeux, il devrait être possible d’utiliser la même définition ou une définition légèrementdifférente de ces mêmes opérateurs définis sur les systèmes d’équations représentant leséléments de AlG. Toutefois, en faisant une brève réflexion, il est sûr que les définitionsdes opérateurs uE et E ne peuvent être réutilisées intégralement. De plus, avant des’attaquer à la définition de ces opérateurs, il faudra s’assurer que les ensembles régulierssur les mots gardés sont clos sous l’intersection, le résidu et le complément.

Page 156: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 6. Application à l’analyse de programmes 149

Le µ-calcul linéaire

La dernière étape à franchir afin d’avoir une approche algébrique à la vérificationde modèles du µ-calcul linéaire est de considérer les traces infinies. Pour ce faire, nouspourrions être tenté d’utiliser une sous-classe de l’oméga algèbre avec tests [9, 15].Cependant, il faut être vigilant si nous choisissons d’utiliser cette algèbre car nous yobservons certains comportements particuliers qui ne sont pas nécessairement souhai-tables. Par exemple, l’identité aω0 = 0 signifie, en quelque sorte, qu’après avoir exécutél’action a un nombre infini de fois, l’action abort est effectuée ; ce qui est équivalent auprogramme qui ne fait rien. Une alternative à l’oméga algèbre pour traiter les exécutionsinfinies fait usage des modules à gauche sur l’algèbre de Kleene [25].

Une fois que l’algèbre adéquate sera choisie, il faudra développer une procédure pourcomparer deux éléments de cette algèbre. Cela dit, rien n’indique que nous puissionsutiliser une approche basée sur les systèmes d’équations comme nous l’avons fait dansle cas fini. Il y a donc beaucoup de travail à faire pour passer des traces finies aux tracesinfinies.

Page 157: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 7

Conclusion

Dans ce mémoire, nous nous sommes intéressés à savoir comment la résolutiond’équations en algèbre de Kleene peut être utilisée afin d’aborder différents problèmesliés à l’analyse de programmes ; plus particulièrement, nous l’avons utilisée dans le cadrede la vérification de modèles et de la synthèse de contrôleurs. Pour ce faire, nous avons,dans un premier temps, formalisé la notion d’équations linéaires en algèbre de Kleene.Puis, nous avons vu comment résoudre un type d’équations, plus général, définies à par-tir de ces dernières et appelées équations quasi linéaires. Enfin, nous avons présenté uneméthode permettant de faire de la vérification de modèles de façon algébrique. Or, cetteapproche algébrique permet aussi de faire de la synthèse de contrôleurs en introduisantdes variables dans le programme.

Le principal avantage de la résolution d’équations en algèbre de Kleene est la possi-bilité de traiter plusieurs problèmes issus de l’analyse de programmes à l’aide du mêmecadre théorique. Plus généralement, utiliser une approche algébrique pour faire de l’ana-lyse de programmes semble une avenue prometteuse afin de regrouper, dans un mêmecadre théorique, plusieurs techniques d’analyse. En plus de la vérification de modèleset la synthèse de contrôleurs, nous pouvons facilement imaginer que la comparaisonde code pourrait en bénéficier. Par exemple, pour déterminer les traces d’exécutionscommunes à deux programmes P1 et P2, il suffirait de calculer

P1 u P2

ou pour déterminer les traces d’exécutions différentes à ces deux même programmes, ilfaudrait calculer

P1 − P2 .

De plus, l’approche algébrique à l’analyse de programmes nous donne une autre

Page 158: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 7. Conclusion 151

vision d’un même problème. Ceci permet de faire des choses que nous aurions cruesimpossibles en utilisant une autre méthode. Il suffit de penser à la vérification de modèleslorsque le programme contient des inconnues. En fait, ceci découle du fait que l’approchealgébrique permet de faire la vérification de façon modulaire. Il s’agit d’un avantagenotable sur la méthode classique où nous devons toujours considérer le programme enentier pour vérifier s’il respecte ou non une propriété [35]. Nous pouvons facilementimaginer que cette approche modulaire représenterait un avantage considérable dansle contexte de développement et d’entretien d’un logiciel où nous modifions souventqu’une petite partie du code source. Alors, à la place de vérifier à chaque fois que leprogramme en entier satisfait une propriété nous nons contenterions de vérifier que lapartie modifiée fait en sorte que le programme satisfasse la propriété.

Nous pouvons pousser cette notion de modularité un peu plus loin. Par exemple, sil’exécution d’un programme est grandement dictée par l’interaction avec l’usager, il sepeut que nous soyons incapable de tenir compte de toutes les situations possibles dansle modèle. Ainsi, à la place de vérifier, avant l’exécution, que l’ensemble de son logiciela le comportement requis, le producteur se contente de vérifier seulement une partie duprogramme, le reste étant vérifié à l’exécution. De la même façon, si nous ne connaissonspas, avant l’exécution, le comportement que certaines parties d’un programme doiventavoir, il est possible d’effectuer une vérification en cours d’exécution pour ces parties.

Par contre, il y a plusieurs limitations à l’utilisation de la résolution d’équations enalgèbre de Kleene pour faire de l’analyse de programmes. Tout d’abord, ce que nouspouvons exprimer au sujet d’un programme en algèbre de Kleene est plutôt limité. Entreautres, nous ne pouvons pas représenter les fonctions récursives ou tenir compte de l’im-pact de la valeur de certaines variables sur l’exécution d’un programme. Ce problèmed’expressivité se répercute aussi dans la partie touchant à la vérification de modèles.Nous avons alors vu comment l’expressivité de la logique était dictée par l’expressi-vité de l’algèbre considérée. Ceci implique que pour utiliser la technique d’analyse deprogrammes basée sur l’approche algébrique, il reste beaucoup de travail à faire.

Ensuite, s’étant limité aux équations quasi linéaires, le nombre de problèmes qu’ilest possible d’aborder par la résolution d’équations est plutôt limité. De plus, mêmesi nous nous sommes restreint à ce type précis d’équations, la résolution demeure unechose difficile. Plus encore, tout dépendamment de l’algèbre considérée, il se peut quecertaines équations aient une solution ou non. Il faut donc être vigilant quant au choixde l’algèbre afin de ne pas conclure inutilement qu’un problème n’est pas résoluble.

Enfin, il y a toute la question de la performance des algorithmes de résolution etde la décidabilité. Il semble que plus le type d’équation considéré est complexe, moins

Page 159: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 7. Conclusion 152

les algorithmes de résolution risquent d’être performants. Or, pour les équations quasilinéaires, qui sont relativement simples, déterminer si elles admettent au moins unesolution nécessite un algorithme qui est au moins exponentiel dans la taille du systèmeen pire cas. À ceci s’ajoute le fait qu’en analyse de programmes nous devons souventtravailler avec des hypothèses. Il faut donc considérer la résolution d’équations moduloun ensemble d’hypothèses, ce qui est indécidable pour les équations quasi linéaires dansALG.

7.1 Travaux futurs

Nous avons déjà vu, à la section 5.3, comment étendre la résolution d’équations àd’autres types d’équations que les équations quasi linéaires et à d’autres classes d’al-gèbres. De plus, nous avons discuté, à la section 6.4, d’une façon d’étendre l’approchealgébrique à la vérification de modèles au µ-calcul linéaire. Il y a donc une myriade detravaux futurs qui s’inscrivent dans la continuité du travail entrepris dans ce mémoire.À ceux-ci, nous pouvons ajouter un autre travail qui n’est pas nécessairement lié aucontenu de ce mémoire.

Actuellement, lorsqu’un programme ne satisfait pas une propriété, aucune informa-tion n’est fournie sur la partie du programme qui fait en sorte que la propriété n’est pasrespectée. L’idée est donc de développer une technique de vérification par évaluation demodèles qui nous renseignerait sur la partie du code qui est problématique et en quoi ellel’est dans le cas où la propriété n’est pas satisfaite. Ceci serait d’une grande utilité dansun contexte de développement de logiciel. Nous pourrions signifier au programmeur lapartie du code qui est incorrecte et le renseigner sur la nature de la correction qu’il doitapporter. En fait, nous pouvons même pousser cette idée plus loin en se disant que sinous sommes capable de déterminer l’endroit problématique, nous pourrions essayer demodifier automatiquement cet endroit afin que la propriété soit respectée. Ceci seraitparticulièrement utile dans le contexte d’un producteur de logiciels devant fournir àces clients un logiciel sécuritaire par rapport à différentes politiques de sécurité qu’il neconnaît pas nécessairement. Le producteur de logiciels n’aurait alors qu’à fournir uneversion générique du logiciel et celle-ci serait modifiée automatiquement afin qu’ellerespecte la politique de sécurité spécifiée par chacun des clients.

Par ailleurs, en utilisant l’approche algébrique à la vérification de modèles, il estpossible de récolter quelques informations sur la partie du programme qui fait en sorteque la propriété n’est pas satisfaite, comme en témoigne le dernier exemple d’applicationà la synthèse de contrôleurs donné dans l’introduction du chapitre 5 à la page 87. L’idée

Page 160: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Chapitre 7. Conclusion 153

de déterminer automatiquement l’endroit d’un code qui est problématique n’est doncpas si farfelue qu’elle peut le sembler initialement. Cela dit, pour ce qui est de savoirs’il est réaliste de penser à modifier automatiquement le code afin qu’il respecte lapropriété, nous ne pourrons le déterminer qu’après avoir creusé la première question.

Page 161: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Bibliographie

[1] C. J. Aarts. Galois connections presented calculationally. Mémoire de maîtrise,Eindhoven University of Technology, Department of Mathematics and ComputingScience, 1992.

[2] F. W. Anderson et K. R. Fuller. Rings and Categories of Modules. GraduateTexts in Mathematics. Springer-Verlag, deuxième édn, 1992.

[3] D. N. Arden. Delayed-logic and finite-state machines. Dans Fundations of Com-puter Science, p. 133–151, 1961.

[4] F. Baader et W. Snyder. Unification theory. Dans A. Robinson et A. Voron-kov, éds. Handbook of Automated Reasoning, vol. I, chap. 8, p. 445–532. ElsevierScience, 2001.

[5] F. Baccelli, G. Cohen, G. J. Olsder et J.-P. Quadrat. Synchronization andLinearity. Wiley, 1992.

[6] R. Backhouse. Kleene modules. Dans Galois Connections and Fixed Point Cal-culus, vol. 2297 de Lecture Notes in Computer Science, p. 89–150, 2002. Disponibleà : http://www.springerlink.com/link.asp?id=0bv6u7nmadl3lemd.

[7] R. C. Backhouse. Regular algebra applied to language problems. Journal ofLogic and Algebraic Programming, 66[2]:71–111, 2006.

[8] H. Bherer. Synthèse de contrôleurs. Rapport d’examen de synthèse, UniversitéLaval, Département d’informatique, juillet 2001.

[9] C. Bolduc. Oméga Algèbre : Théorie et application en vérification de pro-grammes. Mémoire de maîtrise, Université Laval, 2006.

[10] J. Bradfield et C. Stirling. Handbook of Process Algebra, chap. Modal logicsand mu-calculi : an introduction, p. 293–330. Elsevier, 2001.

[11] J. A. Brzozowski. Derivatives of regular expressions. J. ACM, 11[4]:481–494,1964.

[12] S. N. Burris et H. P. Sankappanavar. A Course in Universal Algebra. Springer-Verlag, 1982.

Page 162: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Bibliographie 155

[13] E. Cohen. Hypotheses in Kleene algebra. Rap. tech. TM-ARH-023814, Bellcore,1993.

[14] E. Cohen. Lazy caching in Kleene algebra. Disponible à : http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.57.5074.

[15] E. Cohen. Separation and reduction. DansMPC ’00 : Proceedings of the 5th Inter-national Conference on Mathematics of Program Construction, p. 45–59, London,UK, 2000. Springer-Verlag.

[16] E. Cohen, D. Kozen et F. Smith. The complexity of Kleene algebra with tests.Rap. tech. TR96-1598, Computer Science Department, Cornell University, juillet1996.

[17] J. H. Conway. Regular Algebra and Finite Machines. Chapman and Hall, 1971.

[18] B. Cottenceau. Contribution à la commande de systèmes à événments discrets :synthèse de correcteurs pour les graphes d’événements temporisés dans les dioïdes.Thèse de doctorat, Université d’Angers, octobre 1999.

[19] M. Couture. Détection d’intrusions et analyse passive de réseaux. Mémoire demaîtrise, Université Laval, 2006.

[20] O. de Moor, S. Drape, D. Lacey et G. Sittampalam. Incremental pro-gram analysis via language factors, 2002. Disponible à : citeseer.ist.psu.edu/demoor02incremental.html.

[21] J. Desharnais. Informatique théorique. Département d’informatique et de génielogiciel, Université Laval, 2004.

[22] J. Desharnais, B. Möller et G. Struth. Modal Kleene algebra and applica-tions — a survey —. Journal on Relational Methods in Computer Science (JoR-MiCS), 1:93–131, 2004.

[23] T. Ehm, B. Möller et G. Struth. Kleene modules. Dans S. B. . Heidelberg,éd. Relational and Kleene-Algebraic Methods in Computer Science, vol. 3051 deLecture Notes in Computer Science, p. 112–124, mai 2004.

[24] M. Erne, J. Koslowski, A. Melton et G. Strecker. A primer on Galoisconnections, 1991. Disponible à : citeseer.ist.psu.edu/erne92primer.html.

[25] Z. Ésik et W. Kuich. A semiring-semimodule generalization of ω-context-freelanguages. Dans J. Karhumäki, H. Maurer, G. Păun et G. Rozenberg, éds.Theory is Forever, vol. 3113 de Lecture Notes in Computer Science, p. 68–80.Springer, 2004.

[26] S. Gaubert. Introduction aux systèmes dynamiques à événements discrets. Notesde cours, février 1999. Disponible à : http://amadeus.inria.fr/gaubert.

[27] S. Gaubert. Théories des systèmes linéaires dans les dioïdes. Thèse de doctorat,L’école nationale supérieure des mines de Paris, juillet 1992.

Page 163: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Bibliographie 156

[28] C. Hardin et D. Kozen. On the complexity of the Horn theory of REL. Rap.tech. TR2003-1896, Computer Science Department, Cornell University, mai 2003.

[29] D. Harel, D. Kozen et J. Tiuryn. Dynamic Logic. MIT Press, Cambridge, MA,2000.

[30] P. Höfner. From sequential algebra to Kleene algebra : Interval modalities andduration calculus. Rap. tech. 2005-05, University of Augsburg, déc. 2005.

[31] P. Jipsen. From semirings to residuated kleene lattices. Studia Logica, 76[2]:291–303, 2004.

[32] P. Jipsen et C. Tsinakis. A survey of residuated lattices. Dans J. Martinez, éd.Ordered Algebraic Structures, p. 19–56. Kluwer Academic Publishers, Dordrecht,2002.

[33] R. Kaivola. Axiomatising linear time mu-calculus. Dans CONCUR ’95 : Pro-ceedings of the 6th International Conference on Concurrency Theory, p. 423–437,London, UK, 1995. Springer-Verlag.

[34] R. Kaivola. A simple decision method for the linear-time mu-calculus. DansStructures in Concurrency Theory, Proceedings of the International Workshop onStructures in Concurrency Theory (STRICT), Workshops in Computing, p. 190–204. Springer-Verlag, mai 1995.

[35] J.-P. Katoen. Principles of model checking. people.na.infn.it/~bene/TSV/Slides-2004/Katoen-Introduction-to-Validation.ps, 2003. Notes de cours,University of Twente.

[36] M. Kondo. Kleene algebra and modal Logic, 2001. Disponible à : http://www.math.shimane-u.ac.jp/common/memoir/34/kondo.pdf.

[37] Ł. Kot et D. Kozen. Kleene algebra and bytecode verification. Dans F. Spoto,éd. Proc. 1st Workshop Bytecode Semantics, Verification, Analysis, and Transfor-mation (Bytecode’05), p. 201–215, avril 2005.

[38] D. Kozen. Automata on guarded strings and applications. Matématica Contem-porânea, 24:117–139, 2003.

[39] D. Kozen. A completeness theorem for Kleene algebras and the algebra of regularevents. Information and Computation, 110:366–390, mai 1994.

[40] D. Kozen. Introduction to Kleene Algebra. Computer Science Department, CornellUniversity, printemps 2004.

[41] D. Kozen. Introduction to Kleene Algebra. Lecture 3 de Notes de cours [40],printemps 2004.

[42] D. Kozen. Introduction to Kleene Algebra. Lecture 7 de Notes de cours [40],printemps 2004.

[43] D. Kozen. Introduction to Kleene Algebra. Lecture 8 de Notes de cours [40],printemps 2004.

Page 164: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Bibliographie 157

[44] D. Kozen. Introduction to Kleene Algebra. Lecture 9 de Notes de cours [40],printemps 2004.

[45] D. Kozen. Introduction to Kleene Algebra. Lecture 10 de Notes de cours [40],printemps 2004.

[46] D. Kozen. Introduction to Kleene Algebra. Lecture 19 de Notes de cours [40],printemps 2004.

[47] D. Kozen. Kleene algebra with tests. ACM Transactions on Programming Lan-guages and Systems, 19[3]:427–443, mai 1997.

[48] D. Kozen. Kleene algebras with tests and the static analysis of programs. Rap.tech. 2003-1915, Computer Science Department, Cornell University, novembre2003.

[49] D. Kozen. Myhill-Nerode relations on automatic systems and the completenessof Kleene algebra. Proceedings of the 18th Symposium on Theoretical Aspects ofComputer Science, p. 27–38, fév. 2001. Disponible à : http://www.cs.cornell.edu/kozen/papers/RegEq.ps.

[50] D. Kozen. On action algebras. Dans J. van Eijck et A. Visser, éds. Logic andInformation Flow, p. 78–88. MIT Press, 1994.

[51] D. Kozen. On Hoare logic and Kleene algebra with tests. Trans. ComputationalLogic, 1[1]:60–76, juillet 2000.

[52] D. Kozen. On Kleene algebras and closed semirings. Dans Rovan, éd. Proc.Math. Found. Comput. Sci., vol. 452 de Lecture Notes in Computer Science, p.26–47, Banska-Bystrica, Slovakia, 1990. Springer-Verlag.

[53] D. Kozen. On the coalgebraic theory of kleene algebra with tests. Rap.tech. http://hdl.handle.net/1813/10173, Computing and Information Science,Cornell University, mars 2008.

[54] D. Kozen. On the complexity of reasoning in kleene algebra. Dans Logic inComputer Science (LICS’97), p. 152–162, 1997. Disponible à : http://www.cs.cornell.edu/kozen/papers/horn.ps.

[55] D. Kozen et M.-C. Patron. Certification of compiler optimizations using Kleenealgebra with tests. Dans J. Lloyd, V. Dahl, U. Furbach, M. Kerber, K.-K.Lau, C. Palamidessi, L. M. Pereira, Y. Sagiv et P. J. Stuckey, éds. Proc. 1stInt. Conf. Computational Logic (CL2000), vol. 1861 de Lecture Notes in ArtificialIntelligence, p. 568–582, London, juillet 2000. Springer-Verlag.

[56] D. Kozen et F. Smith. Kleene algebra with tests : Completeness and decidabi-lity. Dans D. van Dalen et M. Bezem, éds. Proc. 10th Int. Workshop ComputerScience Logic (CSL’96), vol. 1258 de Lecture Notes in Computer Science, p. 244–259, Utrecht, The Netherlands, septembre 1996. Springer-Verlag.

Page 165: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Bibliographie 158

[57] B. Ktari, F. Lajeunesse-Robert et C. Bolduc. Solving linear equations in*-continuous action lattices. Dans B. Möller, éd. Relations and Kleene Algebrain Computer Science, vol. 4988 de Lecture Notes in Computer Science, p. 289–303.Springer, avril 2008.

[58] B. Ktari, F. Lajeunesse-Robert et C. Bolduc. Solving linear equations in*-continuous action lattices (Extended version). Rap. tech. DIUL-RR-0801, Dépar-tement d’informatique et de génie logiciel, Université Laval, jan. 2008. 30 pages.

[59] F. Lajeunesse-Robert et B. Ktari. Toward solving equations in kleene algebra.Dans Proceedings of the 6th international Conference on Software Methodologies,vol. Tools and Techniques (SoMeT’07). IOS Press, nov 2007.

[60] H. Leiß. Kleene modules and linear languages. Journal of Logic and AlgebraicProgramming, 66:185–194, 2006.

[61] J. Mashreghi. Structures Algébriques avec 400 Problèmes. Département de Ma-thématiques et Statistiques, Université Laval, 2004.

[62] V. Mathieu. Vérification des systèmes à pile au moyen des algèbre de kleene.Mémoire de maîtrise, Université Laval, 2006.

[63] B. Möller. Residuals and detachment. Rap. tech. 2005-20, Université d’Aug-sburg, déc. 2005.

[64] B. Möller, P. Höfner et G. Struth. Quantales and temporal logics. DansSpringer Berlin, éd. Algebraic Methodology and Software Technology, vol. 4019de Lecture Notes in Computer Science, p. 263–277, septembre 2006.

[65] P. Narendran. Solving linear equations over polynomial semirings. Dans Logicin Computer Science, p. 466–472, 1996.

[66] W. Nutt. Unification in monoidal theories is solving linear equations over se-mirings. Rap. tech. RR-92-01, Deutsches Forschungszentrum für Künstliche In-telligenz GmbH, Erwin-Schrödinger Strasse, Postfach 2080, 67608 Kaiserslautern,Germany, 1992.

[67] J.-F. Rey. Automates et langages rationnels. Département des sciences informa-tiques, Université de Cergy-Pontoise, 2006.

[68] S. Roman. Advanced Linear Algebra, vol. 135 de Graduates Tests in Mathematics.Springer-Verlag, 1992.

[69] A. Salomaa. Two complete axiom systems for the algebra of regular events.Journal of the Association for Computing Machinery, 13[1]:158–169, 1966.

[70] G. Sittampalam, O. de Moor et K. F. Larsen. Incremental execution oftransformation specifications. Dans POPL ’04 : Proceedings of the 31st ACMSIGPLAN-SIGACT symposium on Principles of programming languages, p. 26–38. ACM Press, 2004.

Page 166: Résolution d'équations en algèbre de Kleene. Applications à …€¦ · FRANÇOISLAJEUNESSE-ROBERT Résolution d’équations en algèbre de Kleene Applicationsàl’analysedeprogrammes

Bibliographie 159

[71] C. Stirling et D. Walker. CCS, liveness, and local model checking in the lineartime mu-calculus. Dans Proceedings of the international workshop on Automaticverification methods for finite state systems, p. 166–178, New York, NY, USA,1990. Springer-Verlag New York, Inc.

[72] D. Suikang. Proseminar Kleene algebra und regular expressions, mai 2004.Disponible à : http://www-sst.informatik.tu-cottbus.de/~wwwti/Studium/04PSAutomaten/Zusamenfassungen/03DuSuikang.pdf.