• Aucun résultat trouvé

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=

u, maist6=

βη

u, alors

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=

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∈N

est

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)

n

dansT

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)

n

dansT

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, Γ ⊢

ty

t: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

0

et B∈ B

0

tels 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

0

et 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

i

est algébriquement typé dans Γ de type B

i

, alors f(t

1

, . . . , t

n

)t

n+1

. . . t

n+m

est

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 ∈ Σ

n

un f

C

∈ Σ

C0

. On peut refléter cette

opération aux niveau des types, en associant à f

C

un 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ù

Σ

τ

=

def

f | τ(f) = B⇒· · ·⇒B

| {z }

nfois

⇒B

!

n∈N

Tout 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→

R

r,

(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→

R

t, 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λ

Ch

ty

(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Γ ⊢

ty

t:T et t→

βR

u alors Γ ⊢

ty

u: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, Σ)⊢

ty

t≡u

lorsqu’il existe Γ à valeurs dans T

ty

(B) etT ∈ T

ty

(B) tel que t≡udans [Γ ⊢

ty

T].

Si ≡est une congruence sur λ

ty

(B

0

, Σ

0

, τ), on note

Ter(Σ

τ

,X)⊢

ty

t≡u

lorsquet≡usur les termes algébriquement typés de λ

ty

(B, Σ

0

, τ).