• Aucun résultat trouvé

3.2 Confluence de −→ βγη

3.2.1 Unicité des formes normales

Afin de démontrer que deux formes βγη -normales équivalentes sont égales, nous démontrons des propriétés de compatibilité, énonçant que deux objets équivalents peuvent toujours être réduits vers des objets βγ-normaux de la même forme. Cette propriété permet alors d’obtenir l’unicité des formes normales par une récurrence simple sur la taille des objets considérés. La compatibilité est prouvée en examinant toutes les configurations possibles entre les séquences de −→βγ menant à une forme βγ-normale et le jugement d’équivalence dont on dispose entre

les deux objets considérés. La seule configuration qui ne soit pas couverte par un lemme précédemment établi (confluence de −→βγ, cohérence locale forte entre −→βγ et ≈, commutativité entre −→ηet ≈) est le cas où

une expansion précède cette séquence de −→βγ. C’est pourquoi nous prouvons dans un premier temps un lemme

d’ajournement de −→ηpermettant de déplacer une étape −→ηaprès une séquence de −→βγ.

La définition formelle des formes normales de −→ηet −→βγη est la suivante :

Définition 20 (Formes normales).

1. Un termet est en forme η-normale (resp. c-normale) pour Σ, Γ, ∆ et α si et seulement si Γ ; ∆ `Σ t −→η

(resp. −→c) t0: α implique t = t0.

2. Un type α est en forme η-normale (resp. c-normale) pour Σ, Γ et K si et seulement si Γ `Σ α −→η

(resp. −→c) α0 : K implique α = α0.

3. Un termet est en forme βγη-normale (resp. βγc-normale) pour Σ, Γ, ∆ et α si et seulement si t est en forme η-normale (resp. c-normale) pour Σ, Γ, ∆ et α, et t est en forme βγ-normale.

4. Un typeα est en forme βγη-normale (resp. βγc-normale) pour Σ, Γ et K si et seulement si α est en forme η-normale (resp. c-normale) pour Σ, Γ et K , et α est en forme βγ-normale.

Tout d’abord, nous établissons le lemme assurant que les termes produits par le critère syntaxique de la sec- tion 2.2.4 sont bien des formes βγη-normales.

Lemme 38 (Validité du critère syntaxiques). 1. SiΠ : Γ `ΣA(α)

alorsα est en forme βγη-normale pour Σ, Γ, K .

2. SiΠ : Γ ; ∆ `ΣE(t) et Γ ; ∆ `Σt : α

alorst est en forme βγη-normale pour Σ, Γ, ∆, α

3. SiΠ : Γ ; ∆ `ΣI(t) et Γ ; ∆ `Σt : α

alorst est en forme βγc-normale pour Σ, Γ, ∆, α .

Démonstration. Par récurrence sur la structure de Π.

Les deux lemmes suivants assurent que la βγ-normalité est préservée par ↓ et surtout par −→η. Cette propriété

est utile à la preuve de normalisation faible de −→βγη , puisqu’il suffit alors de normaliser pour −→βγ , puis

pour −→η. De plus, cette propriété est indispensable aux lemmes de compatibilité qui vont suivre. Elle permet

en effet de s’assurer que la βγ-normalité est transportée lorsqu’on traite une étape de ≡ en utilisant le lemme d’ajournement ou le lemme de commutativité.

Lemme 39 (Conservation de la βγ-normalité par ↓ ). 1. Sit ↓ x −→βγ u et u 6= t ↓ x

Alors∃t0tel que −→

3.2. Confluence de −→βγη 83

2. Sit ↓ l −→βγ u et u 6= t ↓ l

Alors∃t0tel que −→

βγ t0ett 6= t0.

Démonstration. Immédiat par récurrence sur la taille de t.

Lemme 40 (Conservation de la βγ-normalité par −→η).

1. SiΠ : Γ ; ∆ `Σt −→η (ou −→c) t0 : α

ett0 −→βγ t00avect06= t00

Alors∃t000tel quet −→

βγ t000avect 6= t000.

