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 λ
Ch2
(B
0, Σ
0, τ) avec des symboles d’arité nulle.
On suppose queτ associe à chaquef∈Σ
0un unique type τ(f)∈ T
2(B
0). Ces termes sont
donc décrits par la grammaire suivante :
t, u∈Λ
2Λ(Σ
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λ
Ch9.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 π
it:T
i.
L’interprétation de ∀X._ vu comme produit infini pourrait être définie de manière
analogue à celle de _×_ :
JT
1×T
2K = {t| ∀i. i∈{1, 2} =⇒ π
it∈JT
iK}
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λ
Ch2τ
(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→
Jt 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
ChU 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
IdX(λx:T
Id.x T
Idx) : T
Id,
on a
f T
Idf →
βJ′J
′T
IdT
Id(λx:T
Id.x T
Idx)f →
βJ′(λx:T
Id.x T
Idx)f →
βJ′f T
Idf .
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λ
Ch2
(B
0, Σ
J′),
c’est-à-dire
Γ ⊢
C2ΣhJ′t:T implique t∈JTK.
Il s’en suit que f T
Idf ∈ JT
IdK, donc que JT
IdK 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Γ ⊢
nt: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 Γ ⊢
nt:T alors
Γ[U/X]⊢
nt[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 ⊢
nx:T alorsΓ[U/X], x:T[U/X]⊢
nx:T[U/X].
(⇒I)
Γ, x:T
2,⊢
n−1t
1:T
1Γ ⊢
nλx:T
2.t
1:T
2⇒T
1Par hypothèse d’induction, car (λx:T
2.t
1)[U/X] =λx:T
2[U/X].t
1[U/X].
(∀
ΛI)
Γ ⊢
n−1t: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
ChU]∈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
ChT ∈JTK⇒JTK.
Siσ est une valuation sur X ∪ V telle que σ(x) ∈ JTK si x ∈ V
Tet σ(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Γ ⊢
Ch2Σ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
ChJ′
), 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 λ
Ch2
(B
0, Σ
J′) est fortement βJ
′-normalisant. Comme le terme f T
Idf
é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∈TT
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 :
(Π
2I) ∀U∈ T. Γ ⊢t
U:T
UΓ ⊢(t
U)
U∈T:Π
U∈TT
U(Π
2E) Γ ⊢t:Π
U∈TT
UΓ ⊢t·U:T
UAinsi,(t
U)
U∈Tserait 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
Upourrait 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 :
JΠ
U∈TT
UK = {t| ∀U∈ T. t·U∈JT
UK}. (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∈TetU
Id=
defΠ
U∈TU⇒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
Idx))
W∈T: Π
W∈TW ⇒W = U
Id,
on a
f U
Idf →
βΠt
UIdUId(λx:U
Id.x U
Idx)f →
βΠ(λx:U
Id.x U
Idx)f →
βΠf U
Idf .
Dans le document
Définitions par réécriture dans le lambda-calcul : confluence, réductibilité et typage
(Page 176-180)