• Aucun résultat trouvé

uniques morphismes tels que

Id

A

◦(_)

A

= (_)

A

Id

B

◦(_)

B

= (_)

B

;

d’où

(_)

A

◦(_)

B

= Id

A

(_)

B

◦(_)

A

= Id

B

.

Les isomorphismes (_)

A

:B→A et(_)

B

:A→ Bsont appelés respectivement

isomor-phisme canonique de B→A etisomorphisme canonique deA→B.

Toutes les algèbres (même lorsqu’elles ne sont pas libres), contiennent une notion

canonique d’objets générés à partir des variables et par itération des fonctions de la

signature. Lorsque l’algèbre n’est pas libre, ces objets ne peuvent pas être vus comme

des termes. Nous les appelons donc « pré-termes ».

Définition 1.1.3 (Pré-termes d’une algèbre) Soit un ensemble dénombrableX, une

Σ-algèbre A = (A, Σ

A

) et une injection (_)

A

: X → A. L’ensemble Ter(Σ

A

,X

A

) des

pré-termes sur (A,(_)

A

) est le plus petit sous-ensemble de Atel que

— six∈ X alors x

A

∈ Ter(Σ

A

,X

A

),

— sif ∈Σ

n

ett

1

, . . . , t

n

∈ Ter(Σ

A

,X

A

) alors f

A

(t

1

, . . . , t

n

)∈ Ter(Σ

A

,X

A

).

Notons que(Ter(Σ

A

,X), Σ

A

) est uneΣ-algèbre.

Remarque 1.1.4 La définition deTer(Σ

A

,X

A

) fournit un principe d’induction sur les

éléments de cet ensemble. En effet, on peut voirTer(Σ

A

,X

A

)comme étant le plus petit

ensemble satisfaisant aux règles suivantes :

(Var)

x

A

∈ Ter(Σ

A

,X

A

) (x∈ X)

(Symb) t

1

∈ Ter(Σ

A

,X

A

) . . . t

n

∈ Ter(Σ

A

,X

A

)

f

A

(t

1

, . . . , t

n

)∈ Ter(Σ

A

,X

A

) (f∈Σ

n

)

Alors, raisonner par induction sur Ter(Σ

A

,X

A

) revient à raisonner par induction sur la

hauteur des arbres de preuves construits par les règles (Var) et(Symb). Notons que si

A n’est pas libre, alors il peut y avoir plusieurs arbres de preuve pourt∈ Ter(Σ

A

,X

A

).

Nous dirons « par induction sur t∈ Ter(Σ

A

,X

A

) » ou même « par induction sur t» au

lieu de « par induction sur Ter(Σ

A

,X

A

) ».

Le lemme suivant est bien connu. Notre cas est cependant différent du cas habituel

(voir par exemple le lemme 3.4.8 de [MT92]) car nos algèbres libres sont libres pour des

injections X →Aqui ne sont pas nécessairement des inclusions.

Lemme 1.1.5 Soit deux Σ-algèbres A= (A, Σ

A

) et B= (B, Σ

B

). Si (_)

A

:X →A est

une injection et j

1

, j

2

:Ter(Σ

A

,X

A

)→Bsont deux morphismes tels que j

1

(x

A

) =j

2

(x

A

)

Chapitre 1 Structures de termes

Preuve. On montre que j

1

(t) = j

2

(t) en raisonnant par induction sur les arbres de

preuves det∈ Ter(Σ

A

,X

A

). On raisonne par cas sur la dernière règle utilisée.

(Var) Dans ce cas t=

A

x

A

avec x∈ X, et par hypothèse on a j

1

(x

A

) =j

2

(x

A

).

(Symb) Dans ce cas,t=

A

f

A

(t

1

, . . . , t

n

) avecf ∈Σ

n

. Par hypothèse d’induction on a

j

1

(t

i

) =j

2

(t

i

) pour tout i∈{1, . . . , n}. On en conclut quej

1

(t) =j

2

(t) car

j

1

(f

A

(t

1

, . . . , t

n

)) = f

B

(j

1

(t

1

), . . . , j

1

(t

n

))

et j

2

(f

A

(t

1

, . . . , t

n

)) = f

B

(j

2

(t

1

), . . . , j

2

(t

n

)).

Le théorème d’existence d’algèbres libres est un résultat classique d’algèbre universelle.