2. SiΠ : Γ `Σα −→η (ou −→c) α0: K

etα0 −→βγ α00avecα06= α00

Alors∃α000tel queα −→

βγ α000avecα 6= α000.

Démonstration. Par récurrence sur la hauteur de Π.

– Si Π termine par (c / η), la récurrence est immédiate.

– Si Π termine par : Γ ; ∆1`Σu −→c u0: α ( β Γ ; ∆2`Σ v −→η v0: α (lin. app.) Γ ; ∆1, ∆2`Σu v −→cu0v0: β On a donc u0v0 −→βγ t00. 1. Si t00 = u00v00avec u0 −→

βγ u00et v0 −→βγ v00, alors on a soit u0 6= u00soit v0 6= v00. Les 2 cas

étant similaires, supposons u06= u00.

On a donc par hypothèse de récurrence ∃u000tel que u −→βγ u000et u 6= u000.

On a donc bien t = u v −→βγ u000v avec u000v 6= t.

2. Si u0= λ0x : γ0.w0, t00= w00[x := v00] avec w0 −→

βw00et v0 −→βv00,

par examen des règles de −→c, u est de la forme λ0x : γ.w.

On a donc u v −→βw[x := v] 6= u v.

3. Si t00est obtenu par une autre réduction ou une conversion permutative, la preuve est similaire au cas précédent.

– Si Π termine par une autre règle de congruence, la preuve est smilaire au cas précédent.

– Si Π termine par :

t n’est pas une abstraction linéaire Γ ; ∆ `Σt −→c t0: α ( β Γ `ΣA(α ( β)

Γ ; ∆ `Σ t −→ηλ0x : α.(t0↓ x) : α ( β

Par le lemme 38 (validité du critère syntaxique), α est en forme β-γ-normale. On a t00= λ0x : α.u00avec t0 ↓ x −→βγ u00et t0 ↓ x 6= u00.

Par le lemme 39 (conservation de la βγ-normalité par ↓ ), ∃t000tel que t −→βγ t000et t 6= t000.

– Si Π termine par une autre η-expansion la preuve est similaire au cas précédent.

Cette propriété de conservation de la βγ-normalité permet également de déduire le lemme d’ajournement du lemme de commutativité, plutôt que de le prouver en énumérant tous les cas possibles.

Lemme 41 (Ajournement de −→η).

1. SiΠ1: Γ ; ∆ `Σt −→η (ou −→c) u : α et Π2: u −→∗βγ v

Alors∃u0, v0tels que

t −→∗βγ u0,

Γ ; ∆ `Σu0 −→ηv0 : α,

Γ `Σv −→∗βγ≈ v0et

u0,v0sont en formeβγ-normale.

2. SiΠ1: Γ `Σα −→η(resp. −→c) β : K et Π2: β −→∗βγ γ

Alors∃β0, γ0tels que

α −→∗βγ β0,

Γ `Σβ0 −→η(resp. −→c) γ0: K ,

Γ `Σγ −→∗βγ≈ γ0et

β0,γ0sont en formeβγ-normale.

Démonstration. On traite le premier cas, le second étant similaire.

Par le théorème 2 (normalisation forte de −→βγ), ∃u0forme βγ-normale telle que t −→∗βγ u0.

Par le lemme 37 (commutativité entre −→βγ et −→η), ∃v0tel que

Γ ; ∆ `Σu0 −→ηv0 : α et

Γ `Σu −→∗βγ≈ v0.

Par le lemme 40 (conservation de la βγ-normalité par −→η), v0est une forme βγ-normale.

Par le théorème 3 (confluence de −→βγ et le lemme 34 (cohérence locale forte de ≈ et −→βγ), on a donc

Γ `Σv −→∗βγ≈ v0.

Le lemme suivant énonce une propriété basique de ≡ nécessaire pour la preuve de la compatibilité. ≡ est en effet bien congruente. La seule difficulté est posée par le mode de congruence particulier de −→η, mais les cas

concernés sont facilement résolus en utilisant le lemme 22 (décomposition de −→η). Ainsi, si Γ ; ∆1`Σf −→η

λx : α(f x) : α ( β et Γ ; ∆2 `Σu −→ηu0, on n’a certes pas Γ ; ∆1, ∆2`Σ f u −→η (λx : α(f x)) u : β,

mais on a bien (λx : α(f x)) u −→β f u, d’où Γ ; ∆1, ∆2`Σf u ≡ (λx : α(f x)) u.

Lemme 42 (congruence pour ≡).

SiΓ ; ∆1`Σt ≡ t0: α ( β et Γ ; ∆2`Σu ≡ u0 : α AlorsΓ ; ∆1, ∆2`Σt u ≡ t0u0 : α SiΓ ; ∆ `Σt ≡ t0 : a et bindingΣ(a) = [l1: α1; . . . ; ln: αn] Alors∀i ∈ {1, · · · , n}, Γ ; ∆ `Σt.li≡ t0.li: α SiΓ `Σ α ≡ α0: (β) K et Γ ; . `Σt ≡ t0: β AlorsΓ `Σα t ≡ α0t0: K

Démonstration. Immédiat par récurrence sur le nombre de réécritures impliquées dans les ≡.

Les deux lemmes suivants établissent la propriété de compatibilité, qui est au coeur de cette section. L’essence de cette propriété est d’assurer que deux formes βγη-normales équivalentes sont forcément de la même forme syntaxique, et que leurs sous-termes sont également équivalents. Cependant, pour les besoins de la démonstration par récurrence sur le nombre d’étapes dans le jugement d’équivalence, cette propriété est étendu au cas où l’un des deux objets comparés n’est pas en forme βγη-normale. En ce cas, il suffit de considérer la forme βγ-normale de cet objet.

3.2. Confluence de −→βγη 85

1. Sit u est une forme βγη-normale dans Σ, Γ, ∆, t n’est pas de la forme cietΓ ; ∆ `Σt u ≡ v : β

Alors – Soit∃t0, u0, α, ∆ 1, ∆2tels que Γ `Σ v −→∗βγ≈ t0u0, Γ ; ∆1`Σt ≡ t0 : α ( β, Γ ; ∆2`Σu ≡ u0 : α, ∆ = ∆1, ∆2,

t0n’est pas de la formeciett0u0est en formeβγ-normale.

– Soit∃t0, u0, α tels que

Γ `Σ v −→∗βγ≈ t0u0,

Γ ; ∆ `Σt ≡ t0 : (Πx : α) β0,

Γ ; . `Σu ≡ u0 : α,

β = β0[x := u],

t0n’est pas de la formeciett0u0est en formeβγ-normale.

2. Siciu est une forme βγη-normale dans Σ, Γ, ∆, et Γ ; ∆ `Σciu ≡ v : β

Alors∃u0tel que

Γ `Σv −→∗βγ≈ ciu0,

Γ ; ∆ `Σu ≡ u0: α et

ciu0est en formeβγ-normale.

3. Sit.l est une forme βγη-normale dans Σ, Γ, ∆ et Γ ; ∆ `Σt.l ≡ v : β

Alors∃t0, a tels que

Γ `Σv −→∗βγ≈ t0.l,

Γ ; ∆ `Σt ≡ t0: a et

t0.l est en forme βγ-normale.

4. Si{case w of (cixi) → ti}ni=1est une formeβγη-normale dans Σ, Γ, ∆ , ∃i tel que ti6= cixietΓ ; ∆ `Σ

{case w of (cixi) → ti}ni=1≡ v : β Alors∃w0, t0 1, · · · , t0n, a, ∆1, ∆2tels que Γ `Σv −→∗βγ≈ {case w0of(cixi) → t0i} n i=1, Γ ; ∆1`Σw ≡ w0: a,

bindingΣ(a) = {c1ofα1| . . . |cnofαn}, ∀i ∈ {1, · · · , n},

Γ ; ∆2, xi`Σ ti≡ t0i: αi,

∆ = ∆1, ∆2,

∃i tel que t0

i 6= cixiet

{case w0of(c

ixi) → t0i} n

i=1est en formeβγ-normale.

5. Si {case w of (cixi) → ci xi}ni=1 est une forme βγη-normale dans Σ, Γ, ∆ et Γ ; ∆ `Σ {case w of

(cixi) → cixi}ni=1 ≡ v : a

Alors

– Soit∃w0tel que

w0n’est pas une analyse de cas, w0n’est pas de la formecjk,

Γ `Σ v −→∗βγ≈ w 0et

w0est en formeβγ-normale. – Soit∃w0tel que

Γ ; ∆ `Σw ≡ w0 : a et

{case w0of(c

ixi) → cixi}ni=1est en formeβγ-normale.

6. Six est une forme βγη-normale dans Σ, Γ, ∆ et Γ ; ∆ `Σ x ≡ v : β

Alorsv −→∗βγ x.

7. Sic est une forme βγη-normale dans Σ, Γ, ∆ et Γ ; ∆ `Σc ≡ v : β

Alorsv −→∗ βγ c.

8. Siα t est une forme βγη-normale dans Σ, Γ, ∆ et Γ `Σα t ≡ β : K

Alors∃α0, t0, γ tels que

Γ `Σβ −→∗βγ≈ α0t0,

Γ `Σα ≡ α0 : (γ) K ,

Γ ; `Σt ≡ t0: γ et

α0t0est en formeβγ-normale.

9. Sia est une forme βγη-normale dans Σ, Γ, ∆ et Γ `Σa ≡ α : K

Alorsα −→∗βγ a.

Démonstration. Par récurrence sur le nombre de réécritures impliquées dans ≡. On traite le premier cas, les autres étant similaires.

On suppose qu’on a un séquent Γ ; ∆ `Σ t u ≡ v : β sur lequel on dispose de l’hypothèse de récurrence :

∃t0, u0, α, ∆ 1, ∆2tels que Γ `Σv −→∗βγ≈ t0u0, Γ ; ∆1`Σt ≡ t0: α ( β, Γ ; ∆2`Σu ≡ u0: α, ∆ = ∆1, ∆2,

t0n’est pas de la forme c iet

t0u0est en forme βγ-normale.

On distingue à présent les différentes possibilités d’ajouter une étape de réécriture supplémentaire vers un terme v0:

– Si v0 −→βγ v, la preuve est immédiate.

– Si v −→βγ v0,

par les lemmes 3 (confluence de −→βγ) et 34 (cohérence locale forte pour ≈ et −→βγ), et le fait que t0u0

est en forme βγ-normale, on a v0 −→∗ βγ t0u0.

– Si Γ ; ∆ `Σv −→η v0 : β,

par le lemme 37 (commutativité de −→η et −→βγ ), ∃v00 tel que Γ `Σ v0 −→∗βγ≈ v00 et Γ ; ∆ `Σ

t0u0 −→ηv00: β. Cette dernière règle est une congruence, car sinon on pourrait de la même façon expandre

t u, qui ne serait donc pas une forme normale. On a donc par le lemme 19 (inversion) v00 = t00 u00, avec

Γ ; ∆0

1`Σt0 −→ct00: α0( β et Γ ; ∆02`Σu0 −→ηu00: α0.

Par le lemme 14 (variables libres), on a ∆1= ∆01et ∆2= ∆01.

On a Γ ; ∆2`Σu0: α et Γ ; ∆2`Σu0: α0, donc par le lemme 29 (equivalence du typage),

Γ `Σα ≡ α0 : type .

3.2. Confluence de −→βγη 87

Par le lemme 40 (conservation de la βγ-normalité par −→η), t00u00est en forme βγ-normale.

Par le lemme 19 (inversion), t00est de la même forme que t0, donc pas de la forme ci.

– Si Γ ; ∆ `Σv0 −→ηv : β,

par les lemmes 41 (ajournement de −→η), et 34 (cohérence locale forte pour ≈ et −→βγ ), et le fait que

t0u0est en forme βγ-normale, ∃w, w0formes βγ-normales telles que v0 −→∗

βγ w ,

Γ ; ∆ `Σ w −→ηw0: β et

Γ `Σt0u0 ≈ w0.

Par examen des règles de −→ηet ≈, on a w0 = t000u000 et w = t00u00. La preuve est alors similaire au cas

précédent.

Le lemme de compatibilité faible décrit un mécanisme similaire lorsque l’on s’intéresse à un terme en forme βγc-normale plutôt que βγη-normale.

Lemme 44 (Compatibilité faible).

1. Sit.l est une forme βγc-normale dans Σ, Γ, ∆ et Γ ; ∆ `Σt.l ≡ v : γ ( β

Alors

– Soit∃t0, a tels que

Γ `Σ v −→∗βγ≈ t0.l,

Γ ; ∆ `Σt ≡ t0 : a et

t0.lest en forme βγ-normale. – Soit∃t0, a tels que

Γ `Σ v −→∗βγ≈ λ

0x : γ.((t0.l) x),

Γ ; ∆ `Σt ≡ t0 : a et

λ0x : γ.((t0.l) x)est en forme βγ-normale.

2. On a une propriété similaire pour les 7 autres combinaisons entre la forme du terme faiblement normal (application et projection) et son type (type fonctionnel linéaire, produit dépendant, type somme et type produit).

Démonstration. Similaire à la preuve du lemme précédent.

Puisque les lemmes de compatibilités impliquent que deux formes normales équivalentes ont forcément la même forme syntaxique, et que leurs sous-termes sont eux-mêmes équivalents, il est aisé d’établir une récurrence pour montrer que ces deux formes normales équivalentes sont en réalité syntaxiquement égales. C’est ce que nous formalisons dans le lemme suivant :

Lemme 45 (unicité des formes normales).

1. Sit et t0sontβγη-normaux pour Σ, Γ, ∆, α , Γ ; ∆ `Σt0: α , Γ ; ∆ `Σt : α et Γ ; ∆ `Σt ≡ t0: α

Alorst = t0.

2. Siα et α0sontβγη-normaux pour Σ, Γ, K , Γ `Σ α : K , Γ `Σα0 : K et Γ `Σα ≡ α0: K

Alorsα = α0.

3. Sit et t0sontβγc-normaux pour Σ, Γ, ∆, α et t et t0ne sont pasβγη-normaux pour Σ, Γ, ∆, α, Γ ; ∆ `Σ

t : α , Γ ; ∆ `Σt : α et t est une application ou une projection et Γ ; ∆ `Σt ≡ t0: α

4. Siα et α0sontβγc-normaux pour Σ, Γ, K et α et α0ne sont pasβγη-normaux pour Σ, Γ, K , Γ `Σ α : K

, Γ `Σα0: K et Γ `Σα ≡ α0 : K

Alorsα = α0.

Démonstration. Par récurrence sur la taille de t ou α. On traite le premier cas, les autres étant similaires. – Si t = λ0x : β.u, alors par le lemme 19 (inversion), Γ `Σα ≡ β ( γ : type .

Si t0n’était pas une abstraction, par l’hypothèse 1 (existence des formes normales), on pourrait lui appliquer une expansion, or t0est une forme normale dans Σ, Γ, ∆. On a donc t0 = λ0x : β0.u0, et Γ `

Σ β ≡ β0 :

type.

β et β0sont βγη-normaux pour Σ, Γ, donc par hypothèse de récurrence, β = β0.

Par le lemme 42 (congruence pour ≡), on a Γ ; ∆, x : β `Σ (λ0x : β.u) x ≡ (λ0x : β.u0) x : γ, or

(λ0x : β.u) x −→

β u et (λ0x : β.u0) x −→β u0, donc Γ ; ∆, x : β `Σ u ≡ u0 : γ. u et u0 sont βγη-

normaux pour Σ, Γ, ∆, x : β donc par hypothèse de récurrence, u = u0. On a donc bien t = t0. – Si t est une abstraction non linéaire ou un enregistrement, la preuve est similaire au cas précédent.

– Si t = u v, alors par le lemme 43 (compatibilité), t0 = u0v0avec Γ ; ∆1`Σu ≡ u0: β et

Γ ; ∆2`Σv ≡ v0 : β.

v et v0sont βγη-normaux pour Σ, Γ, ∆

2, et u et u0sont βγc-normaux, mais pas βγη-normaux pour Σ, Γ, ∆1.

Par l’hypothèse de récurrence, on a donc u = u0et v = v0, donc t = t0. – Les autres cas sont similaires.