Le lemme suivant dit que l’η-réduction ne crée pas de β-rédexes dans les termes β
-normaux.
Lemme 3.5.5 (Lemme 6 p. 52 dans [Kri90]) Si t est un terme β-normal tel que
t→
ηu, alors uest β-normal aussi.
Venons en au théorème de Böhm, qui dit que le seul moyen consistant d’étendre=
ηβsur les termesβ-normalisables est de rajouter des symboles de fonctions au λ-calcul. Ce
résultat est bien entendu faux sur Λ(Σ)avec Σnon vide.
Théorème 3.5.6 (Théorème de Böhm — Corollaire 2 p. 70 dans [Kri90]) Soit≡
une congruence sur Λ qui contient=
β. S’il existe deux termes β-normalisables t, u∈Λ
tels que t≡umais t6=
βηu, alors≡ est inconsistante sur Λ.
Remarque 3.5.7 SoitRun TRS surΛ(Σ). S’il existe deux termespursβ-normalisables
t, u∈Λtels quet=
Rβu, maist6=
βηu, alors→
Rβest bien évidemment non confluente :
les formes β-normales respectives de t, u sont des termes →
Rβ-normaux distincts mais
=
Rβ-convertibles (comme ils sont purs,t et u ne contiennent pas de symbole de Σ, ils
sont donc en formeR-normale, ainsi que tous leursβ-réduits).
Ce que dit le théorème 3.5.6, c’est que =
Rβn’est de surcroît pas consistante, ce qui
est strictement plus fort : tous les termes de Λ sont identifiés par =
Rβ, en particulier
True=
RβFalse, ce qui permet d’identifiertous les termes deΛ(Σ).
3.6 Réécriture dans le lambda-calcul typé
Nous avons vu que le λ-calcul nécessite certaines extensions pour pouvoir y
accom-moder de façon satisfaisante des types de données. Le théorème de Böhm (3.5.6) nous
dit que les extensions de laβη-réduction, pour être consistantes, doivent s’accompagner
d’extensions de la syntaxe du λ-calcul pur. Une possibilité est l’étude d’extensions du
λ-calcul par des signatures algébriques et des systèmes de réécriture de termes utilisant
ces signatures.
Dans cette section, nous donnons les définissions permettant de parler rigoureusement
de réécriture dans leλ-calcul typé.
Définition 3.6.1 (Typage des constantes) Soit ty∈{⇒, 2}.
— Unesignature typéeest une paire(Σ, τ) oùΣest une signature et τ= (τ
n)
n∈Nest
une famille de fonctionsτ
n:Σ
n→P(T
ty(B)
n+1).
— On dit que τ
n(f) est un typage algébrique lorsque τ
n(f) est singleton de la forme
{(B
1, . . . ,B
n,B
n+1⇒· · ·⇒B
n+m⇒B)} ,
oùm≥0 et B
1, . . . ,B
n+m∈ B
0.
— Si pour tout n ∈ N, τ
n(f) est algébrique pour tout f ∈ Σ
n, alors (Σ, τ) est une
Chapitre 3 Réécriture et lambda-calcul
En particulier,τ
n(f) peut être unefonction partielle deT
ty(B)
ndansT
ty(B). Lorsque
le contexte le permet, on écritτpourS
n∈N
τ
n. Pourty∈{⇒, 2, 2Λ}, on étend de manière
directe les termes deΛ
ty(B) àΛ
ty(B, Σ) :
Λ
ty(B, Σ) ::= . . . | f(t
1, . . . , t
n)
oùf ∈Σ
n. Les symboles de la signature sont typés de la manière suivante :
(Symb I) Γ ⊢t
1:T
1. . . Γ ⊢t
n:T
nΓ ⊢f(t
1, . . . , t
n) :T (T
1, . . . , T
n, T)∈τ(f)
Remarque 3.6.2 Lorsque τ
n(f) est une fonction deT
ty(B)
ndansT
ty(B) telle que
τ(f)(T
1, . . . , T
n) =T[T
1/X
1, . . . , T
n/X
n]
pour toutT
1, . . . , T
n∈ T
ty(B), alors la règle (Symb I) peut être écrite
Γ ⊢t
1:T
1. . . Γ ⊢t
n:T
nΓ ⊢f(t
1, . . . , t
n) :T[T
1/X
1, . . . , T
n/X
n]
Définition 3.6.3 (Système de type avec constantes) Étant donné ty∈{⇒, 2}, on
désigne parλ
ty(B, Σ, τ) le système constitué du λ-calcul typé dont
— les termes sont ceux de Λ
ty(B, Σ),
— les types sont ceux deT
ty(B),
— la signature (Σ, τ) est typée dans T
ty(B).
— les règles de typage sont celles deλ
ty(B), auxquelles on ajoute la règle (Symb I).
On écrit Γ ⊢
tyτt : T lorsque Γ ⊢ t : T est dérivable dans λ
ty(B, Σ, τ). Pour tout Γ à
valeurs dansT
ty(B) etT ∈ T
ty(B), on pose [Γ ⊢
tyτT] =
def{t | Γ ⊢
tyτt:T}.
Lorsque le contexte le permet, on écrit λ
ty(B, Σ) pour désigner λ
ty(B, Σ, τ), Σ étant
vue comme la signature typée(Σ, τ). Dans ce cas, Γ ⊢
tyt:T désigneΓ ⊢
tyτt:T.
Une des propriétés intéressantes avec le typage est la suivante, dont la preuve est une
induction triviale :
Proposition 3.6.4 Soitty∈{⇒, 2, 2Λ}et(Σ, τ)une signature algébrique. Sit∈Λ
ty(Σ)
est un terme β-normal tel qu’il existe Γ à valeurs dans B
0et B∈ B
0tels que Γ ⊢ t:B,
alors test algébrique.
La propriété3.6.4 ne caractérise pas les termes algébriques si on n’impose pas que les
symboles algébriques soient complètement appliqués : le terme f de la signature typée
{f:B⇒B}est algébrique mais n’est pas typable par un type de base.
Définition 3.6.5 Étant donnée une signature typée(Σ, τ)algébrique surλ
2(B, Σ, τ), les
termes algébriquement typés sont définis inductivement comme suit :
— si Γ est un contexte à valeurs dans B
0et B∈ B
0, alors x est algébriquement typé
dans Γ, x:B de typeB,
3.6 Réécriture dans le lambda-calcul typé
— siτ(f) ={(B
1, . . . ,B
n,B
n+1⇒· · ·⇒B
n+m⇒B)}et, pour touti∈{1, . . . , n+m},
t
iest algébriquement typé dans Γ de type B
i, alors f(t
1, . . . , t
n)t
n+1. . . t
n+mest
algébriquement typé dansΓ de typeB.
La propriété3.6.4 caractérise les termes algébriquement typés. En utilisant la
curryfi-cation (chapitre8), on peut ainsi construire une algèbre libre.
Remarque 3.6.6 Prenons une signatureΣ, que l’on curryfie enΣ
C(voir l’exemple3.1.13
et le chapitre 8). On associe donc à chaque f ∈ Σ
nun f
C∈ Σ
C0. On peut refléter cette
opération aux niveau des types, en associant à f
Cun type
τ
C(f
C) = B⇒· · ·⇒B
| {z }
nfois
⇒B.
Les termes algébriquement typés dansλ
ty({B}, Σ
C0, τ
C)forment uneΣ-algèbre libre surX.
Il s’en suit que pour toute signature (Σ
0, τ) algébriquement typée, les termes
algébri-quement typés de λ
ty({B}, Σ
0, τ) forment uneΣ
τ-algèbre sur X où
Σ
τ=
deff | τ(f) = B⇒· · ·⇒B
| {z }
nfois⇒B
!
n∈NTout ceci s’étend au cas multisorté, ce qui permet de prendre en compte le typage avec
plusieurs types de base.
Définition 3.6.7 (Système de réécriture typé) Étant donnéty∈{⇒, 2}, un système
de réécritureRsurΣalgébrique à gauche estun TRS typé dansλ
ty(B, Σ, τ)si pour toute
règle l7→
Rr,
(i) l est typable dansλ
ty(B, Σ, τ) et
(ii) pour toute substitution σ, tout type T ∈ T
ty(B) et tout contexte Γ à valeurs dans
T
ty(B),
Γ ⊢lσ:T implique Γ ⊢rσ:T .
Un TRS typé dans λ
ty(B, Σ, τ) est algébriquement typé dans λ
ty(B, Σ, τ) si ses règles
sont faites de termes algébriquement typés.
Notons qu’un TRS algébriquement typé est nécessairement algébrique.
Remarque 3.6.8 Soitty∈{⇒, 2}etRun TRS algébriquement typé dansλ
ty(B, Σ, τ).
Comme les membres gauches des règles deRsont des termes algébriques qui ne sont pas
des variables, pour toute règle l7→
Rt, il existe un unique type T ∈ T
ty(B) tel que pour
toute substitution σ, si lσ est typable dans λ
ty(B, Σ, τ), alors il existe un contexte Γ à
valeurs dans T
ty(B) tel que Γ ⊢lσ:T.
Ces définitions s’adaptent facilement aux systèmes à la Church définis en 3.3.17 : si
ty∈{⇒, 2}, le systèmeλ
Chty
(B, Σ, τ) est le systèmeλ
ty(B, Σ, τ)dont les termes sont ceux
de Λ
Ctyh(B, Σ) au lieu deΛ
ty(Σ).
Le cas (ii) de la définition3.6.7permet d’étendre la préservation du typage par
réduc-tion à→
βR(voir 3.3.15).
Chapitre 3 Réécriture et lambda-calcul
Lemme 3.6.9 (Préservation du type) Soit ty∈{⇒, 2, 2Λ} et R un TRS typé dans
λ
ty(B, Σ, τ). SiΓ ⊢
tyt:T et t→
βRu alors Γ ⊢
tyu:T.
La définition suivante est une notation pour les congruences entre les termes typés de
certains systèmes. Rappelons que par la remarque3.6.6, les termes algébriquement typés
deλ
ty(B, Σ
0, τ) forment uneΣ
τ-algèbre libre sur X.
Définition 3.6.10 (Congruence typée) Pour tout ty∈{⇒, 2, 2Λ}, pour toute
signa-tureΣtypée dans T
ty(B) et pour toute congruence≡ sur T
ty(B, Σ, τ), on note
λ
ty(B, Σ)⊢
tyt≡u
lorsqu’il existe Γ à valeurs dans T
ty(B) etT ∈ T
ty(B) tel que t≡udans [Γ ⊢
tyT].
Si ≡est une congruence sur λ
ty(B
0, Σ
0, τ), on note
Ter(Σ
τ,X)⊢
tyt≡u
lorsquet≡usur les termes algébriquement typés de λ
ty(B, Σ
0, τ).
Dans le document
Définitions par réécriture dans le lambda-calcul : confluence, réductibilité et typage
(Page 81-84)