• Aucun résultat trouvé

Etude des spécifications modulaires : constructions de colimites finies, diagrammes, isomorphismes

N/A
N/A
Protected

Academic year: 2021

Partager "Etude des spécifications modulaires : constructions de colimites finies, diagrammes, isomorphismes"

Copied!
237
0
0

Texte intégral

(1)

HAL Id: tel-00005007

https://tel.archives-ouvertes.fr/tel-00005007

Submitted on 23 Feb 2004

HAL is a multi-disciplinary open access

archive for the deposit and dissemination of sci-entific research documents, whether they are pub-lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

colimites finies, diagrammes, isomorphismes

Catherine Oriat

To cite this version:

Catherine Oriat. Etude des spécifications modulaires : constructions de colimites finies, diagrammes, isomorphismes. Autre [cs.OH]. Institut National Polytechnique de Grenoble - INPG, 1996. Français. �tel-00005007�

(2)

THESE

presentee par

Catherine ORIAT

pour obtenir le grade de DOCTEUR

de l'INSTITUT NATIONAL POLYTECHNIQUE DE GRENOBLE

(Arr^ete ministeriel du 30 mars 1992)

Specialite: Informatique

Etude des speci cations modulaires: constructions

de colimites nies, diagrammes, isomorphismes

These soutenue le 16 janvier 1996

Composition du jury:

President:

M. Jean-Pierre VERJUS

Rapporteurs: M. Michel BIDOIT

M. Christian LAIR

Examinateurs: M. Michel SINTZOFF

M. Didier BERT

(3)
(4)

Remerciements

Je remercie tout d'abord mon directeur de these, M. Didier Bert, pour son soutien et pour la con ance qu'il m'a accordee dans la preparation de cette these.

Je remercie M. Jean-Pierre Verjus qui a accepte de presider ce jury.

Je remercie M. Michel Bidoit pour l'inter^et qu'il a porte a mon travail et pour avoir accepte d'^etre rapporteur de ma these.

Je remercie M. Christian Lair pour les ameliorations qu'il m'a suggerees et pour les erreurs qu'il m'a signalees avec beaucoup d'indulgence et de gentillesse. Je suis particulierement honoree qu'un categoricien de sa competence ait accepte de faire partie de mon jury en qualite de rapporteur.

Je remercie M. Michel Sintzo pour m'avoir fait l'honneur de participer a ce jury.

Ce travail doit beaucoup a M. Jean-Claude Reynaud. Je le remercie d'une part pour le temps qu'il a consacre a suivre mon travail, et d'autre part pour toutes les suggestions qu'il m'a faites. Si, par hasard, ce travail contient quelques idees interessantes, c'est probablement lui qui me les a souees (mais, en paraphrasant Mac Lane, je suis evidemment responsable des erreurs qui pourraient rester).

Je remercie en n les membres de l'equipe SCOP, auxquels j'associe les occupants presents ou passes du b^atimentD, pour leur accueil et leur soutien tout au long de ce travail.

(5)
(6)

\Le departement [:::] epousait l'opinion traditionnelle qui voulait que la recherche f^ut une occupation soli-taire et eremitique, une mise a l'epreuve du caractere plus que de l'erudition, qu'un abus de contact humain pouvait vicier."

(7)
(8)

Resume

La composition de speci cations modulaires peut ^etre modelisee, dans le for-malisme des categories, par des colimites de diagrammes. La somme amalgamee permet en particulier d'assembler deux speci cations en precisant les parties com-munes. Notre travail poursuit cette idee classique selon trois axes.

D'un point de vue syntaxique, nous de nissons un langage pour representer les speci cations modulaires construites a partir d'une categorie de speci cations et de morphismes de speci cations de base. Ce langage est caracterise formellement par une categorie de termes niment cocomplete.

D'un point de vue semantique, nous proposons d'associer a tout terme un dia-gramme. Cette interpretation permet de faire abstraction de certains choix e ectues lors de la construction de la speci cation modulaire. Pour cela, nous de nissons une categorie de diagrammes \concrete", c'est-a-dire dont les eches peuvent ^etre mani-pulees e ectivement. En considerant le quotient par une certaine congruence, nous obtenons une completion de la categorie de base par colimites nies. Nous montrons que le calcul du diagramme associe a un terme de nit une equivalence entre la cate-gorie des termes et la catecate-gorie des diagrammes, ce qui prouve la correction de cette interpretation.

En n, nous proposons un algorithme pour decider si deux diagrammes sont iso-morphes, dans le cas particulier ou la categorie de base est nie et sans cycle. Cela permet de detecter des isomorphismes \de construction" entre speci cations mo-dulaires, c'est-a-dire des isomorphismes qui ne dependent pas des speci cations de base, mais seulement de la maniere dont celles-ci sont assemblees.

Abstract

The composition of modular speci cations can be modeled, in a category theo-retic framework, by means of colimits of diagrams. Pushouts in particular allow us to gather two speci cations sharing a common part. Our work extends this classic idea along three lines.

From a syntactic point of view, we de ne a language to represent modular speci -cations built from a category of base speci speci -cations and base speci cation morphisms. This language is formally characterized by a nitely cocomplete category of terms.

From a semantic point of view, we propose to associate with each term a diagram. This interpretation allows us to abstract some choices made while constructing a modular speci cation. We thus de ne a \concrete" category of diagrams, in which arrows can actually be handled. Considering the quotient by a certain congruence relation, we get a completion of the base category with nite colimits. We prove that this calculus de nes an equivalence between the category of terms and the category of diagrams, which shows the soundness of this interpretation.

At last, we propose an algorithm to decide whether two diagrams are isomorphic, when the base category is nite and cycle free. This allows us to detect \construc-tion isomorphisms" between modular speci ca\construc-tions, i.e. isomorphisms which do not depend on the base speci cations, but only on their combination.

(9)
(10)

Table des matieres

Resume

7

Introduction

13

1 Speci cations algebriques . . . 13

2 Theorie des categories . . . 14

3 Modularite . . . 15

4 Notre travail . . . 16

5 Comparaisons avec d'autres travaux . . . 18

6 Plan de ce memoire . . . 20

1 Motivation

23

1.1 Preliminaires . . . 23 1.2 Speci cations . . . 29 1.3 Composition de speci cations en LPG . . . 33 1.4 Sommes amalgamees . . . 35

1.4.1 Somme amalgamee de deux ensembles . . . 36

1.4.2 Somme amalgamee de deux signatures . . . 39

1.4.3 Somme amalgamee de deux speci cations . . . 40

1.4.4 Syntaxe abstraite pour les constructions modulaires . . . 42

1.4.5 Somme disjointe de deux speci cations . . . 43

1.5 Speci cations modulaires d'anneaux . . . 44

1.6 Isomorphisme de construction . . . 50

1.7 Cadre general . . . 51

1.7.1 Institutions . . . 51

1.7.2 Terminologie et hypotheses . . . 53

2 Graphes, categories et diagrammes

55

2.1 Graphes . . . 55 2.2 Categories, foncteurs ::: . . . 57 2.2.1 Categories . . . 58 2.2.2 Foncteurs . . . 59 2.2.3 Transformations naturelles . . . 60 2.2.4 Adjonctions . . . 63 2.3 Diagrammes . . . 65

2.3.1 Categorie des diagrammes DIAGR(C) . . . 65

(11)

2.3.3 Exemples de colimites . . . 76 2.3.4 Adjonction (ColimC aI C) . . . 79 2.3.5 Conservation de colimites . . . 81 2.3.6 Aplatissement . . . 87 2.3.7 Categorie diagr(C) . . . 93

2.3.8 La categorie diagr(C) est niment cocomplete . . . 103

2.3.9 La categorie diagr(C) est une completion de C par colimites nies . . . 109

2.4 Conclusion . . . 115

3 Syntaxe : categorie des termes

117

3.1 Precategories, prefoncteurs et pre-colimites . . . 119

