• Aucun résultat trouvé

Définition (Substitutivitée de la cumulativité des produits)

Γ ⊢ λx : A.M : ∀x : A.B (2) Γ ⊢ N : A Γ ⊢ (λx : A.M) N : B[N/x] (0)

On cherche à montrer Γ ⊢ M[N/x] : B[N/x] (*). Si l’on applique le lemme d’inversion (lemme1.1.32) sur (1), on obtient qu’il existe B et s tels que Γ, x : A ⊢ M : B (2), Γ ⊢ ∀x : A.B : s (3) et ∀x : A.B 4Γ ∀x : A.B (4). Or comme on se trouve dans un CTS on a 4=4 et ainsi on déduit de (4) que ∀x : A.B 4 ∀x : A.B (4) et que WFΓ(∀x : A.B) (4′′). D’après le lemme 1.1.41 on déduit de (4) que A ≡ A et que B[N/x] 4 B[N/x]. Or d’après le lemme d’inversion 1.1.32, (3) implique qu’il existe sA telle que Γ ⊢ A : sA (5) et la règle de conversion (lemme 1.1.8) on en déduit Γ ⊢ N : A (6). Puis de (6), (2) et grâce au lemme de substitution (lemme 1.1.23), on a Γ ⊢ M[N/x] : B[N/x]. Enfin, le lemme 1.1.35 et (0) nous permettent de déduire que WFΓ(B[N/x]) et lemme 1.1.28, nous permet

de conclure (*). ,

Comme nous pouvons le deviner dans la démonstration, si on veut étendre la préservation du typage au WCTS, il semble nécessaire de prouver la substitutivité de la cumulativité des produits :

1.1.43 Définition (Substitutivitée de la cumulativité des produits)

On dit d’un WCTS qu’il a la propriété de substitutivité de la cumulativité des produits si ∀x : A.B 4Γ ∀x : A.B∧ Γ ⊢ N : AA ≡ A∧ B[N/x] 4ΓB[N/x]

On notera P |= SCP pour signifier qu’un WCTS à cette propriété ou tout simplement |= SCPs’il n’y a pas d’ambiguïté sur le WCTS concerné.

En réalité, cette propriété est nécessaire pour prouver la préservation du typage. En effet, les WCTS qui préservent les types vérifient la propriété de substitutivité de la cumulativité des produits :

1.1.44 Lemme

|= SRβ ⇒ |= SCP

Démonstration On procède par induction sur la longueur de la chaîne qui mène de ∀x : A.B à ∀x : A.B :

– Si ∀x : A.B = ∀x : A.B (avec WFΓ(∀x : A.B)), on a A ≡ A et B[N/x] 4 B[N/x]. Par inversion (lemme1.1.32), on a WFΓ,x:A(B) et par substitution (lemme1.1.23), WFΓ(B[N/x]). Et donc on a bien B[N/x] 4

Γ B[N/x].

– Supposons ∀x : A.B = P1 4Γ · · · 4Γ Pn 4Γ Pn+1 = ∀x : A.B D’après le lemme 1.2.2, il existe A0, B0 tel que PnD∀x : A0.B0, ADA0, et B0 4 B. Par préservation du typage et comme WFΓ(Pn+1) on a WFΓ(∀x : A0.B0) et donc ∀x : A.B 4ΓP2 4Γ· · · 4Γ Pn−14Γ∀x : A0.B0 et par hypothèse de récurrence, on en déduit que A ≡ A0 et B[N/x] 4

Γ,x:AB0[N/x]. D’après le lemme d’inversion (lemme1.1.32), WFΓ(Pn+1) implique WFΓ,x:A(B). D’après le lemme de substitution (lemme1.1.23), on en déduit que WFΓ(B[N/x]). Enfin, le lemme1.1.6, permet de conclure que

B0[N/x] 4 B[n/x] et donc que B0[N/x] 4Γ B[n/x]. ,

Mais elle est également suffisante. Un WCTS préserve les types si et seulement s’il vérifie la propriété de substitutivité de la cumulativité des produits :

1.1.45 Lemme (Préservation du typage dans certains WCTS)

|= SCP ⇒ |= SRβ

Démonstration On montreSRβ en prouvant l’implication plus forte suivante :

