• Aucun résultat trouvé

Quantification du second ordre et produits infinis

8.4 Préservation de la confluence

9.2.1 Quantification du second ordre et produits infinis

Nous essayons dans cette section de mettre en évidence la difficulté logique intrinsèque

aux preuves de normalisation du système F. En utilisant une variante du combinateurJde

Girard [Gir72] proposée par [HM99], nous tentons d’expliquer pourquoi, dans les modèles

de réductibilité, la quantification universelle du second ordre ne peut être naïvement

interprétée par un produit infini.

On considère le système F à la Church λ

Ch

2

(B

0

, Σ

0

, τ) avec des symboles d’arité nulle.

On suppose queτ associe à chaquef∈Σ

0

un unique type τ(f)∈ T

2

(B

0

). Ces termes sont

donc décrits par la grammaire suivante :

t, u∈Λ

0

,B

0

) ::= x | t u | λx.t

| t·

Λ

T | ΛX.t | f

où x ∈ X, X ∈ V, T ∈ T

2

(B

0

) et f ∈ Σ

0

. Les règles de typage de ce système sont

celles deλ

Ch

9.2 Système F

universelle du second ordre :

(∀

Λ

I) Γ ⊢t:T

Γ ⊢ΛX.t:∀X.T (X /∈FV(Γ)) (∀

Λ

E) Γ ⊢t:∀X.T

Γ ⊢t·U:T[U/X]

Comme on ne considère que des symboles f d’arité nulle et ayant un unique type τ(f),

leur règle de typage s’écrit de la manière suivante :

(Symb I)

Γ ⊢f :τ(f) (f ∈Σ

0

)

Une façon naïve d’appréhender les règles(∀

Λ

I) et(∀

Λ

E)est de voir la quantification

du second ordre comme une sorte de produit infini. Ainsi, la généralisation ΛX.t:∀X.T

serait une forme infinie de la paire(t

1

, t

2

) :T

1

×T

2

, et l’instantiationt·U:T[U/X]serait

une forme infinie de projection π

i

t:T

i

.

L’interprétation de ∀X._ vu comme produit infini pourrait être définie de manière

analogue à celle de _×_ :

JT

1

×T

2

K = {t| ∀i. i∈{1, 2} =⇒ π

i

t∈JT

i

K}

J∀X.TK = {t| ∀U. U∈ T

2

(B

0

) =⇒ t·U∈JT[U/X]K} . (9.14)

Cependant, une telle interprétation de∀X._ pose problème : le typeT[U/X]pouvant ne

pas être plus petit que T,J_Kn’est pas définissable par induction surT. Mais cela ne dit

pas qu’il n’existe pas d’autre moyen de définir une interprétation de∀X.T vérifiant (9.14)

et évitant ce problème d’induction sur T.

Nous allons voir, en utilisant une variante J

du combinateur J de Girard [Gir72]

proposée dans [HM99], que toute interprétation qui vérifie (9.14) et qui est stable par

expansion faible de tête fortement normalisante pour les règles de ce système contient

des termes non fortement normalisants.

Les combinateurs J et J

sont des symboles définies par des règles de réécriture qui

dépendent du type de leurs arguments, ils sont dits non paramétriques. Les conditions

de saturation que nous utilisons étant très naturelles, il nous semble que le problème

vient précisément de (9.14). Il se peut donc qu’il n’existe pas d’interprétation valide

vérifiant (9.14) et qui soit adéquate vis-à-vis des règles de typage deλ

Ch

(B

0

, Σ

0

, τ).

Le combinateurJde Girard est un symbole d’arité nulle et de type∀X.∀Y.X⇒Y, défini

par les règles suivantes :

JT U t 7→

J

t siT =U

℧U sinon

où ℧ est un symbole de type ∀X.X. Les règles de J dépendent donc du type de ses

arguments, c’est une fonction non paramétrique.

Sa variante J

de [HM99] évite l’utilisation du terme ℧:∀X.X. Le symbole J

a pour

type ∀X.∀Y.(X⇒X)⇒(Y⇒Y), et est défini par les règles

J

T U t 7→

J′

t si T =U

Id

Ch

U sinon

Chapitre 9 Normalisation forte dans le lambda-calcul typé

oùId

Ch

= (ΛX.λx:X.x)est l’identité dans le système Fà la Church(voir exemple3.3.19).

Le combinateurJ

peut être vu comme une restriction deJaux types flèches.

En posantT

Id

=

def

∀X.X⇒Xet

f =

def

ΛX.J

T

Id

X(λx:T

Id

.x T

Id

x) : T

Id

,

on a

f T

Id

f →