Exhiber une algèbre libre revient à décrire une représentation des termes, c’est-à-dire leur

implantation. Il en existe plusieurs : ce sont des arbres dans [CJ96], mais ils peuvent être

aussi des mots sur l’alphabet Σ∪ X ∪ {‘(‘, ‘)‘, ‘,‘}, comme dans [GTWW77]. Nous

considérons le cas des arbres.

Théorème 1.1.6 Soit une signature Σ et un ensemble X disjoint de Σ. Il existe une

Σ-algèbre A= (A, Σ

A

) et une injectioni:X →A telles queA est libre sur X pour i.

Rappelons que N

désigne l’ensemble des mots finis surN.

Preuve. Soit T le plus petit ensemble de fonctions partielles de N

→Σ∪ X tel que

— pour toutx∈ X la fonctionx

T

de domaine {ε} telle quex

T

(ε) =xest dansT;

— pour tout f ∈Σ

n

, pour tout t

1

, . . . , t

n

∈ T, la fonction f

T

(t

1

, . . . , t

n

) de domaine

{ε}∪1.Dom(t

1

)∪ · · · ∪n.Dom(t

n

) telle que

f

T

(t

1

, . . . , t

n

)(ε) =f et f

T

(t

1

, . . . , t

n

)(i.p) =t

i

(p)

est dansT.

On munit T d’une structure de Σ-algèbre en assignant à chaque f ∈ Σ

n

la fonction

f

T

:t

1

, . . . , t

n

∈T 7→f

T

(t

1

, . . . , t

n

).

Montrons que c’est une Σ-algèbre libre sur X pour (_)

T

: x ∈ X 7→ x

T

. Soit A =

(A, Σ

A

) une Σ-algèbre et une fonction j : X → A. Alors, la fonction j : T → A

dé-finie par induction sur T par j(x

T

) =

def

j(x) pour tout x ∈ X et j(f

T

(t

1

, . . . , t

n

)) =

def

f

A

(j(t

1

), . . . , j(t

n

))pour toutf∈Σ

n

est un morphisme de(T, Σ

T

)dansAtel quej◦(_)

T

=

j. D’autre part, il est aisé de voir queT =Ter(Σ

T

,X

T

). D’après le lemme1.1.5,jest donc

le seul morphisme de(T, Σ

T

)→Atel que j◦(_)

T

=j.

La propriété suivante est fondamentale pour pouvoir considérer comme ensemble de

termes n’importe quelle algèbre libre.

Proposition 1.1.7 (Séparation) Si A est libre sur X, alors

— pour tout x∈ X, pour tout f∈Σ

n

eta

1

, . . . , a

n

∈A, on a x

A

6=

A

f

A

(a

1

, . . . , a

n

),

— pour tout f ∈ Σ

n

, tout g ∈ Σ

m

, tout a

1

, . . . , a

n

∈ A et tout b

1

, . . . , b

m

∈ A, si

f

A

(a

1

, . . . , a

n

) =

A

g

A

(b

1

, . . . , b

m

) alors on a n = m, f = g et a

i

= b

i

pour tout

1.1 Termes du premier ordre

Preuve. Tout d’abord il est clair que cette propriété est satisfaite pour l’algèbre libre

d’arbres (T, Σ

T

) définie dans la preuve du théorème1.1.6.

Soit maintenant une Σ-algèbre A= (A, Σ

A

) libre sur X pour (_)

A

. Il existe donc un

unique morphisme j :A → (T, Σ

T

) tel que j◦(_)

A

= (_)

T

. La liberté de (T, Σ

T

) et A

implique que c’est un isomorphisme, en particulier qu’il est injectif. Il s’en suit :

— Pour tout x ∈ X, pour tout f ∈ Σ

n

, pour tout a

1

, . . . , a

n

∈ A, on a x

T

6=

f

T

(j(a

1

), . . . , j(a

n

)). Orj(x

A

) =x

T

etj(f

A

(a

1

, . . . , a

n

)) =f

T

(j(a

1

), . . . , j(a

n

)), donc

x

A

6=f

A

(a

1

, . . . , a

n

).

— Pour toutf ∈Σ

n

,g∈Σ

m

, pour touta

1

, . . . , a

n

∈A, pour toutb

1

, . . . , b

m

∈A, si

f

A

(a

1

, . . . , a

n

) =g

A

(b

1

, . . . , b

m

), alorsf

T