Γ ⊢ M : AM ։ M ⇒ Γ ⊢ M : A (1) ∧ Γ ։ Γ ⇒ Γ ⊢ M : A (2) par induction sur la dérivation Γ ⊢ M : A.

– Axiome : On est dans le cas où Γ = hi, M = s et A = r avec (s, r) ∈ A. 1. Ce cas est trivial car M = s ne peut pas contenir de redex.

2. Ce cas est également trivial car Γ = hi et on ne peut donc pas avoir Γ ։ Γ.

– Variable : On est dans le cas où Γ = ∆, x : A, M = x et où ∆ ⊢ A : s pour une sorte s. 1. Ce cas est trivial car M = x ne peut pas contenir de redex.

2. Si on a Γ ։ Γ alors deux cas sont à distinguer :

– Soit Γ = ∆, x : A et ∆ ։ ∆. Par hypothèse d’induction, on déduit ∆ ⊢ A : s et donc d’après la règle Variable, ∆, x : A ⊢ x : A.

– Soit Γ = ∆, x : A et A ։ A. Par hypothèse d’induction, on déduit ∆ ⊢ A : s et donc ∆, x : A ⊢ x : A, puis grâce à la dérivation suivante :

∆ ⊢ A : s Variable Γ⊢ x : A ∆ ⊢ A : s ∆ ⊢ A : s Affaiblissement Γ ⊢ A : s Conversion Γ⊢ x : A

1. Si M ։ M, alors par hypothèse d’induction, ∆ ⊢ M : A et d’après la règle Affaiblisse-ment, Γ ⊢ M : A.

2. Si Γ ։ Γ, on distingue deux cas :

– Soit Γ = ∆, x : B et ∆ ։ ∆. Par hypothèse d’induction, on déduit ∆ ⊢ M : A, ⊢ B : s et donc d’après la règle Affaiblissement, ∆, x : B ⊢ M : A.

– Soit Γ = ∆, x : B et B ։ B. Par hypothèse d’induction, on déduit ∆ ⊢ B : s et donc ∆, x : B ⊢ M : A d’après la règle Affaiblissement.

– Abstraction : Ici, M est de la forme λx : A1.N et A de la forme ∀x : A1.A2 avec Γ, x : A1N : A2 et Γ ⊢ ∀x : A1.A2: s.

1. Si M ։ M, on distingue deux cas :

– Soit M est de la forme λx : A1.N avec N ։ N, auquel on a par hypothèse d’induction que Γ, x : A1 ⊢ N : A2 et on conclut grâce à la règle Abstraction que Γ ⊢ λx : A1.N : ∀x : A1.A2.

– Soit M est de la forme λx : A

1.N avec A1։A

1, alors par hypothèse de récurrence on a Γ ⊢ ∀x : A

1.A2 : s (car ∀x : A1.A2 ։ ∀x : A

1.A2) et Γ, x : A

1 ⊢ N : A2 et ainsi la règle Abstraction nous prouve que Γ ⊢ M : A.

2. Si Γ ։ Γ, alors par hypothèse d’induction on a : Γ, x : A1 ⊢ N : A2 et Γ ⊢ ∀x : A1.A2 : s et la règle Abstraction, nous donne Γ ⊢ λx : A1.N : ∀x : A1.A2.

– Application : Dans ce cas, M est de la forme M1M2 avec Γ ⊢ M1: ∀x : B.C (1) et Γ ⊢ M2: B

(2) et A est de la forme C[M2/x].

1. Si M ։ M, alors on distingue trois cas : – Mest de la forme (M

1M2) avec M1։M1, alors par hypothèse d’induction on a Γ ⊢ M 1: ∀x : B.C et donc d’après la règle Application, on conclut que Γ ⊢ M

1M2: C[M2/x]. – M est de la forme (M1M

2) avec M2 ։ M