βJ′

J

T

Id

T

Id

(λx:T

Id

.x T

Id

x)f →

βJ′

(λx:T

Id

.x T

Id

x)f →

βJ′

f T

Id

f .

On note(Σ

J

) la signature typée{J

:∀X.∀Y.(X⇒X)⇒(Y⇒Y)}.

Nous allons maintenant montrer que toute interprétation J_K vérifiant (9.14) et

cer-taines conditions de saturation simples est adéquate pour le systèmeλ

Ch

2

(B

0

, Σ

J

),

c’est-à-dire

Γ ⊢

ChJ

t:T implique t∈JTK.

Il s’en suit que f T

Id

f ∈ JT

Id

K, donc que JT

Id

K contient des termes non normalisants.

Commençons par la proposition suivante, prouvée par induction sur la hauteur des arbres

de typage.

Proposition 9.2.1 On noteΓ ⊢

n

t:T siΓ ⊢t:T est dérivable par un arbre de hauteur

inférieure ou égale à n. Supposons que τ(f) est clos pour tout f ∈Σ

0

. Si Γ ⊢

n

t:T alors

Γ[U/X]⊢

n

t[U/X] :T[U/X] pour toutU∈ T

2

(B

0

).

Preuve. Par induction surΓ ⊢t:T.

(Ax)

Γ, x:T ⊢x:T

SiΓ, x:T ⊢

n

x:T alorsΓ[U/X], x:T[U/X]⊢

n

x:T[U/X].

(⇒I)

Γ, x:T

2

,⊢

n−1

t

1

:T

1

Γ ⊢

n

λx:T

2

.t

1

:T

2

⇒T

1

Par hypothèse d’induction, car (λx:T

2

.t

1

)[U/X] =λx:T

2

[U/X].t

1

[U/X].

(∀

Λ

I)

Γ ⊢

n−1

t:T

Γ ⊢

n

ΛY.t:∀Y.T (Y /∈FV(Γ))

Par hypothèse d’induction, en utilisant le fait qu’on peut supposerX /∈FV(U)∪{Y}.

(⇒E) et(∀

Λ

E) Par hypothèse d’induction.

(Symb I) Car par hypothèseτ(f) est clos pour tout f∈Σ

0

.

On considère des contextes d’élimination de la forme

E[ ]∈ E

2Ch

::= [ ] | E[ ]t | E[ ]T .

Les conditions de saturation que nous utilisons sont les suivantes : S ⊆ SN

βJ′

est

9.2 Système F

(SAT1

Ch

) si E[ ]∈ SN

βJ′

alorsE[x]∈S,

(SAT2

Cβh

) si E[t[u/x]] ∈ S et u∈ SN

βJ′

alorsE[(λx : U)t]∈ S; siE[t[U/X]∈ S] alors

E[(ΛX.t)U]∈S,

(SAT2

CJh

) si E[t]∈ S alors E[J

U U t]∈ S; siE[Id

Ch

U]∈S ett ∈ SN

βJ′

avec U6= V

alorsE[J

V U t]∈S.

Le fait qu’il existe une partie βJ

-saturée de SN

βJ′

provient de la standardisation

faible (voir lemme 9.1.9) : sit7→

βJ′

uetE[t]→

βJ′

vavec v6=E[u], alors v=E

[t

]avec

(E[ ], t)→

βJ′

(E

[ ], t

) et il existeu

tel que t

7→

βJ′

u

etE[u]→

βJ′

E

[u

].

Une interprétation J_K : T

2

(B) → P(SN

βJ′

) est βJ

-saturée si JTK est βJ

-saturé.

Notons que si J_KestβJ

-saturé, alors on aId

Ch

T ∈JTK⇒JTK.

Siσ est une valuation sur X ∪ V telle que σ(x) ∈ JTK si x ∈ V

T

et σ(X) ∈ T

2

(B

0

) si

X∈ X, alors on note σ|=

2Ch

Γ si σ(x)∈JΓ(x)Kpour toutx∈ Dom(Γ).

Lemme 9.2.2 (Adéquation) Supposons qu’il existe une interprétationJ_KβJ

-saturée

et satisfaisant (9.14). SiΓ ⊢

Ch

J

t:T et σ|=

2Ch

Γ alors tσ∈JTK.

Preuve. Par induction sur la hauteur de Γ ⊢ t : T. Les cas (Ax), (⇒I) et (⇒ E)

correspondent à ceux du lemme9.1.15.

(∀

Λ

E) Par (9.14).

(∀

Λ

I) Pour tout U ∈ T

2

(B

0

), par la proposition 9.2.1, comme X /∈ FV(Γ, t) on a Γ ⊢