(j(a

1

), . . . , j(a

n

)) =g

T

(j(b

1

), . . . , j(b

m

)).

On a donc f = g, m = n et j(a

i

) = j(b

i

) pour tout i ∈ {1, . . . , n}. Comme j est

injectif, on en déduit quea

i

=b

i

pour touti∈{1, . . . , n}.

Lemme 1.1.8 Soient une signatureΣ et un ensembleX disjoint de Σ. Si A= (A, Σ

A

)

est une Σ-algèbre libre sur X pour l’injection (_)

A

:X →A alors,

(i) l’algèbre (Ter(Σ

A

,X

A

), Σ

A

) est libre sur X pour (_)

A

,

(ii) A=Ter(Σ

A

,X

A

).

Preuve. Soit T=

def

Ter(Σ

A

,X

A

) etT =

def

(T, Σ

A

).

(i) On vérifie queT est bien uneΣ-algèbre libre surX pour(_)

A

. Pour touteΣ-algèbre

B= (B, Σ

B

) avecj:X →B, on étend(_)

A

en un morphismej:T →B, en posant

par induction j(x

A

) =

def

j(x) et j(f

A

(a

1

, . . . , a

n

)) =

def

f

B

(j(a

1

), . . . , j(a

n

)). Cette

définition est correcte d’après la remarque 1.1.4 et la proposition1.1.7 (rappelons

que T ⊆A). De plus, cette extension est unique d’après le lemme1.1.5.

(ii) On sait déjà que T ⊆A, montrons queA⊆T.

Comme A est libre sur X, il existe i : A→ T tel que i◦(_)

A

= (_)

A

. De plus,

T étant une sous-algèbre de A, l’identité Id

T

est un morphisme de T → A. On

a donc (Id

T

◦i)◦(_)

A

= (_)

A

. Or, la liberté deA implique queId

A

est le seul

morphisme tel queId

A

◦(_)

A

= (_)

A

. Il s’en suit queId

T

◦i=Id

A

.

Donc, pour tout a ∈ A, on a i(a) = (Id

T

◦i)(a) =Id

A

(a) =a, soit a ∈T car

i(a)∈T.

Il s’en suit que nous pouvons utiliser comme termes du premier ordre les pré-termes

d’une algèbre libre quelconque.

Définition 1.1.9 (Termes du premier ordre) Étant donnés une signature Σ et un

ensemble de variablesX disjoint deΣ, un ensemble de termes sur(Σ,X)est uneΣ-algèbre

libre sur X.

L’ensemble V(t) des variables de t ∈ Ter(Σ

A

,X

A

) est défini inductivement comme

suit :

— V(x

A

) =

def

{x},

— V(f

A

(t

1

, . . . , t

n

)) =

def

S

1≤i≤n

V(t

i

).

Un terme t est dit clos lorsque V(t) = ∅. Soit Ter(Σ

A

) l’ensemble des termes clos de

Chapitre 1 Structures de termes

Remarque 1.1.10 Les arbres de preuves de1.1.4peuvent être étiquetés de la manière

suivante : chaque application de la règle (Var) à la variable x est étiquetée par x

A

et

chaque application de la règle(Symb) au symbole f est étiquetée parf

A

. Il est aisé de

voir que l’ensemble d’arbres ainsi construit est isomorphe à Ter(Σ

A

,X

A

) et peut être

vu comme uneΣ-algèbre libre sur X (une fois muni des bonnes opérations). Ainsi, nous

avons pu donner une structure d’arbre aux éléments d’une algèbre libre quelconque. Ceci

justifie l’idée qu’il est approprié de voir les termes comme des arbres, même s’il ne sont

pas implantés comme tels.

Lorsque le contexte le permet, on écritTer(Σ,X)pour désigner un ensemble quelconque

de termes sur(Σ,X).

Remarque 1.1.11 (Grammaires de termes) Nous écrivons X pour désigner un

en-semble infini dénombrable dont les éléments peuvent être énumérés par (x

i

)

i∈N

. Par

convention, quand nous manipulons une signatureΣ, nous supposons qu’elle est disjointe

deX, sauf mention du contraire.

Nous écrivons

t∈T ::= x | f(t

1

, . . . , t

n

)

où x ∈ X et f ∈ Σ

n

, pour désigner un ensemble T arbitrairement choisi parmi les

en-sembles des termes sur(Σ,X).