2, alors par hypothèse d’induction on a Γ ⊢ M2 : B. Or d’après le lemme 1.1.34, on déduit de (1) qu’il existe une sorte s telle que Γ, x : B ⊢ C : s et d’après le lemme de substitution (lemme 1.1.23) et (2), on en déduit que Γ ⊢ C[M2/x] : s. Enfin, on a C[M2/x] ≡ C[M

2/x] on peut donc finir avec la dérivation suivante : Γ ⊢ M1 : ∀x : B.C Γ ⊢ M 2 : B Γ ⊢ M1M2 : C[M 2/x] Γ ⊢ C[M2/x] : s Conversion Γ ⊢ M1M2 : C[M2/x]

– M est de la forme λx : B.N et M est de la forme N[M2/x]. On est ici dans le cas clef de la démonstration (c’est le seul que l’on avait traité pour la preuve du lemme 1.1.42). Reprenons donc cette démonstration. On cherche à montrer que Γ ⊢ N[M2/x] : C[M2/x] (*). Si on applique le lemme d’inversion (lemme 1.1.32) sur (1), on obtient qu’il existe C tel que Γ, x : B ⊢ N : C (2), WFΓ(∀x : B.C) (3) et ∀x : B.C 4

Γ ∀x : B.C(4). Comme on se trouve dans WCTS qui a la propriété de substitutivité de la cumulativité des produits, on déduit de (4) et de (2) que B ≡ B et que C[M2/x] 4Γ,x:B C[M2/x]. Par inversion de (2), on a WFΓ(B) et donc Γ ⊢ M2: B (5). Enfin, le lemme de substitution (lemme1.1.23) avec (2) et (5), nous donne Γ ⊢ N[M2/x] : C[M2/x] et le lemme 1.1.28 nous permet de conclure (*).

2. Si Γ ։ Γ, alors par hypothèse d’induction on a Γ ⊢ M1 : ∀x : B.C et Γ ⊢ M2 : B et la règle Application permet de conclure que Γ ⊢ M1M2: C[M2/x].

– Produit : Ici, M est de la forme ∀x : A1.A2 et A est une sorte s3 et on a Γ ⊢ A1 : s2 et Γ, x : A1⊢ A2 : s2 pour (s1, s2, s3) ∈ R.

1. Si M ։ M, on distingue deux cas : – Soit M est de la forme ∀x : A

1.A2 avec A1 ։ A1, et par hypothèse d’induction on a Γ ⊢ A

1 : s2 et Γ, x : A

1 ⊢ A2 : s2 et donc d’après la règle Produit on en conclut Γ ⊢ ∀x : A

1.A2: s3.

– Soit M est de la forme ∀x : A1.A2 avec A2 ։ A2, et par hypothèse d’induction on a Γ, x : A1 ⊢ A

2 : s2 et donc d’après la règle Produit on en conclut Γ ⊢ ∀x : A1.A 2 : s3. 2. Si Γ ։ Γ, alors par hypothèse d’induction on a Γ ⊢ A1 : s2 et Γ, x : A1 ⊢ A2 : s2 et donc

d’après la règle Produit, on conclut Γ⊢ ∀x : A1.A2 : s3.

– Cumulativité : Dans ce cas, on a Γ ⊢ M : B et Γ ⊢ A : s pour un certain B tel que B 4 A. 1. Si M ։ M, alors par hypothèse d’induction, on a Γ ⊢ M: B et d’après la règle

Cumula-tivité, on a Γ ⊢ M: A.

2. De même si Γ ։ Γ, alors par hypothèse d’induction, on a Γ ⊢ M : B et d’après la règle Cumulativité, on a Γ ⊢ M : A.

– Cumulativité-Sortes : Dans ce cas, on a Γ ⊢ M : C et A = s avec C 4 A.

1. Si M ։ M, alors par hypothèse d’induction, on a Γ ⊢ M : C et d’après la règle Cumulativité-Sortes, on a Γ ⊢ M: s.

2. De même si Γ ։ Γ, alors par hypothèse d’induction, on a Γ ⊢ M : C et d’après la règle

Cumulativité-Sortes, on a Γ ⊢ M : s. ,

Ainsi, il apparaît que la preuve habituelle pour démontrer la préservation du typage ne fonctionne pas dans le cas le plus général puisqu’elle nécessite de prouver un lemme qui lui est équivalent. Et il ne semble pas y avoir de décroissance évidente qui permettrait de prouverSRβ etSCPpar une récurrence mutuelle. Le problème reste donc ouvert :