3.2 Probleme de circularite termes { congruences . . . 124

3.3 Precategories C i . . . 125

3.4 Simpli cation des eches . . . 130

3.5 Extensions conservatrices . . . 135 3.6 Precategorie TERME(C 0) . . . 137 3.7 Categorie Terme(C 0) . . . 140 3.8 Categorie libreL(C 0) . . . 142 3.9 Conclusion . . . 149

4 Semantique: des termes aux diagrammes

151

4.1 Semantique . . . 151 4.1.1 Precategorie DIAGR(C 0) . . . 151 4.1.2 Prefoncteur D: TERME(C 0) !DIAGR(C 0) . . . 154

4.2 Exemple des anneaux . . . 155

4.2.1 Diagramme associe a la speci cationA 2 . . . 155

4.2.2 Diagramme associe a la speci cationA 0 2 . . . 157

4.2.3 Diagramme associe a la speci cationA 3 . . . 158

4.2.4 Diagramme associe a la speci cationA 4 . . . 160

4.3 Equivalence entre les categories Terme(C 0) et diagr( C 0) . . . 164

4.3.1 Equivalence entre categories, equivalence entre precategories . 164 4.3.2 Equivalence entre les precategories DIAGR(C 0) et TERME( C 0) 165 4.3.3 Correction du calcul de diagrammes . . . 170

4.4 Conclusion . . . 171

5 Isomorphismes entre diagrammes

173

5.1 Transformations de diagrammes . . . 173

5.1.1 Substitution par objet isomorphe . . . 174

5.1.2 Suppression d'un arc . . . 176

5.1.3 Ajout d'un arc etiquete . . . 180

5.1.4 Contraction d'un arc identite . . . 183

5.2 Categorie C 0 nie et sans cycle . . . 186

5.2.1 Hypotheses . . . 186

5.2.2 Fonction de completion . . . 187

(12)

TABLE DESMATIERES 11

5.2.4 Forme minimale . . . 194

5.2.5 Algorithme . . . 196

5.3 Cas general . . . 196

5.3.1 Zigzags . . . 197

5.3.2 Categorie de base comportant des cycles . . . 198

5.3.3 Categorie de base in nie . . . 198

Conclusion 201 1 Bilan . . . 201

2 Perspectives . . . 203

A Preuves sur la syntaxe 207 A.1 Preuve du theoreme de forme normale (2) . . . 207

A.2 Preuve du theoreme de forme normale (3) . . . 208

A.3 Preuve du theoreme d'\unicite" de la forme normale . . . 209

A.4 Preuve du theoreme 3.9 . . . 217

References bibliographiques 225

(13)
(14)

Speci er un probleme consiste a le decrire sans decider prematurement de la facon dont il sera resolu. En informatique, une speci cation de programme est une description des fonctionnalites attendues du programme independante des choix de mise en uvre.

Il existe plusieurs manieres de speci er un programme. On peut utiliser une langue naturelle, par exemple en ecrivant un cahier des charges. Certaines activites, comme la validation de programme, la construction automatique d'un prototype, ou la production systematique de jeux de tests, necessitent des speci cations formelles, qui possedent une semantique precise, en particulier non ambigue.

Nous nous interessons ici aux speci cations algebriques, qui font partie des spe-ci cations orientees proprietes1. Les speci cations orientees proprietes sont basees sur un systeme logique, qui de nit l'ensemble des proprietes que doit satisfaire tout modele de la speci cation.

1 Speci cations algebriques

Une speci cation algebrique est composee d'une signature et d'un ensemble d'axiomes. La signature contient les symboles utilises pour former des expressions, et les axiomes de nissent certaines proprietes de ces expressions. La logique sous-jacente decrit l'ensemble des theoremes que l'on peut deduire des axiomes. De plus, la semantique des speci cations algebriques associe a toute speci cation une classe de modeles, c'est-a-dire une classe d'algebres multi-sortes qui satisfont les axiomes.

Historiquement, les speci cations algebriques sont issues de deux courants dis-tincts : l'algebre universelle en mathematiques [Coh65] et les types abstraits en genie logiciel. L'origine des types abstraits gure dans le concept de classe du langage de programmation Simula [DN66, BDMN73]. Un type abstrait, compose d'un ensemble de domaines de valeurs accompagne d'un ensemble d'operations sur ces domaines de valeurs, permet de structurer les donnees. L'idee de base en speci cation alge-brique consiste a modeliser un type abstrait par une algebre. Cette idee est motivee par l'analogie entre un type abstrait et une algebre multi-sortes sur une signature. L'interpretation des sortes de la signature correspond en e et aux domaines de va-leurs, et l'interpretation des operateurs de la signature correspond aux operations sur ces domaines de valeurs.

Les premiers travaux sur les speci cations algebriques datent du milieu des an-nees 1970, avec les travaux de B. Liskov et S. Zilles [LZ74], de J. Guttag [Gut75,

1

(15)

Gut77] et du groupe ADJ (compose de J. Goguen, J. Thatcher, E. Wagner et J. Wright) [GTWW75, GTWW77, GTW78]. Au depart, les speci cations alge-briques etaient basees sur la logique equationnelle. Puis ont ete introduites d'autres logiques, comme les clauses de Horn, la logique du premier ordre ou encore les speci cations avec contraintes [EM90]. D'autres extensions ont permis de prendre en compte la notion d'erreur [BBC86, BL93]. J. Goguen et R. Burstall ont pro-pose la theorie des institutions, qui o re un cadre general pour etudier les di e-rents formalismes de speci cation algebrique [GB84, GB90]. Il existe beaucoup de references sur les speci cations algebriques, parmi les bonnes syntheses, citons [EM85, MG85, Wir90].

Ces travaux ont donne naissance a de nombreux langages de speci cation alge-brique, comme Clear [BG77, BG80], ACT ONE et ACT TWO [EM85, EM90], ASL [SW83, Wir86], OBJ2 et OBJ3 [FGJM85, GKK+87], PLUSS [Gau84, Bid89], LPG [Ber83, BE86, B+90], GLIDER [Huf92]. On trouve un bon panorama des di erents langages de speci cation algebrique existants dans [Wir94].

2 Theorie des categories

La theorie des categories repose sur deux notions: l'objet et la eche, contrai-rement a la theorie des ensembles qui repose sur le seul concept d'ensemble. En theorie des ensembles, un ensemble est caracterise de facon interne par ses elements, alors qu'en theorie des categories, un objet est caracterise de facon externe par les relations entretenues par l'intermediaire des eches avec les autres objets. Pour cette raison, un grand nombre de concepts de theorie des categories sont de nis a un isomorphisme pres.

La theorie des categories a ete inventee au debut des annees 1940 par S. Mac Lane et S. Eilenberg. Bien que certains mathematiciens aient doute de l'inter^et des categories, ce formalisme a joue un r^ole uni cateur en mathematiques, en particulier en algebre et en topologie. Cette theorie de nit les di erents concepts de facon generale et abstraite, independamment de tout modele. (C'est pour cette raison que ses detracteurs l'on surnommee \non-sens abstrait2".) La theorie des categories a commence a interesser les informaticiens au debut des annees 1970. Par exemple, la decouverte de l'equivalence entre le -calcul type et les categories cartesiennes fermees a permis de donner des solutions elegantes au probleme des modeles du -calcul, lie a celui de la resolution des equations de domaines [SP77, Wan79, LS86]. Il existe de facon generale des liens tres etroits entre la theorie des types et la theorie des categories (cf. par exemple [See84, Poi92]).

L'ouvrage de reference sur les categories est le livre de S. Mac Lane [McL71], plut^ot destine aux mathematiciens. Pour les informaticiens, le livre de M. Barr et C. Wells [BW90] est plus accessible, car les di erents concepts sont presentes de facon assez elementaire et les exemples sont tires de l'informatique. Il existe beaucoup d'autres ouvrages qui traitent des categories, par exemple [MB70, AM75, Gol79, AL91].

Le formalisme des speci cations algebriques s'appuie largement sur la theorie 2

(16)

des categories. Historiquement, le developpement des speci cations algebriques (en particulier les travaux du groupe ADJ) a ete in uence par les theories algebriques de Lawvere. Les theories algebriques de Lawvere permettent de modeliser les categories d'algebres en faisant abstraction de la syntaxe, c'est-a-dire independamment de la notion de signature [Law63, BW85, WBT85].

D'autre part, d'un point de vue pratique, on peut justi er l'utilisation des cate-gories par l'importance des morphismes de speci cations, qui jouent un r^ole essentiel en speci cation algebrique. Intuitivement, un morphisme de speci cations exprime une relation entre deux speci cations. Pour prendre un exemple mathematique, tout anneau peut ^etre considere comme un groupe, ce qui signi e qu'il existe un morphisme de speci cations entre la speci cation des groupes et la speci cation des anneaux. Il peut exister plusieurs morphismes de speci cations entre deux speci -cations. Par exemple, on peut considerer tout anneau comme un monode de deux facons di erentes, en considerant soit l'operateur additif, soit l'operateur multiplica-tif de l'anneau comme l'operateur du monode. Preciser quel operateur de l'anneau sera l'operateur du monode consiste exactement a de nir un morphisme de speci -cations entre la speci cation des monodes et la speci cation des anneaux.

3 Modularite

Le developpement de speci cations de grande taille necessite un decoupage des speci cations en plusieurs speci cations plus simples, appelees modules. Chaque mo-dule correspond a un probleme plus simple a resoudre. Cette methode, qui consiste a \diviser pour mieux regner" est classique en genie logiciel [LCW85]. De facon generale, la modularite permet d'une part le developpement independant des di e-rents modules, et d'autre part une meilleure comprehension de chaque module, ce qui facilite la maintenance.

Cette vision de la modularite correspond a une approche descendante de reso-lution de probleme, puisque l'accent est mis sur la decomposition du probleme en plusieurs sous-problemes plus simples. Dans notre travail, notre conception de la modularite est au contraire ascendante. Nous nous interessons en e et a la compo-sitiondes modules, c'est-a-dire a l'assemblage de modules elementaires permettant de construire des modules plus complexes. Ces modules elementaires sont regroupes dans une bibliotheque, la bibliotheque des modules de base. L'inter^et de la composi-tion est de permettre la reutilisacomposi-tion des modules de base, preconisee en genie logiciel pour reduire les erreurs et les co^uts de developpement (cf. par exemple [Ber90]).

Un aspect de la modularite est la possibilite de de nir des speci cations gene-riques, c'est-a-dire parametrees [SST92]. En e et, une speci cation parametree peut ^etre instanciee de di erentes manieres par d'autres speci cations, ce qui evite de re-ecrire une nouvelle speci cation pour chaque variation d'un m^eme probleme. Le but est alors de de nir des speci cations generiques susamment generales pour per-mettre de speci er le maximum de problemes par une simple instanciation [Mar95]. Le developpement modulaire des speci cations est assiste dans les langages de speci cation algebrique par des operateurs de construction3 comme le renommage,

3

(17)

l'enrichissement ou l'abstraction [ST88, Wir90]. Ces primitives permettent de cons-truire de nouvelles speci cations a partir de speci cations deja de nies. La composi-tion de modules est un cas particulier d'operateur de construccomposi-tion de speci cacomposi-tions, qui peut ^etre modelise par des colimites de diagrammes. Intuitivement, en theorie des categories, un diagramme permet de decrire un assemblage de plusieurs objets en precisant des partages entre certains objets a l'aide de eches. La colimite du diagramme permet de considerer le resultat de cette composition. Cette utilisation generale des colimites pour modeliser l'interconnexion de systemes a ete proposee par J. Goguen [Gog73, Gog92].

Un cas particulier de colimite est la somme amalgamee4, qui correspond a l'as-semblage de deux objets B et C, en speci ant une partie commune entre ces deux objets par un objet partage A et deux eches f : A ! B et g : A ! C. En speci- cation algebrique, la somme amalgamee peut modeliser d'une part la composition de deux speci cations qui ont une partie commune, et d'autre part l'instanciation d'une speci cation generique.

4 Notre travail

Nous etudions la composition des speci cations algebriques modulaires. Nous supposons que nous disposons d'une bibliotheque de speci cations et de morphismes de speci cations de base, qui forment une categorie de base, en general appelee C

0 dans ce memoire. Les speci cations de base sont monolithiques, c'est-a-dire non decomposees. Notre travail repose sur une idee classique en speci cation algebrique: la composition des speci cations peut ^etre modelisee par des colimites de diagrammes nis. Nous proposons donc de considerer une speci cation modulaire comme une speci cation obtenue a partir de speci cations et morphismes de speci cations de base par une suite de constructions de colimites.

Notre travail est independant de la logique sous-jacente du langage de speci -cation algebrique. Nous pouvons donc nous placer dans le cadre general des ins-titutions. Nous devons uniquement supposer que la categorie des speci cations est niment cocomplete, c'est-a-dire que tout diagramme ni a une colimite.

D'un point de vue syntaxique, c'est-a-dire en ce qui concerne le langage utilise pour decrire ces constructions, nous ne considerons pas toutes les colimites nies, mais uniquement les sommes amalgamees. En e et, avec la speci cation vide, objet initial de la categorie des speci cations, les sommes amalgamees permettent de si-muler la construction de toute colimite nie. Nous proposons la construction d'une categorie de termes, appelee Terme(C

0), pour representer la composition de speci -cations modulaires en utilisant les sommes amalgamees.