Nous rappelons ici quelques opérations classiques et fondamentales sur les termes du

premier ordre. Nos notations sont celles de [DJ90]. La proposition1.1.7assure la

correc-tion de ces définicorrec-tions pour les algèbres libres. Rappelons que les éléments des algèbres

libres sont des termesfinis.

Définition 1.1.12 (Positions, occurences et remplacements) Soitt∈ Ter(Σ,X).

(i) L’ensemble des positions dans t est l’ensemblePos(t) de mots sur Ndéfini

induc-tivement comme suit :

Pos(x) =

def

{ε}

Pos(f(t

1

, . . . , t

n

)) =

def

{ε}∪1.Pos(t

1

)∪ · · · ∪n.Pos(t

n

) si f∈Σ

n

.

(ii) Étant donné p ∈ Pos(t), le sous-terme de t à la position p, noté t|

p

, est défini

inductivement comme suit :

t|

ε

=

def

t

f(t

1

, . . . , t

n

)|

i·p

=

def

t

i

|

p

sif ∈Σ

n

.

Si il existe p∈ Pos(t) tel que t|

p

=u, nous dirons que ua une occurrence danst.

(iii) Le remplacement dans t de t|

p

par un terme uest le terme t[u]

p

défini

inductive-ment comme suit :

t[u]

ε

=

def

u

1.1 Termes du premier ordre

(iv) Enfin, l’ensemble des occurrences d’un terme u dans t est le plus petit ensemble

Occ(t, u) tel que Occ(t, u) =

def

{ε} sit=u, et sinon,

Occ(f(t

1

, . . . , t

n

), u) =

def

S

1≤i≤n

i.Occ(t

i

, u) si f∈Σ

n

.

Dans certaines situations, il est plus lisible de noter t[u]

p

part[p←u].

Remarque 1.1.13 Toutes ces constructions sont indépendantes du choix d’une Σ

-algèbre particulière. Ainsi, siTer(Σ

A

,X

A

)etTer(Σ

B

,X

B

)sont deux ensembles de termes

sur(Σ,X), et sii:A→Best un isomorphisme, alors pour toutt, u∈ Ter(Σ

A

,X

A

)et tout

p∈ Pos(t)on aV(t) =V(i(t)),Pos(t) =Pos(i(t)),i(t|

p

) =i(t)|

p

,i(t[u]

p

) =i(t)[i(u)]

p

,

etOcc(t, u) =Occ(i(t), i(u)).

Rappelons qu’une valuation est une fonction de domaine fini.

Définition 1.1.14 (Substitutions du premier ordre) Soit une valuation σ : X →

Ter(Σ

A

,X

A

). On l’étend en une substitution du premier ordre σ : Ter(Σ

A

,X

A

) →

Ter(Σ

A

,X

A

) définie inductivement comme suit :

σ(x

A

) =

def

σ(x) si x∈ Dom(σ)

σ(x

A

) =

def

x

A

sinon

σ(f

A

(t

1

, . . . , t

n

)) =

def

f

A

(σ(t

1

), . . . , σ(t

n

)) si f∈Σ

n

.

Remarque 1.1.15 La liberté deTer(Σ

A

,X

A

)surX implique queσest en fait l’unique

morphisme deA→Atel que σ◦(_)

A

=σ.

Lorsque le contexte le permet, nous écrivons σ pour désigner la substitution issue

de la valuation σ. Si σ est la valuation qui associe t

i

à x

i

pour i ∈ {1, . . . , n}, alors

[~x7→~t]désigne la substitution issue de σett[~x7→~t]désigne son application au terme t.

L’ensemble {V(σ(x))| x∈ Dom(σ)} des variables d’une substitutionσ est notéV(σ).

Proposition 1.1.16 Soient un terme t ∈ Ter(Σ,X) et deux substitutions σ, σ

telles

que V(t)∩ Dom(σ) = V(t)∩ Dom(σ

). Si σ(x) =σ

(x) pour tout x∈V(t)∩ Dom(σ),

alors σ(t) =σ

(t).

Preuve. Par induction surt.

t = x ∈ X. Comme x ∈ V(t), si x ∈ Dom(σ), par hypothèse on a x ∈ Dom(σ

),

donc σ(t) = σ(x) = σ

(x) = σ

(t). Sinon, par hypothèse x /∈ Dom(σ

) donc

σ(t) =t=σ

(t).

