• Aucun résultat trouvé

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 :ρiiK ` πi: ρiiK;ρ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 ` πiiiK;ρJ0iK (6). Par ailleurs, le fait que κ est vraie (interprétation(5)) signifie que t ∈ ρJf#CK(7) et que pour chaque i ,

t →ρiiK 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) ` πiiiK;ρ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 ρjjK 6

ˆ

ρJτ K (48). Appliquons maintenant le lemme 6.5 à la valuation ρj ∈ J1jK et au jugement (47). On

obtient ρjjK ` πj: ρjjK;ρjJ0jK (49). En appliquant la règle (π -SUB) à (48)et à (49), il vient

ˆ

ρJτ K ` πjjjK;ρ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 : ρˆj

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 ρˆjjK 6

] ˆ ρj