uniques morphismes tels que
Id
A◦(_)
A= (_)
AId
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 ∈Σ
nett
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=
Ax
Aavec x∈ X, et par hypothèse on a j
1(x
A) =j
2(x
A).
(Symb) Dans ce cas,t=
Af
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
Tde 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 ∈ Σ
nla 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) =
defj(x) pour tout x ∈ X et j(f
T(t
1, . . . , t
n)) =
deff
A(j(t
1), . . . , j(t
n))pour toutf∈Σ
nest 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∈Σ
neta
1, . . . , a
n∈A, on a x
A6=
Af
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) =
Ag
A(b
1, . . . , b
m) alors on a n = m, f = g et a
i= b
ipour 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
T6=
f
T(j(a
1), . . . , j(a
n)). Orj(x
A) =x
Tetj(f
A(a
1, . . . , a
n)) =f
T(j(a
1), . . . , j(a
n)), donc
x
A6=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
ipour 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=
defTer(Σ
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(_)
Aen un morphismej:T →B, en posant
par induction j(x
A) =
defj(x) et j(f
A(a
1, . . . , a
n)) =
deff
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
Test un morphisme de T → A. On
a donc (Id
T◦i)◦(_)
A= (_)
A. Or, la liberté deA implique queId
Aest 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)) =
defS
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
Aet
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|
ε=
deft
f(t
1, . . . , t
n)|
i·p=
deft
i|
psif ∈Σ
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|
ppar un terme uest le terme t[u]
pdéfini
inductive-ment comme suit :
t[u]
ε=
defu
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) =
defS
1≤i≤n
i.Occ(t
i, u) si f∈Σ
n.
Dans certaines situations, il est plus lisible de noter t[u]
ppart[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) =
defx
Asinon
σ(f
A(t
1, . . . , t
n)) =
deff
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
ipour 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] =
defC[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[ ]) =
defD[ ].
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,sparf:s
1× · · · ×s
n→s et on
écritf:s si n=0.
Dans le document
Définitions par réécriture dans le lambda-calcul : confluence, réductibilité et typage
(Page 31-37)