t[U/X] :T[U/X]avec un arbre de même hauteur, donc par hypothèse d’induction

tσ[U/X] ∈ JT[U/X]K. Il s’en suit que (ΛX.t)σU ∈ JT[U/X]K par (SAT2

Ch

β

). Donc

(ΛX.t)σ∈J∀X.TK.

(Symb I)On doit montrer que pour toutT, U∈ T

2

(B

0

),J

T U∈J(T ⇒T)⇒(U⇒U)K.

Soitt∈JT ⇒TK. Par(SAT2

Ch

J′

), siT =U, on aJ

T T t∈JT ⇒TKet sinon, comme

(ΛX.λx:X.x)U∈JU⇒UK, on aJ

T U t∈JU⇒UK.

Donc s’il existe une interprétation βJ

-saturée satisfaisant (9.14), alors tout terme

typable dans λ

Ch

2

(B

0

, Σ

J

) est fortement βJ

-normalisant. Comme le terme f T

Id

f

évo-qué plus haut est typable mais pas fortement normalisant, il s’en suit qu’il n’existe pas

d’interprétation satisfaisant ces conditions.

Un système fortement non paramétrique

Les règles (∀

Λ

I) et (∀

Λ

E) disent, avec la proposition 9.2.1, que si le terme t a un

type dépendant d’une variable X n’apparaissant dans le contexte, alors t[U/X] a pour

type T[U/X]pour toutU. Cependant, en l’absence de réécriture, le calcul effectué par le

termet[U/X]est essentiellement le même que celui effectué par t: le polymorphisme du

système F pur est paramétrique.

En s’inspirant de (9.14), on peut imaginer un système fortement non paramétrique dans

lequel une famille de termes (t

U

)

U∈T

, chacun de type T

U

, puisse être de type Π

U∈T

T

U

.

Une telle définition n’est pas bien fondée, et donc ce système n’existe probablement pas.

Cependant, il semble représenter l’idéal de paramétricité, et il est intéressant de voir que

l’on pourrait y coder les règles du combinateur J

.

Chapitre 9 Normalisation forte dans le lambda-calcul typé

On aurait des règles comme celles-ci :

2

I) ∀U∈ T. Γ ⊢t

U

:T

U

Γ ⊢(t

U

)

U∈T

U∈T

T

U

2

E) Γ ⊢t:Π

U∈T

T

U

Γ ⊢t·U:T

U

Ainsi,(t

U

)

U∈T

serait une généralisation deΛX.t

X

(avecX /∈FV(Γ)), et l’application _·U

serait vue comme une version infinie de la projectionπ

i

_.

Une règle de réduction (t

U

)

U∈T

·U 7→

Π

t

U

pourrait alors généraliser la règle de β

-réduction sur les types(ΛX.t)U7→t[U/X].

Une interprétation similaire à (9.14) conviendrait bien :

U∈T

T

U

K = {t| ∀U∈ T. t·U∈JT

U

K}. (9.15)

Bien entendu, comme pour (9.14) une telle interprétation ne pourrait être définie par

induction surT. Les ensembles βΠ-saturés seraient les ensemblesS de termes fortement

βΠ-normalisants tels que

(SAT1

Ch

)si E[ ]∈ SN

βΠ

alorsE[x]∈S,

(SAT2

Cβh

)si E[t[u/x]]∈S etu∈ SN

βΠ

alorsE[(λx:U)t]∈S,

(SAT2

Ch

Π

)si E[t

U

]∈S alorsE[(t

U

)

U∈T

·U]∈S.

Comme au lemme9.2.2, une interprétationβΠ-saturée vérifiant (9.15) serait correcte

par rapport aux règles de typage, et on en déduirait que siΓ ⊢t:Talorst∈JTK⊆ SN

βΠ

.

Cependant, les règles deJ

sont codables dans ce système, et donnent lieu à un terme

typable nonβΠ-normalisable. AvecId

Π

=

def

(λx:U.x)

U∈T

etU

Id

=

def

Π

U∈T

U⇒U, on

aId

Π

:U

Id

. Posons, pour tout U, V∈ T,

t

UV

=

def

λx:U⇒U.x siU=V

λx:U⇒U.Id

Π

·V sinon

Avec

f =

def

(t

UIdW

(λx:U

Id

.x U

Id

x))

W∈T

: Π

W∈T

W ⇒W = U

Id

,

on a

f U

Id

f →

βΠ

t

UIdUId

(λx:U

Id

.x U

Id

x)f →

βΠ

(λx:U

Id

.x U

Id

x)f →

βΠ

f U

Id

f .