t=f(t

1

, . . . , t

n

). Comme V(t

i

)⊆V(t), on aV(t

i

)∩ Dom(σ) =V(t

i

)∩ Dom(σ

) pour

tout i ∈ {1, . . . , n}, donc par hypothèse d’induction σ(t

i

) = σ

(t

i

), d’où σ(t) =

σ

(t).

En particulier, siV(t)∩ Dom(σ) =∅, alors on aσ(t) =t. En effet, surV(t),σcoïncide

avec la substitution de domaine vide.

Siσetθsont deux substitutions, alorsθ◦σest la substitution définie par la valuation

θ◦σ(x) =θ(σ(x)), et dont le domaine estDom(σ). Il est bien connu que la composition

des valuations ne se retrouve pas directement au niveau des substitution. En effet, avec

σ=

def

[x7→y]etθ=

def

[y7→z], on a(θ◦σ)(f(x, y)) =f(z, y), alors queθ(σ(f(x, y))) =

Chapitre 1 Structures de termes

Lemme 1.1.17 (Composition des substitutions du premier ordre) Soit un terme

t∈ Ter(Σ,X)et deux substitutionsσ, θtelles queDom(σ)∩(Dom(θ)∪V(θ)) =∅. Alors,

θ(σ(t)) = θ◦σ(θ(t)) .

Preuve. Par induction surt.

t=x∈ X. Si x ∈ Dom(θ), alors x /∈ Dom(σ) par hypothèse, donc θ(σ(x)) = θ(x).

Comme le domaine de σest disjoint des variables de θ, on aθ◦σ(θ(x)) =θ(x).

Sinon, supposons que x ∈ Dom(σ). Alors, θ(σ(x)) =θ◦σ(x), et on a le résultat

recherché car θ(x) =x.

Enfin, si x /∈ Dom(σ)∪ Dom(θ), alors θ(σ(x)) =x=θ◦σ(θ(x)).

t=f(t

1

, . . . , t

n

). Par hypothèse d’induction, pour tout i ∈ {1, . . . , n} on a θ(σ(t

i

)) =

θ◦σ(θ(t

i

)), d’où le résultat recherché.

Proposition 1.1.18 Pour tout terme t∈ Ter(Σ,X), et toutes variables x, y, z∈ X, si

y /∈V(t) alors

t[x7→z] = t[x7→y][y7→z] .

Preuve. Par induction surt.

t∈ X. Sit=x, alorst[x7→z] =zett[x7→y][y7→z] =y[y7→z] =z.

Sinon, t[x7→z] =t. Or t[x7→y][y7→z] =t[y7→z], donc t[x7→ y][y7→z] =t car

y /∈V(t).

t=f(t

1

, . . . , t

n

). Pour tout i ∈ {1, . . . , n}, y /∈ V(t

i

) donc par hypothèse d’induction,

t

i

[x7→z] =t

i

[x7→y][y7→z], d’où le résultat.

Pour les termes du premier ordre, les contextes sont des termes « à trou », contenant

exactement une occurrence d’une variable notée[ ].

Définition 1.1.19 (Contextes) Un contexte sur L ⊆ Ter(Σ

App

) est un terme C ∈L

contenant exactement une occurrence de la variable [ ]. On pose C[t] =

def

C[t/[ ]] pour

toutt∈L.

Si Rest une relation binaire sur L⊆ Ter(Σ

App

,X), et C[ ], D[ ]sont deux L-contextes

alors on noteC[ ]R D[ ] siC R D. Dans le cas oùC[ ]F D[ ]pour une fonctionF:L→L,

on poseF(C[ ]) =

def

D[ ].

Toutes les constructions présentées ici s’étendent aux algèbres multisortées.

Définition 1.1.20 (Algèbres multisortées) Une signature multisortéeest la donnée

— d’un ensemble S de sortes,

— d’une famille d’ensembles (Σ

s1,...,sn,s

)

s1,...,sn,s∈Sn+1

.

Une(S, Σ)-algèbre Aest composée

— d’une famille d’ensembles disjoints (A

s

)

s∈S

,

— pour tout s

1

, . . . , s

n

, s∈ S

n+1

, d’une fonction f

A

:A

s1

× · · · ×A

sn

→A

s

.

Lorsque le contexte le permet, on désigne f∈Σ

s1,...,sn,s

parf:s

1

× · · · ×s

n

→s et on

écritf:s si n=0.