En theorie des categories, on travaille le plus souvent a un isomorphisme pres. C'est une consequence de la caracterisation externe des objets dans ce formalisme. Les colimites, par exemple, sont de nies au depart a un isomorphisme pres. La de nition d'une syntaxe est au contraire un probleme typiquement informatique, qui necessite de faire des choix de representation. C'est la raison pour laquelle nous devons utiliser des sommes amalgamees choisies au moment de la de nition

4En anglais,

(18)

du langage d'expression pour les speci cations modulaires. Ces choix de sommes amalgamees correspondent a des choix de codage.

Un terme correspond donc a une speci cation modulaire construite par une suc-cession de sommes amalgamees. Dans une seconde etape, nous proposons d'inter-preter un terme par un diagramme dont la colimite est la speci cation modulaire denotees par ce terme. Nous considerons les diagrammes comme une semantique pour les speci cations modulaires, par opposition aux termes qui constituent la syn-taxe.

L'interpretation des termes par des diagrammes necessite de de nir une categorie de diagrammes puisqu'il faut non seulement associer a toute speci cation modulaire un diagramme, mais aussi associer a tout morphisme de speci cations modulaires un morphisme de diagrammes. La de nition d'un diagramme est relativement stan-dard en theorie des categories, bien qu'il existe quelques nuances. La de nition de morphisme de diagrammes est moins connue, en particulier dans la litterature in-formatique ou sont utilisees des de nitions moins generales que celle dont nous nous servons ici.

Nous presentons deux categories de diagrammes, DIAGR(C

0) et diagr( C

0). Les objets de DIAGR(C

0) sont des diagrammes, et les eches de DIAGR( C

0) des mor-phismes de diagrammes. La categorie diagr(C

0) est obtenue a partir de DIAGR( C

0) par un quotient par une relation de congruence sur les eches de DIAGR(C

0). C'est la categorie diagr(C

0) qui possede les proprietes theoriques interessantes. Il s'agit en e et d'une categorie niment cocomplete, c'est-a-dire que tout diagramme ni sur diagr(C

0) a une colimite nie dans diagr( C

0). D'autre part, diagr( C

0) est une completion par colimites nies de la categorie C

0. Sur le plan pratique, comme les eches de diagr(C

0) sont des classes d'equivalence de morphismes de diagram-mes, on travaille en realite avec des representants, c'est-a-dire avec des eches de DIAGR(C

0). La categorie DIAGR( C

0) permet donc la manipulation e ective des eches de diagr(C

0).

La representation des termes par des diagrammes est de nie par un foncteur D: Terme(C

0)

!diagr(C 0) entre les categories Terme(C

0) et diagr( C

0). Nous montrons que ce foncteur de nit une equivalence de categories entre Terme(C

0) et diagr( C

0), ce qui signi e que bien qu'elles ne soient pas isomorphes, ces categories ont neanmoins essentiellement la m^eme structure.

Apres avoir represente les speci cations modulaires par des diagrammes, nous nous interessons au probleme de l'equivalence entre deux speci cations modulaires. Deux speci cations modulaires sont considerees comme equivalentes lorsque celles-ci sont isomorphes en tant que colimites de diagramme. Detecter cet isomorphisme consiste en fait a detecter un isomorphisme entre deux diagrammes dans la categorie diagr(C

0). Nous appelons cet isomorphisme un isomorphisme de construction, parce qu'il ne depend pas de la de nition e ective des speci cations de base, mais seule-ment de la maniere dont celles-ci sont combinees pour construire les speci cations modulaires. Dans l'hypothese ou la categorieC

0est nie et ne comporte pas de cycle, nous proposons un algorithme pour detecter si deux diagrammes sont isomorphes.

(19)

Des resultats partiels concernant l'interpretation des termes par des diagrammes et la detection d'isomorphismes de construction ont ete presentes dans [Ori94, Ori95].

5 Comparaisons avec d'autres travaux

Categories de diagrammes

La de nition de diagramme est, a quelques nuances pres, standard. Chez S. Mac Lane [McL71], un diagramme sur une categorie C est un foncteur d'une categorie J vers C. La de nition de M. Barr et C. Wells [BW90], est moins generale, puisqu'un diagramme est un morphisme de graphes d'un graphe vers le graphe sous-jacent de C. Nous utilisons une de nition \intermediaire": pour nous, un diagramme est un foncteur d'une categorie librement engendree sur un graphe vers C. Partir d'un graphe nous permet de rester proche de l'informatique. Par contre, nous ne souhaitons pas nous restreindre a une petite categorie C.

La de nition de morphisme de diagrammes est beaucoup moins standard. Par exemple dans Clear, un morphisme de diagrammes, appele morphisme base, corres-pond uniquement a une inclusion entre deux diagrammes.

La de nition proposee par A. Tarlecki, R. Burstall et J. Goguen dans [TBG91], bien que plus generale que celle utilisee dans la semantique du langage Clear, n'est pas encore susamment generale pour notre travail. En e et, cette de nition ne permet pas de representer tout morphisme de speci cations modulaires par un mor-phisme de diagrammes.

La de nition de morphisme de diagrammes que nous utilisons n'est pas nouvelle en theorie des categories. Une version duale de la categorie diagr(C

0) est par exemple utilisee par M. Barr et C. Wells dans [BW94]. Neanmoins, la reformulation de la de nition de categorie de diagrammes que nous proposons dans le chapitre 2 presente un inter^et en informatique, d'une part parce que la categorie DIAGR(C

0) permet de manipuler e ectivement les morphismes de diagrammes, et d'autre part parce que les categories DIAGR(C

0) et diagr( C

0) sont peu connues dans cette discipline.

Calculs de colimites

R. Burstall et D. Rydeheard proposent des algorithmes pour calculer certains concepts de theorie des categories [Bur80, BR86], en particulier les colimites de diagrammes. Le calcul general de colimite est parametre par certaines colimites, en l'occurrence un objet initial, des sommes et des coegalisateurs, qui permettent d'evaluer la colimite d'un diagramme quelconque. Ainsi, ayant de ni l'objet initial, la somme et le coegalisateur par exemple dans la categorie des ensembles

Set

, on en deduit un moyen de calculer la colimite d'un diagramme quelconque dans

Set

