jugement(59)est aussi valable dans la valuation ˆρ. On a finalement ˆρ;ρˆJ0K ⊕ Gj ` εj :ρˆJτ0K. On
a montré ce dernier jugement pour toute instance du jugement(52), ce qui nous permet d’appliquer la règle (CASA) et déduire ˆρ;ρˆJ0K ` πj ⇒ εj : ρˆJτ K → ρˆJτ0K (60). Par ailleurs, la définition
de(48)impliqueρˆJτ K →ρˆJτ0K FG π1; . . . ; πk (61). Les jugements(60)et la propriété(61)permettent
finalement de conclure ˆρ;ρˆJ0K ` ε :ρˆJτ → τ0K. ¥
6.7
Complétude
LEMME6.4.Pour tout motif π et tout ensemble de variables ˆV, on peut calculer un monotype τ , un
contexte 1 et un environnement 0 tels que ` π : τ ; 1; 0 et ˆV= dom(1)k
Démonstration. Aucun test algébrique n’intervient dans les règles de typage syntaxique des motifs. Il
suffit donc de parcourir mécaniquement la structure du motif π , en choisissant toujours les variables de type « fraîches », c’est-à-dire hors de ˆV et du domaine de tous les contextes 1 engendrés jusqu’au
moment où on choisit la variable. ¥
LEMME6.5.Si ` π : τ ; 1; 0, alors, pour tout ρ ∈ J1K,ρJτ K ` π :ρJτ K;ρJ0K.
Démonstration. Par induction sur la dérivation de ` π : τ ; 1; 0. Considérons la dernière règle R
appliquée :
• Si R = (π -UNIVERSELV), alors π est le motif universel _ et 0 = ∅. On peut appliquer directement
la règle (π -UNIVERSEL) pour déduire directementρJτ K ` π :ρJτ K; ∅.
• Si R = (π -PRIMV), alors π est un motif primitif $ , on a 1 = {α : α ∈$e}, τ = α et 0 = ∅. Toute
valuation ρ ∈ J1K est donc de la forme [α 7→ t] avec t ∈ J$eK. Par l’hypothèse (HYP-$e), on sait donc que t ∈ $ . Par définition de ce dernier ensemble, il existe donc une constante a ∈ $ (1)telle que t = a. En appliquant la règle (π -PRIM) à(1), on obtient a ` $ : a; ∅, c’est-à-dire t ` $ : t; ∅. Par ailleurs, comme τ = α, on remarque que t =ρJτ K et on a donc bienρJτ K ` $ :ρJτ K; ∅.
• Si R = (π -LIEURV), alors π est de la forme π0 as x et on a 0 = 00[x : τ ] avec ` π0: τ ; 1; 00.
Considérons alors une valuation quelconque ρ ∈ J1K. Par l’hypothèse d’induction, on a ρJτ K `
π0:ρJτ K;ρJ00K. En appliquant la règle (π -LIEUR) à ce dernier jugement, on en déduit queρJτ K `
π:ρJτ K;ρJ00K[x : ρJτ K]. On conclut en remarquant queρJ00K[x :ρJτ K] =ρJ0K.
• Si R = (π -CLASSEV), alors π est de la forme #C {`i = πi}. Pour tout i , on a ` πi: τi; 1i; 0i (2),
le monotype τ est une variable α, le contexte 1 vaut 1 = 11 ⊗ · · · ⊗ 1n ⊗ {α : κ} (3) avec
κ = α ∈ f#C ∧Vni =1α → τi 6∃C ·`gi et on a finalement la condition dom(11)= . . . dom(1k n)= αk (4).
Considérons une valuation quelconque ρ ∈ J1K. La définition(3) et la caractérisation des produits de contextes impose que cette valuation soit de la forme ρ = ρ1⊕ · · · ⊕ ρn ⊕ [α 7→ t] avec cha-
cune des ρi dans J1iK et t satisfaisant la contrainte κ, c’est-à-dire ρJκK (5). Appliquons mainte-
nant l’hypothèse d’induction à chacune des dérivations(2) et des valuations ρi. Pour chaque i , on
obtient :ρiJτiK ` πi: ρiJτiK;ρiJ0iK. Grâce à la condition (4), on constate que la valuation ρ coïn- cide avec chaque ρi sur le domaine de celle-ci. On a donc aussiρJτiK ` πi:ρiJτiK;ρJ0iK (6). Par ailleurs, le fait que κ est vraie (interprétation(5)) signifie que t ∈ ρJf#CK(7) et que pour chaque i ,
t →ρiJτiK 6
∃ J gC ·`
iK(8). L’hypothèse (HYP- f#C) appliquée à(7)nous dit que t ∈ #C(9). Par ailleurs,
l’hypothèse (HYP- gC ·`) appliqué à(8)nous dit que pour chaque i , il existe un monotype algébrique
il vientρiJtiK 6 C ·`i(ui)(11)et ui 6 t (12). D’autre part, par(9), on sait que t est dans #C, qui est le domaine de C ·`i. Donc C ·`i(t) est bien défini. En appliquant l’axiome (CHAMPS-COVARIANTS)
à(12), il vient alors C ·`i(ui)6 C ·`i(t)(13). Par transitivité de la relation de sous-typage appliquée
à(11)et(13), on obtientρiJtiK 6 C ·`i(t)(14). On peut alors appliquer la règle (π -SUB) à(6)et(14) pour déduire C ·`i(t) ` πi:ρiJτiK;ρJ0iK(15). Enfin, en appliquant (π -CLASSE) à(9)et à chacun des jugements(15), on déduit t ` π : t;ρJ01K ⊕ · · · ⊕ρJ0nK. On conclut en remarquant que t vautρJτ K
et queρJ01K ⊕ · · · ⊕ρJ0nK =ρJ0K.
• Si R = (π -SOUS-CLASSEV), alors π est de la forme #π0 où π0 est un motif de la forme C {. . .}.
Les prémisses de la règle nous disent que le monotype τ est une variable α, qu’il existe un contexte 10tel que α k= dom(10), ` π0: τ ; 10; 0 (16)et 1 = 10⊗ {α : α 6 τ }. Considérons une valuation
ρ∈ J1K. Par caractérisation du produit des contextes, ρ est nécessairement de la forme ρ0⊕ [α 7→ t] où ρ0 ∈ J10K et t 6
ρ0Jτ K (17). Appliquons l’hypothèse d’induction à (16)et à la valuation ρ0. Il vientρ0Jτ K ` π0:ρ0Jτ K;ρ0J0K. Comme ρ et ρ0 coïncident sur le domaine de ρ0, on a aussi ρJτ K ` π0:ρJτ K;ρJ0K (18). Appliquons alors la règle (π -SOUS-CLASSE) à(17) et (18)pour déduire t `
π0: t;ρJ0K. On conclut en remarquant que t =ρJτ K. ¥
On dit que ε est ˆV-NORMALEsi quand ε est une expression de la forme ∀V : κ . ε0, on a ˆV= V et εk 0
est ˆV∪ V-normale et dans les autres cas toutes les sous-expressions de ε sont également ˆV-normale. Intuitivement, une expression ε est ˆV-normale s’il n’y a pas de masquage de variables de types dans ε et si toutes les variables introduites sont en dehors de ˆV.
LEMME6.6 (COMPLÉTUDE).Soit ˆ1 = { ˆV : ˆκ} un contexte et ε une expression ˆV-normale. Si pour tout ˆρ ∈ J ˆ1K, il existe un polytype algébrique Tρˆ tel que ˆρ;ρˆJ0K ` ε : Tρˆ (1), alors il existe un
schéma de type σ tel que ˆ1; 0 ` ε: σ et pour tout ˆρ,ρˆJσ K 6]Tρˆ.
Démonstration. Notons que l’ensembleJ ˆ1K peut très bien être vide. On procède par induction sur la structure de ε. Remarquons d’abord qu’on peut se limiter au cas où chacun jugement(1) admet une dérivation simple. Si ce n’est pas le cas, on peut en effet appliquer le lemme de simplification 4.2 et trouver, pour chaque ˆρ, une dérivation simple de ˆρ;ρˆJ0K `0 ε: Tρˆ0telle que Tρˆ0 6] Tρˆ. En supposant
qu’on puisse en déduire qu’il existe σ tel que ˆ1; 0 ` ε: σ etρˆJσ K 6] Tρˆ0, alors on a aussiρˆJσ K 6] Tρˆ,
par transitivité de6].
Supposons donc que tous les jugements(1)admettent une dérivation simple notée ˆρ;ρˆJ0K `0ε:
Tρˆ(2). La dernière règle appliquée dans ces dérivations est alors déterminée par la nature de l’expres-
sion ε et est donc identique pour toutes les valuations ˆρ. On examine alors tous les cas possibles pour ε.
• Si ε est de la forme ∀V : κ . ε0, l’hypothèse que ε est ˆV-normale signifie que ˆV= V et que εk 0
est ˆV∪ V-normale. Les dérivations simples(2)terminent forcément toutes par la règle (INTROA) et donc, pour tout ˆρ ∈ J ˆ1K, on a ρˆJ{V : κ}K 6= ∅(3). Pour tout ρ ∈ ρˆJ{V : κ}K, il existe de plus un
polytype algébrique Tρ,ρ0ˆ tel que ˆρ⊕ ρ;ρˆJ0K ` ε0: Tρ,ρˆ0 (4)et l’ensemble de tous les Tρ,ρˆ0 est tel que
Tρˆ =
S
ρ∈ρˆJ{V: κ}KT
0 ˆ
ρ,ρ(5). Considérons maintenant le contexte ˆ1
0 = ˆ1⊗{V : κ}. Par la caractérisation
des produits de contextes, tout élément ˆρ0 ∈J ˆ10K est de la forme ˆρ⊕ρ avec ˆρ∈ J ˆ1K et ρ ∈ρˆJ{V : κ}K.
Comme ˆρet ˆρ0coïncident sur ˆV, on a d’autre partρˆJ0K =ρˆ0J0K. On peut donc réécrire le jugement(4) sous la forme ˆρ0;ρˆ0J0K ` ε : T0
ˆ
ρ,ρ. Ce dernier jugement a été montré quel que soit ˆρ
0∈ J ˆ10K. On peut
donc appliquer l’hypothèse d’induction à ε0 et déduire qu’il existe un schéma de type σ0 tel que ˆ
10; 0 ` ε0: σ0(6) et tel que, pour toute ˆρ ⊕ ρ ∈ J ˆ10K, on ait ˆ
6.7. COMPLÉTUDE 103
propriété(3)signifie, par définition, ˆ1 ` ∃V : κ (8). Appliquons maintenant la règle (INTROV) à(8)
et(6). On déduit ˆ1; 0 ` ε: σ avec σ = ∀V, α : κ ∧ σ0 6∃α . αoù α est choisie telle que α 6∈ ˆV∪ V.
Considérons maintenant un élément quelconque t ∈ Tρˆ. Par définition de Tρˆ (équation(5)), on sait
qu’il existe ρ ∈ ρˆJ{V : κ}K telle que t ∈ Tρ,ρ0ˆ . Par (7), il s’en suit qu’il existe t0 ∈ ρ⊕ρˆ Jσ0K tel que
t0 6 t, c’est-à-dire queρ⊕ρˆ Jσ0K 6∃ t(9). Posons maintenant ρ00 = ρ ⊕ [α 7→ t]. On a t =ρ⊕ρˆ 00JαK, l’inégalité(9)signifie queρ⊕ρˆ 00Jσ06∃ αK est vrai et enfin,ρ⊕ρˆ 00JκK est vrai car ρ ∈ρˆJ{V : κ}K. En fin de compte, on a donc t ∈ ρˆJσ K. On a donc prouvé que Tρˆ ⊆ ρˆJσ K, ce qui impliqueρˆJσ K 6] Tρˆ, ce
qu’il fallait démontrer.
• Si ε est une application de la forme ε1ε2, alors toutes les dérivations simples de (2) terminent
forcément par la règle (APPA). Le polytype Tρˆest alors un monotype Tρˆ= tρ0ˆ(10)et on a les jugements
ˆ
ρ;ρˆJ0K ` ε1: tρˆ → tρ0ˆ(11)et ˆρ;ρˆJ0K ` ε2: tρˆ(12). Ces deux derniers jugements étant valables quel
que soit ˆρ ∈ J ˆ1K, on peut appliquer l’hypothèse d’induction à ε1et ε2. D’une part, il existe donc un
schéma de type σ1tel que ˆ1; 0 ` ε1: σ1(13)et pour tout ˆρ ∈ J ˆ1K,ρˆJσ1K 6] tρˆ → tρ0ˆ (14). D’autre
part, il existe σ2tel que ˆ1; 0 ` ε2: σ2(15)et pour tout ˆρ,ρˆJσ2K 6] tρˆ(16). Choisissons maintenant
deux variables de type α et β fraîches , c’est-à-dire telles que αk=β k= ˆV. Posons ρ = [α 7→ tρˆ; β 7→ tρ0ˆ].
Les inéquations(14)et(16)montrent que l’interprétationρ⊕ρˆ Jσ16∃α → β ∧σ26∃ αK(17)est vraie.
Posons σ = ∀αβ : σ16∃α→ β ∧σ26∃α.β. D’après(17), on sait que tρ0ˆ ∈ρˆJσ K, ce qu’on peut aussi
écrireρˆJσ K 6] tρ0ˆ(18). L’interprétation du schéma σ dans ˆρest donc non-vide(19). En appliquant la
règle (APPV) à(13),(15)et(19), on conclut ˆ1; 0 ` ε1ε2: σ .
• Si ε est une fonction de la formefun x : τ ⇒ ε0, alors la dernière règle appliquée dans toutes les dérivation de(2)est forcément (FUNA). Pour toute ˆρ ∈ J ˆ1K, le polytype Tρˆ est donc de la forme
ˆ
ρJτ K → tρˆ (20)et on a ˆρ; G[x :ρˆJτ K] ` ε0 : tρˆ (21). On peut appliquer l’hypothèse d’induction à ε0
et à(21)et déduire qu’il existe un schéma de type σ0tel que ˆ1; 0[x : τ ] ` ε0: σ0(22)et tel que pour
toute ˆρ ∈ J ˆ1K, on aitρˆJσ0K 6] tρˆ (23). Choisissons une variable de type α fraîche, c’est-à-dire telle
que α k= ˆV. En appliquant la règle (FUNV) à (22)et en posant σ = ∀α : σ0 6∃ α . τ → α, il vient
ˆ
1; 0 ` ε: σ (24). Prenons maintenant une valuation quelconque ˆρ ∈ J ˆ1K. (23)peut aussi s’écrire
ˆ
ρJσ0K 6∃ tρˆ(25). En utilisant la valuation ρ = [α 7→ tρˆ], on constate que tρˆ ∈ρˆJσ K, c’est-à-dire que ˆ
ρJσ K 6] Tρˆ.
• Si ε est une variable, le résultat est trivial.
• Si ε est un accesseur de la forme C ·`, alors on a toujours la dérivation syntaxique ˆ1; 0 ` C ·`: gC ·`.
Par ailleurs, la dernière règle appliquée dans toutes les dérivations(2)étant forcément (GETA), on a
Tρˆ = t → C ·`(t) pour un certain monotype t. Par l’hypothèse (HYP- gC ·`), on a alors Tρˆ ∈ Jσ K et
doncρˆJσ K 6] Tρˆ.
• Si ε est de la formelet x = ε1 in ε2, alors les dérivations simples de(2) terminent forcément
par (LETA). Pour toute valuation ˆρ ∈ J ˆ1K, il existe donc Tρˆ1 tel que ˆρ;ρˆJ0K ` ε1 : Tρˆ1 (26) et
ˆ
ρ;ρˆJ0K[x : Tρˆ1] ` ε2: Tρˆ. Appliquons l’hypothèse d’induction à ε1et à(26). On peut donc trouver un
schéma σ1tel que ˆ1; 0 ` ε1: σ1(27)etρˆJσ1K 6] Tρ1ˆ (28). De cette dernière inégalité, on déduit que ˆ
ρJ0[x : σ1]K 6] ρˆJ0K[x : Tρˆ1] (29). On peut alors appliquer le lemme 6.1 à(27)et(29), ce qui nous
donne ˆρ;ρˆJ0[x : σ1]K ` ε2 : Tρˆ (30). Appliquons maintenant l’hypothèse d’induction à ε2 et(30).
On peut donc trouver un schéma σ2tel que ˆ1; 0[x : σ1] ` ε2: σ2(31)et tel que pour toute ˆρ, on ait ˆ
ρJσ2K 6] Tρˆ. On conclut finalement en appliquant la règle (LETV) à(27)et(31).
• Si ε est une expression récursive de la formefix x : σ ⇒ ε0, alors toutes les dérivations (2)se terminent forcément par la règle (FIXA). On a donc ˆρ;ρˆJ0[x : σ ]K ` ε0 : ρˆJσ K (32). Appliquons
l’hypothèse d’induction à ε0 et à(32). Il existe donc un schéma σ0tel que ˆ1; 0[x : σ ] ` ε0: σ0(33)
etρˆJσ0K 6] ρˆJσ K (34). Du jugement (32), on déduit queρˆJσ K n’est jamais vide. On a donc ˆ1 `
σ (35). D’autre part, la conjonction de toutes les inéquations (34) est par définition équivalente à ˆ
1 ` σ0 6] σ (36). On peut finalement appliquer la règle (F
IXV) à(33), (35)et(36)pour conclure
ˆ
1; 0[x : σ ] ` ε: σ .
• Si ε est un objet de la forme C {`i = εi}, alors toutes les dérivations simples(2)se terminent forcé-
ment par la règle (OBJETA). Pour toute valuation ˆρ ∈ J ˆ1K, le polytype Tρˆ est un monotype tρˆ ∈ #C
et pour tout i , on a ˆρ;ρˆJ0K ` εi : C ·`i(tρˆ)(37). Appliquons l’hypothèse d’induction à chacune des
sous-expressions εi et à(37). Il existe donc pour chaque i un schéma σi tel que ˆ1; 0 ` εi: σi (38)
etρˆJσiK 6] C ·`i(tρˆ). Choisissons deux variables α et β fraîches, c’est-à-dire telles que α k= β k= ˆV et
considérons le schéma suivant :
σ = ∀α : α ∈ f#C ∧ n ^ i =1 ∃β : (σi 6∃ β∧ α → β 6∃ C ·`) . αg (39)
En posant ρ = [α 7→ tρˆ], on a clairement ρ⊕ρˆ Jα ∈ f#CK et, pour chaque i, tρˆ → C ·`i(tρˆ) est
par l’hypothèse (HYP- gC ·`) dansJ gC ·`iK. La valuation ρ0 = [β 7→ C ·`i(tρˆ)] nous montre donc que
l’interprétationρˆJσ1 6∃ β ∧ α → β 6∃ C ·`giK est vraie. En fin de compte, on a donc montré que
tρˆ ∈ ρˆJσ K et donc queρˆJσ K 6] tρˆ (40). Cela prouve que σ est bien non-vide dans toute valuation ˆρ,
c’est-à-dire que ˆ1` σ (41). En appliquant la règle (OBJETV) à(38)et(41), on conclut ˆ1; 0 ` ε: σ .
• Si ε est une constante a, les dérivations simples de(2) terminent forcément par (CONSTANTEA)
et on a Tρˆ = a. Par ailleurs, on a toujours ˆ1; 0 ` ε :ea, par la règle (CSTV). On peut conclure en
remarquant que, par l’hypothèse (HYP-ea),JeaK = a.
• Si ε est une primitive f , les dérivations simples de(2)terminent forcément par (PRIMITIVEA). Tρˆ
est donc un monotype élément de f . Par ailleurs on a toujours ˆ1; 0 ` ε: ef , par la règle (PRIMV). Par
l’hypothèse (HYP- ef ), on conclut queJ efK 6]Tρˆ.
• Il reste le cas où ε est une méthode de la formemeth: τ → τ0©πj ⇒ εj; . . .
ª
. Les dérivations simples de(2)se terminent forcément par la règle (METHA). Pour toute ˆρ ∈ J ˆ1K, le polytype Tρˆ est
donc égal au monotypeρˆJτ K → ρˆJτ0K(42), on a le test de couvertureρˆJτ → τ0K FG π1; . . . ; πk (43)
et pour tout j , on a ˆρ;ρˆJ0K ` (πj ⇒ εj):ρˆJτ K →ρˆJτ0K(44)Fixons maintenant un indice j . Par la
règle (CASA), le jugement(44)est vrai si et seulement si :
∀t0j,Gj, (ρˆJτ K ` πj: t0j; Gj)⇒ ( ˆρ;ρˆJ0K ⊕ Gj ` εj :ρˆJτ0K)
(45)
Par le lemme 6.4, on sait qu’il existe τj, 1jet 0jtels que 1j= ˆk1(46)et ` πj: τj; 1j; 0j (47). Posons
ˆ
1j = ˆ1⊗ 1j⊗ τj 6 τ et considérons une valuation ˆρj quelconque dansJ ˆ1jK. Par la caractérisation
des produits, ˆρj est nécessairement de la forme ˆρ ⊕ ρj avec ˆρ ∈ J ˆ1K, ρj ∈ J1jK et ρjJτjK 6
ˆ
ρJτ K (48). Appliquons maintenant le lemme 6.5 à la valuation ρj ∈ J1jK et au jugement (47). On
obtient ρjJτjK ` πj: ρjJτjK;ρjJ0jK (49). En appliquant la règle (π -SUB) à (48)et à (49), il vient
ˆ
ρJτ K ` πj:ρjJτjK;ρjJ0jK (50). L’implication(45) appliquée à (50)nous permet alors de déduire ˆ
ρ;ρˆJ0K⊕ρjJ0jK ` εj :ρˆJτ
0K(51)Comme ˆρ=ρk
j, l’environnement dans ce dernier jugement est égal à ˆ
ρjJ0⊕0jK. Par ailleurs, le jugement(51)est également valide dans la valuation ˆρjcar celle-ci coïncide avec ˆρ sur le domaine de ˆρ. Finalement, on peut donc écrire ˆρj;ρˆjJ0 ⊕ 0jK ` εj : ρˆjJτ
0K(52). Le
jugement(52)a été montré pour toute valuation ˆρj ∈ J ˆ1jK. On peut appliquer l’hypothèse d’induction
à εj et à(52). Il existe donc un schéma de type σj tel que ˆ1j; 0 ⊕ 0j ` εj: σj (53)et tel que pour
toute valuation ˆρj ∈ J ˆ1jK, on ait ρˆjJσjK 6
] ˆ ρjJτ