. Cet algorithme est en fait base sur une preuve du resultat suivant: si une categorie a un objet initial, des sommes et des coegalisateurs, alors celle-ci est niment cocomplete. Notre travail est base sur un theoreme similaire: si une categorie a un objet initial et des sommes amalgamees alors celle-ci est niment cocomplete. Notre travail est di erent, dans la mesure ou nous ne cherchons pas a calculer des colimites dans une categorie xee. En particulier, nous nous interessons au probleme general de l'isomorphisme entre deux diagrammes, qui correspond a un isomorphisme entre

(20)

leurs colimites respectives. Cet isomorphisme est independant de la categorie sur laquelle ces diagrammes sont construits.

Utilisation des colimites en speci cation algebrique

L'utilisation des colimites pour representer l'assemblage de speci cations est loin d'^etre nouvelle. R. Burstall et J. Goguen ont presente cette idee dans la semantique du langage de speci cation Clear [BG80]. Dans Clear, la composition de plusieurs speci cations qui partagent un environnement commun, appelees theories basees, est en e et formalisee par la colimite d'un diagramme.

Les colimites ont ensuite ete assez intensivement utilisees en speci cation alge-brique. La somme amalgamee en particulier permet de modeliser l'instanciation de speci cations generiques [TWW82, EM85]. H. Ehrig, R. Jimenez et F. Orejas [EJO93] ont egalement presente une forme plus generale d'instanciation a l'aide de sommes amalgamees multiples5, nouvel exemple de colimite.

Syntaxe pour les constructions modulaires

J. Bergstra, J. Heering et R. Klint [BHK90] d'une part, et G. Renardel de Lava-lette [Ren91] d'autre part, ont propose de structurer les operateurs de construction de speci cations sous forme d'algebres de modules. Une algebre de modules est un langage permettant d'ecrire des expressions de composition des speci cations al-gebriques. Cette approche est voisine de notre travail sur le langage Terme(C

0), puisque le probleme de la composition des speci cations algebriques est aborde d'un point de vue syntaxique, et permet de comparer di erentes speci cations modulaires. Par contre, nous ne nous interessons pas aux m^emes operateurs de constructions de speci cations, puisque nous ne considerons que les constructions de colimites.

Notre syntaxe pour representer les speci cations algebriques modulaires est large-ment inspiree des travaux de J.-C. Reynaud, qui a propose un systeme de types pour representer les constructions de colimites [Rey90a, Rey90b, Rey93]. Ce systeme est fonde sur les theories algebriques generalisees de Cartmell [Car86] qui permettent de speci er des types dependants, c'est-a-dire des types parametres par des termes. Les types dependants ont ete egalement utilises par T. Streicher et M. Wirsing [SW91] pour modeliser la composition de speci cations algebriques modulaires. D'autre part, H. Ehrig, R. Jimenez et F. Orejas ont egalement propose une syntaxe pour les speci cations algebriques modulaires dans [EJO93]. Cette syntaxe est en partie basee sur des constructions de sommes amalgamees.

La principale diculte en ce qui concerne la de nition d'une syntaxe pour les constructions de colimites est le probleme de circularite entre la de nition d'une part des objets et des eches de Terme(C

0) et d'autre part de l'egalite entre deux eches de Terme(C

0). En e et, il existe une eche, que nous appelons

up dans ce memoire, entre une somme amalgamee et un objet a condition qu'une egalite entre deux eches deTerme(C

0) soit veri ee. La de nition des eches

updepend donc de la de nition de l'egalite des eches dans Terme(C

0), qui elle-m^eme presuppose que les eches ont ete de nies.

5

(21)

J.-C. Reynaud contourne le probleme en proposant une de nition concrete, c'est-a-dire semantique, d'une categorie librement engendree par objet initial choisi et sommes amalgamees choisies [Rey93]. H. Ehrig, R. Jimenez et F. Orejas [EJO93] ne de nissent pas de syntaxe pour les eches up. La syntaxe qu'ils proposent ne permet donc pas d'obtenir une categorie niment cocomplete.

Une solution pour speci er une categorie niment cocomplete sans utiliser d'ega-lites pour de nir les eches a ete presentee par F. Cury dans [Cur91]. F. Cury propose de dedoubler les eches upen deux eches dont la de nition ne depend pas d'une egalite. Ces deux eches, qui sont des exemples particuliers de eches up, permettent de reconstruire a posteriori toutes les echesup.

La solution que nous proposons consiste a strati er la construction de Terme(C 0) en une suite de categoriesC

i. L'existence d'une eche

updans la categorieC

i depend uniquement d'egalites dans la categorie C

i,1. Nous evitons ainsi le probleme de circularite entre la de nition des eches et la de nition des egalites.

Notre categorie Terme(C

0) peut ^etre comparee au type d'une esquisse, introduit par C. Ehresmann [Ehr68]. Dans les travaux de D. Duval et J.-C. Reynaud [DR94a, DR94b], le type d'une esquisse est une categorie librement engendree a partir d'un graphe par sommes et produits. Par consequent, la construction du type d'une esquisse est basee sur les categories a sommes et produits alors que la construction de Terme(C

0) est basee sur les categories a colimites nies. D'autre part, une esquisse contient des c^ones et coc^ones distingues, qui speci ent certaines limites ou colimites. Par contre, dans la construction de Terme(C

0) que nous proposons, il n'est pas possible de speci er des sommes amalgamees distinguees dans la categorie de base C

0.

6 Plan de ce memoire

Le plan de ce memoire est le suivant. Le chapitre 1 introduit les speci cations algebriques modulaires, presente le probleme de la composition des speci cations et pose le cadre general de notre travail. Apres quelques rappels sur les speci ca-tions algebriques, nous proposons plusieurs exemples de speci caspeci ca-tions modulaires d'anneaux, en utilisant quelques speci cations et morphismes de speci cations de base. Cet exemple academique presente d'une part la syntaxe pour les construc-tions modulaires, et d'autre part le probleme de l'isomorphisme de construction entre deux speci cations modulaires.

Le chapitre 2 contient les bases theoriques de notre travail. Nous e ectuons quelques rappels de theorie des graphes en section 2.1, puis de theorie des categories en section 2.2. En n, en section 2.3, nous presentons les notions de diagrammes, de colimites nies ainsi que les categories de diagrammes DIAGR(C

0) et diagr( C

0). Nous montrons que la categorie diagr(C

0) est niment cocomplete, et que diagr( C

0) est une completion par colimites nies deC

0.

Le chapitre 3 est consacre a la syntaxe des speci cations modulaires. Dans ce chapitre, nous proposons une construction strati ee de la categorie Terme(C

0) des termes, qui fournit un langage pour representer les speci cations et morphismes de speci cations modulaires. Nous montrons d'une part que Terme(C

0) est une cate-gorie niment cocomplete, et d'autre part que Terme(C

(22)

conser-vatrice de C

0. En n, nous construisons, a partir de Terme( C

0), une categorie L(C

0) librement engendree par objet initial choisi et sommes amalgamees choisies surC

0. Dans le chapitre 4, nous interpretons les termes denotant des speci cations modu-laires par des diagrammes. Cette interpretation permet d'obtenir une representation plus abstraite des speci cations modulaires que celle donnee par les termes, parce que certaines etapes speci ques de la construction sont eliminees. Nous montrons que l'interpretation des termes par les diagrammes de nit une equivalence entre les categories Terme(C

0) et diagr( C

0). Ce resultat nous permet de deduire que toute speci cation modulaire est isomorphe a la colimite du diagramme qui la represente. Le chapitre 5 est une application de cette representation des speci cations mo-dulaires par des diagrammes. Nous proposons de detecter un isomorphisme de cons-truction entre deux speci cations modulaires en detectant un isomorphisme entre leurs diagrammes correspondants. Nous presentons un algorithme qui permet, dans l'hypothese ou la categorie de base C

0 est nie et ne comporte pas de cycle, de detecter si deux diagrammes sont isomorphes.

(23)
(24)

Motivation

Le but de ce chapitre est de presenter le probleme de la composition des spe-ci cations modulaires. Nous etudions di erentes spespe-ci cations modulaires des an-neaux, construites a partir de quelques speci cations de base. Cet exemple est decrit en utilisant le langage de speci cation LPG (Langage pour la Programmation Ge-nerique) developpe par D. Bert et R. Echahed [BE86, B+90]. Nous introduisons informellement une syntaxe pour representer les speci cations modulaires, et expli-quons | egalement de facon informelle | qu'une speci cation modulaire peut ^etre consideree comme la colimite d'un diagramme. Nous motivons ensuite l'inter^et des isomorphismes de construction. En n, nous posons le cadre general de notre travail.

1.1 Preliminaires

Dans cette partie, nous rappelons quelques notions elementaires de speci cation algebrique, en particulier les de nitions de signature, morphisme de signatures, al-gebre, morphisme d'algebres, equation et algebre satisfaisant une equation. Cette presentation, loin d'^etre exhaustive, est inspiree de [GB90] et de [EM85].

De nition 1.1 (S-ensemble etS-application) Soit un ensemble S. Un S-ensembleA est une famille indicee parS d'ensembles disjoints (A

s)s2S. Une S-application f entre deux S-ensembles A et B, notee f : A ! B, est une famille indicee parS d'applications (f

s: A

s !B

s)s2S.

De nition 1.2 (Ensemble des cha^nes nies) Soit un ensembleA. L'ensemble des cha^nes nies surA est l'ensemble

A  = 1 [ n=0 A n : Notations:

 La cha^ne vide est notee".

 La cha^ne composee des elements s 1 ;s 2 ;:::;s nest notee s 1 s 2 :::s n.

(25)

L'ensemble des cha^nes nies non vides surA est A += A  A= 1 [ n=1 A n :

Les operations + et  s'etendent aux applications entre deux ensembles. Soit une application f : A!B. On de nit les applicationsf

 : A  ! B  et f +: A + ! B + de la facon suivante. f ( ") ="; f ( a 1 :::a n) = f(a 1) :::f(a n) (pour n1); f +( a 1 :::a n) = f(a 1) :::f(a n) (pour n1): On veri e facilement que pour tout ensembleA, on a

(id A)  = id A  (id A) + = id A +

et pour toutes applicationsf :A!B et g:B !C, on a (gf)  = g  f  (gf) += g + f + :

Ces deux proprietes signi ent que  et + sont des foncteurs  :

Set

!

Set

et +:

Set

!

Set

dans la categorie des ensembles

Set

.

Une signature comprend les symboles utilises pour former des expressions. Plus precisement, une signature est composee d'un ensemble de symboles de sortes, qui representent des types de donnees, et d'un ensemble de symboles d'operateurs, qui representent des operations sur ces donnees. A chaque symbole d'operateur est associe un pro l, qui represente le type des donnees d'entree et de sortie.

De nition 1.3

(Signature multi-sortes) Une signature multi-sortes, ou plus simple-ment signature, est un triplet (S;;$) ou

 S est un ensemble ni, dont les elements sont appeles sortes;  est un ensemble ni, dont les elements sont appeles operateurs ;  $ est une application$ : !S

+, qui a chaque operateur

! de associe une cha^ne non vide sur S, appelee pro l de!.

Notation: si$(!) = s 1 :::s n s (n0), on note ! :s 1 ;:::s n ! s. Sin= 0, on dit que! est une constante, et on note! : !s.

Remarque 1.1

Une signature est souvent de nie comme un ensemble de sortes S accompagne d'une famille indicee parS



S d'ensembles d'operateurs. Nous avons prefere considerer ici un unique ensemble aplati d'operateurs, le pro l etant decrit par l'application $ : ! S

+. Nous avons choisi cette de nition parce qu'elle permet de de nir facilement la somme amalgamee de deux signatures a partir de la de nition de la somme amalgamee de deux ensembles (cf. section 1.4).

(26)

1.1. PRELIMINAIRES 25

Exemple 1.1

(Exemples de signatures)

 La signature la plus simple est la signature vide, notee 

?, telle que l'ensemble des sortes et l'ensemble des operateurs sont vides.

 Un exemple classique de signature est la signature 

Nat = (SNat;Nat;$Nat) des entiers naturels ouSNat et Nat et $Nat sont de nis de la facon suivante:

SNat =

fnatg; Nat =

f0;succ;+g; $Nat(0) = nat ; $Nat(succ) = nat nat ; $Nat(+) = nat nat nat:

Dans le langage de speci cation LPG, les noms de sortes sont introduits par le mot clesorts et les operateurs par le mot cleoperators. La signature 

Nat est donc de nie en LPG par:

sorts nat

operators 0 : -> nat

succ : nat -> nat + : nat, nat -> nat

 Voici un autre exemple de signature, la signature 

M des monodes. Dans cette signature, on a une seule sorte s, une constante 1 et un operateur binaire . En LPG, on peut de nir la signature M de la facon suivante:

sorts s

operators 1 : -> s * : s, s -> s

Un morphisme de signatures entre deux signatures  et 0 associe a toute sorte de  une sorte de 0 et a tout operateur de  un operateur de 0, en conservant les pro ls des operateurs.

De nition 1.4

(Morphisme de signatures) Soit deux signatures  = (S;;$) et 0 = (S0;0;$0). Un morphisme de signaturesm de  vers 0, notem: 

! 0 est un couple (mS;m) ou

 m

S est une applicationmS :S !S

0;  m

est une applicationm :

! 0; tel que$0 m =mS+ $. Detaillons un peu la condition$0

m

=mS+

$. Considerons un operateur !:s1;:::;sn

(27)

$0(m(!)) = mS+($(!)) = mS+(s 1:::sns) = mS(s 1):::m S(s n)m S(s) L'operateur m(!) de 0 a donc pour pro lm(!) :mS(s

1);:::;m S(s

n) !m

S(s). On peut composer les morphismes de signatures. Soit trois signatures

 = (S;;$) 0= (S0;0;$0) 00= (S00;00;$00) et deux morphismes de signatures

m= (mS;m) :  ! 0 n= (nS;n) : 0 ! 00:

Pour composer m et n, il sut de composer les applications sur les sortes et les applications sur les operateurs. Autrement dit,

nm= (n S m S;n m ): Cela de nit bien un morphisme de signatures car

$00 n m = nS+ $ 0 m (n: 0 ! 00 morphisme de signatures) = nS+ m S+ $ (m: ! 0 morphisme de signatures) = (nS m S)+ $ ( + est un foncteur)

On a une categorie des signatures, notee

Sig

, dont les objets sont les signatures, et les eches sont les morphismes de signatures.

Exemple 1.2

(Exemples de morphismes de signatures)

 Pour toute signature  = (S;;$), il existe un morphisme de signatures de la signature vide ? vers . Ce morphisme, notej = (j

S ;j

), est constitue de l'application vide de l'ensemble vide des sortes versS, et de l'application vide de l'ensemble vide des operateurs vers . De plus, ce morphisme est unique. Dans la categorie des signatures

Sig

, ? est un

objet initial puisqu'il existe une unique eche de ? vers tout autre objet de

Sig

.

 On a un morphisme de signatures de la signature des monodes vers la signature des entiers naturelsm: M

!

Nat, qui associe la sortesde M a la sorte nat de Nat, la constante 1 a la constante 0, et l'operateur binaire

a l'operateur binaire +. mS(s) = nat; m(1) = 0; m( ) = +:

(28)

1.1. PRELIMINAIRES 27

Soit une signature . De nir une algebre sur , ou -algebre, consiste a inter-preter les sortes de  par des ensembles, et les operateurs de  par des applications entre ces ensembles. Une -algebre est egalement appelee modele ou interpretation de la signature .

De nition 1.5 (-algebre) Soit une signature  = (S;;$). Une -algebre A est de nie par:

 un S-ensembleA;

 pour tout operateur !:s 1 ;s 2 ;:::;s n !s2, une application ! A: A s1 A s2 A sn !A s : Si! est une constante !: !s, !

A est un element de A

s.

De nition 1.6 (Morphisme d'algebres) Soit une signature  = (S;;$) et deux algebres A et B. Un morphisme d'algebresh de A vers B, note h :A !B est une S-application (h

s: A

s !B

s)s2S telle que pour tout operateur ! :s 1 ;s 2 ;:::;s n !s de , pour tout n-uplet (a

1 ;a 2 ;:::;a n) de A s 1 A s 2 A sn, h s( ! A( a 1 ;a 2 ;:::a n)) = ! B( h s 1( a 1) ;h s 2( a 2) ;:::;h s n( a n)) :

Etant donne une signature , on a une categorie de -algebres, notee Alg(), dont les objets sont les -algebres et les eches sont les morphismes de -algebres.

Une algebre importante est l'algebre des termes, qui permet de former des ex-pressions a partir des symboles de la signature. Nous devons d'abord de nir la notion de variable sur une signature.

De nition 1.7 (Ensemble de variables sur une signature)

Soit une signature  = (S;;$). Un ensemble X de variables sur la signature  est unS-ensemble ni, tel que pour tout elements2S,X

s est distinct de l'ensemble des operateurs .

De nition 1.8 (Algebre des termes) Soit une signature  = (S;;$) et un en-semble de variables X sur . L'algebre des termes T

(

X) est de nie de la facon suivante.

 Pour toute sorte s2S, T (

X)

s est le plus petit ensemble tel que: { x2X s ) x2T ( X) s; { !:s 1 ;s 2 ;:::;s n !s2; t i 2T ( X) s i ( i= 1;:::;n) ) !(t 1 ;t 2 ;:::;t n) 2T ( X) s : Les elements deT ( X)

s sont appeles termes de sorte s.  L'interpretation d'un operateur !:s

1 ;s 2 ;:::;s n !s2 est l'application ! T  (X) : T ( X) s 1 :::T ( X) sn ! T ( X) s (t 1 ;:::;t n) 7! !(t 1 ;:::;t n) :

(29)

Lorsque l'ensemble des variablesX est vide, on obtient l'algebre des termes fermes T=T(

?).

Une a ectation d'un ensemble de variables X dans une -algebre A associe a toute variable de Xs un element de As. Autrement dit, une a ectation a de X

dansA est une S-application a :X !A.

L'algebre des termes a une propriete importante: c'est une algebre libre dans la classe des -algebres. Cela signi e que toute a ectation de X dans une algebre A s'etend de facon unique en un morphisme d'algebres deT(X) vers A.

Theoreme 1.1

(L'algebre T(X) est libre dans Alg()) Notons i : X ! T

(X) l'inclusion de X dans T(X). Soit une -algebre A. Pour toute a ectation a : X ! A, il existe un unique morphisme d'algebres a :T(X)

!A tel que a i= a .

Une equation est tout simplement composee d'un ensemble de variables et de deux termes.

De nition 1.9

(-equation) Soit une signature  = (S;;$) et un ensemble de variablesX sur . Une -equation sur  de sorte s est un triplet (X;t1;t2) ou t1 et t2 sont des elements deT(X)s.

En LPG, une signature peut ^etre accompagnee d'un ensemble d'equations. Toutes ces equations ont le m^eme ensemble de variables, qui sont introduites une seule fois par le mot clevariables. Ensuite, les -equations (X;t

1;t2) sont introduites par le mot cleequationset notees t

1 ==t2.

De nition 1.10

(Algebre satisfaisant une equation, -E-algebre)

Soit une signature  = (S;;$). On dit qu'une -algebre A satisfait une equation (X;t1;t2) si et seulement si pour toute a ectation a :X

!A, a (t

1) = a (t2). Etant donne un ensemble d'equations E sur , une -E-algebreest une -algebre qui satisfait toutes les equations deE.

De nition 1.11

(Fermeture semantique d'un ensemble d'equations)

Soit une signature  et un ensemble d'equationsE. La fermeture semantique E de E est l'ensemble des equations sur  qui sont satisfaites par toute -E-algebre.

De nition 1.12

(Extension aux termes d'un morphisme de signatures)

Soit deux signatures  = (S;;$) et 0 = (S0;0;$0), ainsi qu'un morphisme de signatures m :  ! 

0. Soit un ensemble de variables X sur , dont les elements sont distincts des constantes de 0.

La traduction de X par le morphisme de signaturesm : ! 

0 est leS0-ensemble X# tel que pour toute sortes0 deS0,

X# s0 = [ s0 =m S (s) Xs:

(30)

1.2. SPECIFICATIONS 29

L'extension du morphisme de signatures m :  ! 

0 est une famille indicee par S d'applications m# = (m # s : T(X)s ! T  0(X #) mS (s))s

2S. Pour toute sorte s2S, l'applicationm # s : T(X)s ! T  0(X #) mS

(s) est de nie inductivement sur la structure des elements deT(X)s de la facon suivante.

 8x2Xs; m # s(x) =x(x2X # mS (s));  8!:s 1;s2;:::sn !s; 8ti2T (X)s i (i= 1;:::;n), m# s(!(t1;t2;:::;tn)) =m (!)(m # s1(t 1);m # s2(t 2);:::;m # sn(tn)): Etant donne un termet2T

(X)s, m

#(t) =m #

s(t) est appele traduction detpar m.

Exemple 1.3

Considerons le morphisme de signaturesm: M !

Nat et le terme 1x deT



M(X). La traduction du terme 1

xsur M parm est le terme sur  Nat m#(1

x) =m

#(1) +m#(x) = 0 +x:

De nition 1.13

(Traduction d'une equation par un morphisme de signatures) Soit deux signatures  = (S;;$) et 0 = (S0;0;$0), ainsi qu'un morphisme de si-gnaturesm: !

0. Soit une equation (X;t

1;t2) sur . La traduction de l'equation (X;t1;t2) par le morphisme de signaturesmest l'equation (X

#;m#(t 1);m

#(t 2)) sur la signature 0.

Exemple 1.4

Considerons par exemple l'equation (fxg;1x;x) sur la signature M. La traduction de cette equation par le morphisme de signaturesm: M !

Nat est l'equation (fxg;0 +x;x) sur 

Nat.

1.2 Speci cations

Dans ce paragraphe, nous presentons les speci cations algebriques, qui consistent en une signature et un ensemble de formules. Dans l'exemple des anneaux developpe dans ce chapitre, les formules que nous considerons sont uniquement des equations. Pour cette raison, nous nous contentons de de nir des speci cations equationnelles. Nous verrons en section 1.7 que cette hypothese peut ^etre a aiblie en se placant dans le cadre general des institutions.

De nition 1.14

(Speci cation equationnelle) Une speci cation equationnelle est un couple (;E), ou  est une signature et E est un ensemble de -equations.

De nition 1.15

(Morphisme de speci cations) Un morphisme de speci cations entre deux speci cations (;E) et (0;E0) est un morphisme de signaturesm: 

! 0 tel que pour toute equatione

2E, m #(e)

2E

0. Rappelons que  m

#(e) est la traduction de l'equationepar le morphisme de signatures m;  E

0 est la fermeture semantique deE

0, c'est-a-dire l'ensemble des equations sur 0 qui sont satisfaites dans toute 0-E0-algebre.

(31)

Une autre facon de de nir un morphisme de speci cations est d'imposer que la traduction par m# de toute equation de E appartienne a la theorie equationnelle de E0, c'est-a-dire peut ^etre deduite des equations de E0 par deduction en logique equationnelle. Il s'agit d'une de nition plus syntaxique de la notion de speci cation. Nous avons choisi de suivre la de nition donnee pour les institutions par J. Goguen et R. Burstall dans [GB90]. Dans le cadre des speci cations algebriques equationnelles, les deux de nitions sont equivalentes puisque le systeme de deduction equationnel est complet. En e et, une equation e est satisfaite dans toute -E-algebre si et seulement si on peut deduireedes equations de E par raisonnement equationnel.

On a une categorie des speci cations equationnelles, notee

Spec

, dont les objets sont les speci cations (equationnelles) et les eches sont les morphismes de speci -cations.

Exemple 1.5

 La speci cation la plus simple est la speci cation vide ( ?;

?), construite sur la signature vide ?, et dont l'ensemble des equations est vide. Cette speci ca-tion est initiale dans la categorie des speci caspeci ca-tions, car pour toute speci caspeci ca-tion Sp, il existe un unique morphisme de speci cations de la speci cation vide vers Sp.

 Voici un exemple de speci cation des entiers ecrit en LPG:

type Nat

sorts nat

operators 0 : -> nat

succ : nat -> nat + : nat, nat -> nat variables x, y : nat

equations 0 + y == y

s(x) + y == s(x + y)

Le langage LPG permet de speci er a la fois des types, comme le type Nat, qui ont pour interpretation une algebre initiale (ou pour les types generiques une algebre libre), et des proprietes, qui ont pour interpretation une classe d'algebres satisfaisant les equations de la speci cation. On peut consulter [Rey87] pour avoir une descrip-tion plus detaillee de la semantique de LPG. Dans l'exemple developpe ici, nous utiliserons uniquement les proprietes, sans importation de type, ce qui signi e qu'un modele ou une interpretation d'une speci cation est tout simplement une algebre qui satisfait les equations de la speci cation. Le langage LPG permet egalement de declarer des morphismes de speci cations. Un morphisme d'une speci cation Sp vers une speci cationSp0 est de ni au moment de la declaration du codomaine Sp0 par une instruction commencant par le mot cle

satisfies ou par le mot cle inherits. Le langage LPG permet egalement de considerer les compositions des morphismes de speci cations declares. Les regles de composition de ces morphismes et leur semantique associee ont ete decrits dans [BO95].

(32)

1.2. SPECIFICATIONS 31

Nous allons maintenant presenter les speci cations equationnelles et les mor-phismes de speci cations qui nous permettront de de nir plusieurs speci cations modulaires des anneaux. Rappelons qu'un ensemble A, muni de deux operations binaires + et  est un anneau si et seulement si A muni de l'operation + est un groupe commutatif, A muni de l'operation  est un monode, et l'operation  est distributive par rapport a l'operation +.

Nous commencons par de nir deux speci cations Set B qui comportent unique-ment une signature et aucune equation. La speci cationScontient une sorte unique s. Un modele deS est donc un ensemble quelconque.

S=

property UNE-SORTE

sorts s

La speci cationB contient une sorteset un operateur binaireop. Un modele de Bconsiste donc en un ensemble muni d'une operation binaire. Nous avons egalement speci e un morphisme de speci cations s : S ! B par la proposition satisfies UNE-SORTE[s]dans B. Le morphisme de speci cations s associe la sorte s de S a la sortesde B. B= property OP-BIN sorts s operators op : s, s -> s satisfies UNE-SORTE[s]

Nous de nissons maintenant une speci cation M pour les monodes. La signa-ture de la speci cation M comporte une sorte s, une operation binaire *, et une constante 1. La speci cation M comporte egalement trois equations qui indiquent que 1 est element neutre pour *, et que * est associative. Un modele de M est donc un ensemble muni d'une operation binaire associative et d'un element neutre. Il s'agit donc bien d'un monode.

Nous avons egalement un morphisme de speci cations b : B ! M. Le mor-phisme b associe a la sorte s de B la sorte s de M et a l'operateur op de B l'operateur * de M. Ce morphisme de signatures est bien un morphisme de spe-ci cations, puisque la speci cation de l'operateur binaire B ne comporte aucune equation. M = property MONOIDE sorts s operators * : s, s -> s 1 : -> s variables x, y, z : s equations 1 * x == x x * 1 == x (x * y) * z == x * (y * z) satisfies OP-BIN[s,*]

(33)

Pour obtenir un groupe commutatif, nous devons ajouter une operation inverse i, et la commutativite de l'operateur binaire. Cela nous donne la speci cationG.

G= property GROUPE-COMM sorts s operators + : s, s -> s 0 : -> s i : s -> s variables x, y : s equations x + y == y + x i(x) + x == 0 inherits MONOIDE[s,+,0]

Nous speci ons egalement un morphisme de signatures de la signature de M vers la signature de G, m : M

! 

G, par la proposition

inherits MONOIDE[s,+,0]. Ce morphisme de signatures associe la sorte s de M a la sorte s de G, l'operateur * de M a l'operateur + de G, et la constante 1 de M a la constante 0 de G. Le mot cleinheritssigni e que l'on \recopie" les equations de la speci cationM dans la speci cation G via le morphisme de signatures m#. Autrement dit, G contient implicitement les equations

variables x, y, z : s equations 0 + x == x

x + 0 == x

(x + y) + z == x + (y + z) Par consequent, le morphisme de signatures m : M

! 

G est un morphisme de speci cationsm:M !G.

En n, la proprieteD speci e deux operateurs+et *tels que*est distributif par rapport a+, ainsi que deux morphismes de speci cationsm

+;m :B !D. D = property DISTRIBUTIVITE sorts s operators +, * : s, s -> s variables x, y, z : s equations x * (y + z) == (x * y) + (x * z) satisfies OP-BIN[s,+], OP-BIN[s,*]

Les deux morphismesm+;m: B

!D sont de nis par: m+( s) = s; m+( op) = +; m( s) = s; m( op) = *:

Finalement, pour resumer, nous avons declare cinq speci cationsS, B,M,G,D, et cinq morphismes de speci cations s, b, m, m+, m. Nous pouvons evidemment

(34)

1.3. COMPOSITION DESPECIFICATIONS ENLPG 33

considerer egalement les morphismes de speci cations identites idS, idB, idM, idG et idD sur ces cinq speci cations, ainsi que toutes les compositions possibles pour les morphismes de speci cations. On veri e facilement que l'on obtient ainsi quinze morphismes de speci cations di erents. Autrement dit, nous considerons une cate-gorie de speci cations, appeleeC

0, qui comporte ces cinq speci cations et ces quinze morphismes de speci cations. S B M G D -s b - m -?? m+ m Squelette de la categorieC 0

Nous avons de ni les speci cations equationnelles, qui forment une categorie Spec, ainsi qu'une sous-categorie nieC

0de

Spec, que nous appellerons categorie des speci- cations de base. La categorieC

0represente l'ensemble des speci cations disponibles en bibliotheque. Nous nous interessons ensuite uniquement aux speci cations que l'on peut construire en assemblant des speci cations de base.

1.3 Composition de speci cations en LPG

Une speci cation modulaire est soit une speci cation de base, soit une speci- cation obtenue par un assemblage de plusieurs specispeci- cations modulaires. Nous parlerons de composition de speci cations pour decrire l'assemblage de plusieurs speci cations permettant de construire une speci cation plus complexe.

La composition de speci cations en LPG est realisee par ce qu'on appelle une combinaisonde speci cations. Pour realiser cette operation, il faut de nir une signa-ture | la signasigna-ture de la speci cation resultat | et des morphismes de speci cations des speci cations combinees vers la speci cation resultat.

Nous pouvons par exemple ecrire une speci cation des anneaux en combinant les proprietes MONOIDE, DISTRIBUTIVITEet GROUP-COMMde la facon suivante.

A1= property ANNEAU sorts s operators +, * : s, s -> s 0, 1 : -> s i : s -> s combines MONOIDE[s,*,1], DISTRIBUTIVITE[s,+,*], GROUPE-COMM[s,+,0,i]

(35)

Semantiquement, cette combinaison signi e que chaque fois qu'on a un modele de

MONOIDE, un modele de DISTRIBUTIVITEet un modele deGROUPE-COMM, tels que ces

trois modeles ont la m^eme interpretation pour la sortes, que l'operateur du monode est le second operateur de la distributivite et l'operateur du groupe commutatif est le premier operateur de la distributivite, alors on a un modele de la speci cation

ANNEAU. Ces partages de sorte et d'operateurs sont evidemment cruciaux. Il ne sut

pas d'avoir un monode, un groupe commutatif et deux operateurs distributifs l'un par rapport a l'autre pour avoir un anneau. Par exemple, si nous avions ecrit

combines ... DISTRIBUTIVITE[s,*,+]

a la place de

combines ... DISTRIBUTIVITE[s,+,*]

nous n'aurions pas speci e un anneau. (La multiplication est distributive par rapport a l'addition, et non l'inverse.)

En LPG, les partages entre speci cations, en particulier lors de la construction de combinaisons de proprietes, sont exprimes de facon \implicite", par des morphismes de speci cations. En pratique, on voit que la sorte s est partagee par les trois

speci cations par l'apparition de sdans la de nition des trois morphismes. combines MONOIDE[s,*,1],

DISTRIBUTIVITE[s,+,*], GROUPE-COMM[s,+,0,i]

Dans notre travail, ces partages e ectues lors de la composition des speci cations sont exprimes par des colimites de diagrammes. La colimite est un concept de theorie des categories qui sera presente dans le chapitre 2. Cette construction permet, en particulier dans le cadre des speci cations algebriques, de modeliser l'assemblage de plusieurs objets en rendant explicites certains partages entre ces objets.

Dans l'exemple ci-dessus, la speci cation modulaireA

1 correspond a la colimite du diagramme 1.      G  D  M  B  S  B -mb , , , , ,  m+ @ @ @ @ @ R mbs -m s , , , , ,  bs @ @ @ @ @ R m -b  1 Voici l'interpretation intuitive de ce diagramme:

(36)

1.4. SOMMES AMALGAMEES 35

 Les trois nuds etiquetes par les speci cations M, D et G, qui apparaissent comme des puits du graphe (aucun arc n'a pour source un nud etiquete par M, D ou G) sont les speci cations que l'on assemble.

 Les trois nuds etiquetes par B, S et B indiquent les partages.

{ La sortesest partagee par les trois speci cationsM,D etG. Ce partage est modelise par les morphismes bs : S ! M, m



s : S ! D et mbs: S!G.

{ L'operateur binaire* est partage par les speci cationsM et D. Ce par-tage est modelise par les morphismesb:B!M et m

:B !D.

{ L'operateur binaire+est partage par les speci cationsGetD. Ce partage est modelise par les morphismesmb:B !Get m

+:B !D.

Par la suite, nous privilegions une construction particuliere de colimite: la somme amalgamee. La somme amalgamee correspond a la colimite d'un diagramme qui ne comporte que trois speci cations SpA, SpB et SpC, liees par deux morphismes de speci cationsf :SpA !Sp B et g:SpA !Sp C.      Sp C  Sp B  SpA @ @ @ @ @ R g , , , , ,  f 

La colimite de ce diagramme correspond a la composition des speci cationsSpB et SpC ou les partages entre ces deux speci cations sont indiques par les deux mor-phismesf et g.

1.4 Sommes amalgamees

Dans cette section, nous de nissons la somme amalgamee de deux ensembles, puis de deux signatures, et en n de deux speci cations. Autrement dit, nous presentons la somme amalgamee dans trois categories particulieres: Set(categorie des ensembles), Sig (categorie des signatures) et Spec (categorie des speci cations). La de nition generale sera revue dans le chapitre 2.

(37)

1.4.1 Somme amalgamee de deux ensembles

Considerons trois ensemblesA, B, et C, ainsi que deux applicationsf : A!B et g:A!C. Intuitivement, faire la somme amalgamee de B et C par rapport a f et g consiste a faire l'union disjointe de B et C et a fusionner les elements qui sont images par f et g d'un m^eme element ade A.

Plus formellement, on peut de nir la somme disjointe deB et C par l'ensemble B+C = (f1gB)[(f2gC):

Il y a evidemment un choix de codage dans cette de nition. L'idee est de faire la reunion des deux ensembles B et C apres avoir renomme les elements communs aux deux ensembles. Nous avons egalement deux applications i

1 : B ! B+C et i 2: C !B+C de nies par i 1 : B ! B+C b 7! (1;b) i 2 : C ! B+C c 7! (2;c) Puis on de nit une relationR sur l'ensembleB+C:

R=f((1;f(a));(2;g(a))) ; 8a2Ag:

On considere ensuite la relation d'equivalence R engendree par R et l'ensemble quotientP = (B+C)=R. On a une application de projectionp:B+C!P, qui a tout element de B+C associe sa classe d'equivalence moduloR.

C B A @ @ @ @ R g , , , ,  f B+C , , , ,  i 1 @ @ @ @ R i 2 P -p P P P P P P P P P P P P P P P P q                 1 & 1( P) & 2( P) Notations

 L'ensembleP est notepush(A;B;C ;f;g).  L'applicationpi

1:

B !P est notee & 1(

A;B;C ;f;g).  L'applicationpi

2:

C !P est notee & 2(

A;B;C ;f;g).

 Pour alleger un peu les notations, siP push(A;B;C ;f;g), nous ecrirons { &

1(

P) a la place de& 1(

(38)

1.4. SOMMES AMALGAMEES 37 { & 2( P) a la place de & 2( A;B;C ;f;g). De nition 1.16 (Somme amalgamee dansSet)

La somme amalgamee de B et C par rapport af et g est le triplet (push(A;B;C ;f;g);&

1(

A;B;C ;f;g);& 2(

A;B;C ;f;g)):

Par abus de langage, l'ensemble push(A;B;C ;f;g) sera egalement appele somme amalgamee. Il ne faut pas oublier qu'en realite les deux applications&

1(

A;B;C ;f;g) et &

2(

A;B;C ;f;g) font partie de la de nition d'une somme amalgamee.

Nous formulons maintenant la propriete generale des sommes amalgamees en theorie des categories. Nous reverrons cette propriete dans le chapitre 2.

Propriete1.1 (Propriete caracteristique des sommes amalgamees) Une somme amalgamee

(push(A;B;C ;f;g);& 1(

A;B;C ;f;g);& 2(

A;B;C ;f;g)) satisfait les proprietes suivantes.

1. & 1(

A;B;C ;f;g)f =& 2(

A;B;C ;f;g)g; 2. pour tout objet D et eches f

0 : B !D, g 0 : C !D telles que f 0 f =g 0 g, il existe une eche unique u:push(A;B;C ;f;g) !D telle que

 u& 1( A;B;C ;f;g) =f 0 u& 2( A;B;C ;f;g) =g 0 : C B A @ @ @ @ R g , , , ,  f P , , , ,  & 1( P) @ @ @ @ R & 2( P) D -u P P P P P P P P P P P P P P P P q                 1 f 0 g 0

Dans la categorie des ensemblesSet, les objets sont les ensembles, et les eches sont les applications entre deux ensembles. La propriete 1.1 se reformule donc de la facon suivante:

(39)

1. & 1(

A;B;C ;f;g)f =& 2(

A;B;C ;f;g)g

(Il s'agit d'une egalite entre deux applications deA vers push(A;B;C ;f;g).) 2. Pour tout ensemble D et applications f

0 : B ! D, g 0 : C ! D telles que f 0 f =g 0

g, il existe une application uniqueu:push(A;B;C ;f;g) !D telle que  u& 1( A;B;C ;f;g) =f 0 u& 2( A;B;C ;f;g) =g 0 :

Exemple 1.6

SoitA=fa 1 ;a 2 g, B =fx;y;zg et C =fxg. Soit f =f(a 1 ;x);(a 2 ;y)g et g=f(a 1 ;x);(a 2 ;x)g. B+C =f(1;x);(1;y);(1;z);(2;x)g P =push(A;B;C ;f;g) =ff(1;x);(1;y);(2;x)g ;f(1;z)g g & 1( P)(x) =& 1( P)(y) =f(1;x);(1;y);(2;x)g & 1( P)(z) =f(1;z)g & 2( P)(x) =f(1;x);(1;y);(2;x)g       A      C        B       P @ @ @ @ @ @ @ @ R Q Q Q Q Q Q Q Q s g , , , , , , , ,  , , , , , , , ,  f , , , , , , , ,  @ @ @ @ @ @ @ @ R & 1( P) @ @ @ @ @ @ @ @ R Q Q Q Q Q Q Q Q s & 2( P)

Remarque 1.2

Nous avons en realite de ni ici un codage de la somme amalgamee pour les ensembles. Dans la theorie des categories, la somme amalgamee est de -nie a un isomorphisme pres. Dans l'exemple 1.6, en prenant pour P un ensemble quelconque a deux elements, la propriete 1.1 est encore veri ee.

(40)

1.4. SOMMES AMALGAMEES 39

1.4.2 Somme amalgamee de deux signatures

Nous de nissons la somme amalgamee de deux signatures a partir de la de nition de la somme amalgamee de deux ensembles. Soit trois signatures

A= ( S A ; A ;$ A) B= ( S B ; B ;$ B) C = ( S C ; C ;$ C) et deux morphismes de signatures

f = (f S ;f ) :  A ! B g= (g S ;g ) :  A ! C : On de nit la signature P = ( S P ; P ;$

P), somme amalgamee des signatures B et C par rapport aux morphismes

f :  A ! B et g:  A ! C de la facon suivante. L'ensemble S

P est la somme amalgamee des ensembles S B et S C par rapport a f S et g S. Autrement dit, S P = push(S A ;S B ;S C ;f S ;g S) :

L'ensemble P est la somme amalgamee des ensembles B et C par rapport a f et g . Autrement dit, P = push( A ; B ; C ;f ;g ) : Il reste a de nir$ P : P !S +

P pour obtenir la signature 

P. On a l'egalite & 1( S P) + $ B f = & 2( S P) + $ C g : En e et, & 1( S P) + $ B f = & 1( S P) + f S+ $ A ( f :  A ! B morphisme de signatures) = (& 1( S P) f S)+ $ A ( + foncteur) = (& 2( S P) g S)+ $

A (propriete des sommes amalgamees) = & 2( S P) + g S+ $ A ( + foncteur) = & 2( S P) + $ C g ( g:  A ! C morphisme de signatures) donc, comme P = push( A ; B ; C ;f ;g

) et d'apres la propriete caracteristique des sommes amalgamees, il existe une unique application$

P : P !S + P telle que $ P & 1(P) = & 1( S P) + $ B (1) $ P & 2(P) = & 2( S P) + $ C (2) On pose push( A ; B ; C ;f;g) =  P; & 1(P) = & 1(A ; B ; C ;f;g) = (& 1( S P) ;& 1(P)); & 2(P) = & 2(A ; B ; C ;f;g) = (& 2( S P) ;& 2(P)) : D'apres les egalites (1) et (2) ci-dessus,&

1(P) et &

2(P) sont bien des morphismes de signatures.

(41)

Theoreme 1.2

Le triplet (push( A;B;C;f;g); & 1(A;B;C;f;g); & 2(A;B;C;f;g)) est une somme amalgamee dans la categorie des signatures

Sig

.

Preuve. On veri e facilement que la propriete 1.1 est satisfaite. 2

Exemple 1.7

Considerons les signatures S, M et G correspondant respective-ment aux speci cationsS,M etG(proprietesUNESORTE,MONOIDEetGROUPE COMM). Nous avons egalement deux morphismes de signaturesbs: 

S ! M et m bs: S ! G.

Une somme amalgamee de M et G par rapport ab

set mbsest la signature P suivante: sorts s operators +, * : s, s -> s 0, 1 : -> s i : s -> s On doit fusionner la sorte s de 

M avec la sorte

s de 

G. Remarquons que nous n'avons pas ete obliges de renommer certaines sortes ou operateurs. En e et, les deux sortes a fusionner ont le m^eme nom dans les deux signatures M et G, et les operateurs que l'on doit distinguer ont des noms distincts dans les deux signatures. Finalement comme la signature partagee S est l'intersection des signatures M et G, et comme les deux morphismes de signatures sont les inclusions correspondantes, la somme amalgamee P est la reunion de M et G.

1.4.3 Somme amalgamee de deux speci cations

On de nit la somme amalgamee de deux speci cations de facon similaire: la signature de la speci cation resultat est la somme amalgamee des signatures, et l'ensemble des equations de la speci cation resultat est \l'union" (apres traduction) des equations des deux speci cations.

Soit trois speci cations

SpA= (A;EA) SpB = (B;EB) SpC = (C;EC) et deux morphismes de speci cations

f :SpA !Sp B g:SpA !Sp C:

On de nit la speci cationSpP = (P;EP) somme amalgamee des speci cationsSpB et SpC par rapport aux morphismes de speci cations f et g de la facon suivante. La signature P est la somme amalgamee des signatures:

P =

push(

Figure

Figure 2.2: diagramme , objet de DIAGR 2 ( C )
diagramme  = P ush D iagr(  ;  ; ;  ;  ) En aplatissant le diagramme , on obtient un diagramme  de DIAGR( C 0 ) (cf.

Références

Documents relatifs

Néanmoins, la reformulation de la définition de catégorie de diagrammes que nous proposons dans le chapitre 2 présente un intérêt en informatique, d'une part parce que la

Nous avons proposé la construction d'une précatégorie TERME(Co) à objet pré- initial choisi et pré-sommes amalgamées choisies pour décrire des constructions de colimites sur

Repr´ esentons un nombre pair 2x par le n-uplet de ses restes modulaires (x

Conjecturer ` a partir de combien de voitures fabriqu´ ees et vendues l’entreprise r´ ealisera un b´ en´ efice.. Pour combien de voitures fabriqu´ ees le b´ en´ eficie

Explicitez une bijection entre l’ensemble des cat´ egories et celui des simili-cat´ egories (d’un univers)... Equivalence de d´

Les ombres varient avec l’orientation des objets : cette observation pr´ epare entres autres ` a la reconnaissance et la coordination des trois projections orthogonales classiques

WENGER, Paul Eugène Etienne, DUCKERT, Roger, RUSCONI, Yvonne.. WENGER, Paul Eugène Etienne, DUCKERT, Roger,

Nous avons établi une liste de réactifs à étudier par nos recherches bibliographiques concernant tout particulièrement les années 1937 à 1943 qui complètent le ,,Tableau