• Nenhum resultado encontrado

6.2 Caracteriza¸c˜ ao das tipagens principais

7.1.2 Redu¸c˜ ao de sujeito

As s-nf s˜ao exatamente os termos de λdB, onde a teoria de λsSM coincide com λSMdB. Assim,

a propriedade de redu¸c˜ao de sujeito ser´a valida apenas para a β-contra¸c˜ao e com a no¸c˜ao de restri¸c˜ao para contextos. Com essa finalidade, provamos SR para o s-calculus.

Teorema 7.1.5 (SR para s em λsSM): Seja M : hΓ `

λsSM τ i. Se M →s M

0, ent˜ao

M0: hΓ `λsSM τ i.

Demonstra¸c˜ao. A prova ´e feita atrav´es da an´alise da propriedade em cada regra de s.

7.1 Tipos com interse¸c˜ao para o λs-calculus 131

Se Γ = nil, ent˜ao pelo Lema 7.1.4.2 tem-se dois casos.

Para o primeiro tem-se λ.M : hnil ` τ i e N : h∆ ` ρi logo, pelo Lema 7.1.3.2, M : hnil ` τ0i onde τ = ω → τ0 ou M : h∧m

j=1σj.nil ` τ0i onde τ = ∧mj=1σj → τ0.

Note que i ≥ 1 logo i+1 ≥ 2. Assim, por (nil-σ) tem-se M σi+1N : hnil ` τ0i ou

M σi+1N : h∧mj=1σj.nil ` τ0i logo λ.(M σi+1N ) : hnil ` ω → τ0i por →0iou λ.(M σi+1N ) :

hnil ` ∧m

j=1σj→ τ0i por →i.

Para o segundo caso tem-se λ.M : hωi−1. ∧m

j=1σj.nil `λsSM τ i onde ∀1 ≤ j ≤ m, N : hnil ` σji. Assim, pelo Lema 7.1.3.3 tem-se M : hu.ωi−1. ∧mj=1σj.nil ` τ0i onde

τ = u → τ0. Portanto, se u 6= ω ent˜ao por (∧-ω-σ) tem-se que M σi+1N : hu.nil ` τ0i

e se u = ω ent˜ao por (∧-nil-σ) tem-se que M σi+1N : hnil ` τ0i. Logo, λ.(M σi+1N ) :

hnil ` u → τ0i por →

i ou λ.(M σi+1N ) : hnil ` ω → τ0i por →0i.

Se 0 < |Γ| < i, ent˜ao pelo Lema 7.1.4.3 tem-se dois casos.

No primeiro caso tem-se que λ.M : hΓ ` τ i e N : h∆ ` ρi logo, pelo Lema 7.1.3.3, tem-se M : hu.Γ ` τ0i onde τ = u → τ0. Note que |Γ|+1 < i+1. Assim, por (nil-σ)

tem-se M σi+1N : hu.Γ ` τ0i portanto, por →

i, λ.(M σi+1N ) : hΓ ` u → τ0i.

No segundo tem-se que λ.M : hΓ.ωn. ∧m

j=1σj.nil ` τ i onde n ≥ 0, |Γ.ωn.∧mj=1σj.nil| =

i e ∀1 ≤ j ≤ m, N : hnil ` σji. Pelo Lema 7.1.3.3 tem-se M : hu.Γ.ωn. ∧mj=1σj.nil ` τ0i

onde τ = u → τ0. Assim, por (∧-ω-σ) tem-se que M σi+1N : hu.Γ ` τ0i e, por → i,

λ.(M σi+1N ) : hΓ ` u → τ0i.

Se |Γ| ≥ i, ent˜ao pelo Lema 7.1.4.4 tem-se dois casos.

No primeiro caso tem-se que λ.M : hΓ<i.ω.Γ≥i ` τ i e N : h∆ ` ρi logo, pelo Lema

7.1.3.3, tem-se M : hu.Γ<i.ω.Γ≥i ` τ0i onde τ = u → τ0. Assim, por (ω-σ), M σi+1N :

hu.Γ<i.Γ≥i ` τ0i e, por →i, λ.(M σi+1N ) : hΓ<i.Γ≥i` u → τ0i.

No segundo caso tem-se λ.M : hΓ<i. ∧mj=1σj.Γ0 ` τ i onde Γ≥i= Γ0 ∧ ∆1 ∧ · · · ∧ ∆m,

para |Γ≥i| > 0, e ∀1 ≤ j ≤ m, N : h∆j ` σji. Assim, pelo Lema 7.1.3.3, tem-

se M : hu.Γ<i. ∧mj=1σj.Γ0 ` τ0i onde τ = u → τ0. Logo, por (∧-σ), M σi+1N :

h(u.Γ<i.Γ0) ∧ ωi.(∆1∧ · · · ∧ ∆m) ` τ0i. Observe que (u.Γ<i.Γ0)∧ωi.(∆1∧· · ·∧∆m) =

u.Γ portanto, por →i, λ.(M σi+1N ) : hΓ ` u → τ0i.

7.1 Tipos com interse¸c˜ao para o λs-calculus 132

Se Γ = nil, ent˜ao pelo Lema 7.1.4.2 tem-se dois casos.

Para o primeiro tem-se (M1 M2) : hnil ` τ i e N : h∆ ` ρi. Pelo Lema 7.1.3.4 tem-se

que M1 : hnil ` ω → τ i e M2: hnil ` ρi ou M1 : hnil ` ∧mj=1σj→ τ i e ∀1 ≤ j ≤ m,

M2: hnil ` σji. Para a primeira alternativa tem-se, pela regra (nil-σ), que M1σiN :

hnil ` ω → τ i e M2σiN : hnil ` ρi logo, por →0e, ((M1σiN ) (M2σiN )) : hnil ` τ i. A

demonstra¸c˜ao para a segunda alternativa ´e an´aloga.

Para o segundo caso tem-se (M1 M2) : hωi−1. ∧lk=1τk.nil ` τ i onde ∀1 ≤ k ≤ l,

N : hnil ` τki. Pelo Lema 7.1.3.4 tem-se que ωi−1. ∧lk=1 τk.nil = Γ1 ∧ Γ2 tal que

M1: hΓ1 ` ω → τ i e M2: hΓ2 ` ρi ou M1: hΓ1 ` ∧mj=1σj→ τ i onde Γ2= ∆1∧ · · · ∧ ∆m e

∀1 ≤ j ≤ m, M2: h∆j ` σji. Note que Γ1e Γ2representam uma parti¸c˜ao com tamanho

igual ao contexto original ou um deles ´e nil. Suponha s.p.d.g. que Γ2= nil logo

Γ1= ωi−1. ∧lk=1τk.nil. Assim, para a primeira alternativa referente ao Lema 7.1.3.4

tem-se por (∧-nil-σ) que M1σiN : hnil ` ω → τ i e por (nil-σ) que M2σiN : hnil ` ρi.

Portanto, por →0e, ((M1σiN ) (M2σiN )) : hnil ` τ i. Para a segunda alternativa a

demonstra¸c˜ao ´e an´aloga.

Se 0 ≤ |Γ| < i, ent˜ao pelo Lema 7.1.4.3 tem-se dois casos.

No primeiro caso tem-se que (M1 M2) : hΓ ` τ i e N : h∆ ` ρi. Pelo Lema 7.1.3.4

tem-se que Γ = Γ1 ∧ Γ2 tal que M

1: hΓ1 ` ω → τ i e M2 : hΓ2 ` ρi ou M1: hΓ1 `

∧m

j=1σj→ τ i onde Γ2 = ∆1 ∧ · · · ∧ ∆m e ∀1 ≤ j ≤ m, M2 : h∆j ` σji. Observe

que max(|Γ1|, |Γ2|) = |Γ| < i. Assim, para a primeira alternativa referente ao Lema

7.1.3.4 tem-se por (nil-σ) que M1σiN : hΓ1 ` ω → τ i e M2σiN : hΓ2 ` ρi logo, por →0e,

((M1σiN ) (M2σiN )) : hΓ1∧ Γ2 ` τ i. Para a segunda alternativa a demonstra¸c˜ao ´e

an´aloga.

Para o segundo caso tem-se que (M1 M2) : hΓ.ωn. ∧lk=1τk.nil ` τ i onde n ≥ 0,

|Γ.ωn. ∧l

k=1 τk.nil| = i e ∀1 ≤ k ≤ l, N : hnil ` τki. Pelo Lema 7.1.3.4 tem-se que

Γ.ωn. ∧l

k=1τk.nil = Γ1 ∧ Γ2 tal que M1: hΓ1 ` ω → τ i e M2: hΓ2 ` ρi ou M1: hΓ1 `

∧m

j=1σj→ τ i onde Γ2= ∆1∧ · · · ∧ ∆m e ∀1 ≤ j ≤ m, M2: h∆j ` σji. Suponha s.p.d.g.

que Γ1= Γ e que Γ2= ωi−1. ∧l

k=1τk.nil logo ∀1 ≤ j ≤ m, ∆j = ωi−1.uj.nil, onde

uj v ∧lk=1τk e u1∧ · · · ∧ um= ∧lk=1τk. Assim, para a segunda alternativa referente ao

7.1 Tipos com interse¸c˜ao para o λs-calculus 133

∀1 ≤ j ≤ m, M2σiN : hnil ` σji. Portanto, por →e, ((M1σiN ) (M2σiN )) : hΓ ` τ i.

Para a primeira alternativa a demonstra¸c˜ao ´e an´aloga. Se |Γ| ≥ i, ent˜ao pelo Lema 7.1.4.4 tem-se dois casos.

No primeiro caso tem-se que (M1 M2) : hΓ<i.ω.Γ≥i ` τ i e N : h∆ ` ρi. Pelo Lema

7.1.3.4 tem-se que Γ<i.ω.Γ≥i = Γ1 ∧ Γ2 tal que M1: hΓ1 ` ω → τ i e M2: hΓ2 ` ρi

ou M1: hΓ1 ` ∧mj=1σj→ τ i onde Γ2= ∆1 ∧ · · · ∧ ∆m e ∀1 ≤ j ≤ m, M2: h∆j ` σji.

Suponha s.p.d.g. que |Γ2| < i logo Γ1= Γ0.ω.Γ

≥ipara |Γ0| = i−1 tal que Γ1∧Γ2= (Γ0∧

Γ2).ω.Γ≥i. Assim, para a primeira alternativa referente ao Lema 7.1.3.4 tem-se por

(ω-σ) que M1σiN : hΓ0.Γ≥i ` ω → τ i e por (nil-σ) que M2σiN : hΓ2 ` ρi. Portanto,

por →0e tem-se que ((M1σiN ) (M2σiN )) : h(Γ0∧ Γ2).Γ≥i ` τ i, onde Γ0 ∧ Γ2= Γ<i.

Para a segunda alternativa a demonstra¸c˜ao ´e an´aloga.

No segundo tem-se (M1 M2) : hΓ<i. ∧mj=1σj.Γ0 ` τ i onde Γ≥i= Γ0 ∧ ∆1 ∧ · · · ∧ ∆m,

para |Γ≥i| > 0, e ∀1 ≤ j ≤ m, N : h∆j ` σji. Pelo Lema 7.1.3.4 tem-se que Γ1 ∧

Γ2 = Γ

<i. ∧mj=1 σj.Γ0 tal que M1 : hΓ1 ` ω → τ i e M2 : hΓ2 ` ρi ou M1 : hΓ1 `

∧l

k=1σk0 → τ i onde Γ2= (∆0)1 ∧ · · · ∧ (∆0)l e ∀1 ≤ k ≤ l, M2: h(∆0)k ` σ0ki. Suponha

s.p.d.g. que |Γ2| < i logo Γ1 = Γ1

<i. ∧mj=1 σj.Γ0 tal que Γ1<i ∧ Γ2 = Γ<i. Assim,

para a primeira alternativa referente ao Lema 7.1.3.4 tem-se por (∧-σ) que M1σiN :

h(Γ1 <i.Γ

0) ∧ ωi−1.(∆1∧ · · · ∧ ∆m) ` ω → τ i e por (nil-σ) que M

2σiN : hΓ2 ` ρi.

Note que (Γ1<i.Γ0) ∧ ωi−1.(∆1∧ · · · ∧ ∆m) = Γ1

<i.(Γ0 ∧ ∆1∧ · · · ∧ ∆m) = Γ1<i.Γ≥i.

Portanto, por →0e, ((M1σiN ) (M2σiN )) : h(Γ<i1 .Γ≥i) ∧ Γ2 ` τ i, onde (Γ1<i.Γ≥i) ∧ Γ2 =

(Γ1<i∧ Γ2).Γ

≥i = Γ. Para a segunda alternativa a demonstra¸c˜ao ´e an´aloga.

• (σ-destruction): Seja n σiN : hΓ ` τ i.

Se n < i, ent˜ao n σiN → n e AI( n σiN ) = { n } logo, pelo Lema 7.1.2, |Γ| = n.

Observe que para qualquer tipagem hΓ0 ` τ0i de n, |Γ0| = n. Assim, pelo Lema

7.1.4.3 tem-se que n : hΓ ` τ i e N : h∆ ` ρi. Se n = i, ent˜ao n σiN → ϕi

0N e AI( n σiN ) = AI(ϕi0N ) logo, pelo Lema 7.1.2, |Γ| =

sav(ϕi0N ). Pelos Lemas 7.1.2 e 7.1.3.1 tem-se que i : hωi−1.τ.nil ` τ i. Se Γ = nil, ent˜ao pelo Lema 7.1.4.2 tem-se que N : hnil ` τ i logo, por (nil-ϕ), ϕi

0N : hnil ` τ i.

Se |Γ| > 0, ent˜ao pelo Lema 3.2.10.3 tem-se que sav(ϕi0N ) = sav(N ) + (i − 1), onde sav(N ) > 0, logo |Γ| = sav(ϕi

7.1 Tipos com interse¸c˜ao para o λs-calculus 134

N : hΓ≥i ` τ i, onde |Γ≥i| > 0. Portanto, por (ω-ϕ), ϕi0N : hωi−1.Γ≥i ` τ i. Observe

que Γ<i = ωi−1 logo ωi−1.Γ≥i= Γ.

Se n > i, ent˜ao n σiN → n−1 e AI( n σiN ) = { n−1 } logo, pelo Lema 7.1.2,

|Γ| = n−1 ≥ i. Tem-se que Γ0

i= ω, para qualquer contexto Γ

0 de uma tipagem de n,

onde n > i. Portanto, pelo Lema 7.1.4.4, n : hΓ<i.ω.Γ≥i ` τ i e N : h∆ ` ρi. Pelos

Lemas 7.1.2 e 7.1.3.1 tem-se que Γ<i.ω.Γ≥i = ωn−1.τ.nil, logo Γ<i.Γ≥i= ωn−2.τ.nil.

Portanto, por var e varn tem-se que n−1 : hΓ ` τ i. • (ϕ-λ-transition): Seja ϕi

k(λ.M ) : hΓ ` τ i.

Se |Γ| ≤ k ent˜ao pelo Lema 7.1.4.1 tem-se λ.M : hΓ ` τ i. Se Γ = nil, ent˜ao pelo Lema 7.1.3.2 tem-se M : hnil ` τ0i onde τ = ω → τ0 ou M : h∧m

j=1σj.nil ` τ0i onde

τ = ∧m

j=1σj→ τ0. Observe que 1 ≤ k+1. Assim, por (nil-ϕ), ϕik+1M : hnil ` τ 0i ou

ϕi

k+1M : h∧mj=1σj.nil ` τ0i. Portanto, tem-se λ.(ϕik+1M ) : hnil ` ω → τ

0i por →0 i ou

λ.(ϕi

k+1M ) : hnil ` ∧mj=1σj→ τ i por →i. A demonstra¸c˜ao para |Γ| > 0 ´e an´aloga.

Se |Γ| > k ent˜ao pelo Lema 7.1.4.1 tem-se que λ.M : hΓ≤k.Γ≥k+i ` τ i onde Γ =

Γ≤k.ωi−1.Γ≥k+i. Assim, pelo Lema 7.1.3.3 tem-se M : hu.Γ≤k.Γ≥k+i ` τ0i onde

u → τ0 e, por (ω-ϕ), ϕi

k+1M : hu.Γ≤k.ωi−1.Γ≥k+i ` τ i. Portanto, por →i tem-se que

λ.(ϕik+1M ) : hΓ≤k.ωi−1.Γ≥k+i` u → τ0i.

• (ϕ-app-transition): Seja ϕi

k(M1 M2) : hΓ ` τ i.

Se |Γ| ≤ k ent˜ao pelo Lema 7.1.4.1 tem-se (M1 M2) : hΓ ` τ i. Pelo Lema 7.1.3.4 tem-

se Γ = Γ1∧Γ2tal que M

1: hΓ1 ` ω → τ i e M2: hΓ2 ` ρi ou M1: hΓ1 ` ∧mj=1σj→ τ i onde

Γ2= ∆1∧· · · ∧ ∆m e ∀1 ≤ j ≤ m, M

2: h∆j ` σji. Tem-se que max(|Γ1|, |Γ2|) = |Γ| ≤ k.

Assim, para a primeira alternativa relativa ao Lema 7.1.3.4 tem-se, por (nil-ϕ), que ϕikM1 : hΓ1 ` ω → τ i e ϕikM2 : hΓ2 ` ρi. Portanto, por →0e, ((ϕikM1) (ϕikM2)) :

hΓ1∧ Γ2 ` τ i. A demonstra¸c˜ao para a segunda alternativa ´e similar.

Se |Γ| > k ent˜ao pelo Lema 7.1.4.1 tem-se que (M1 M2) : hΓ≤k.Γ≥k+i ` τ i onde

Γ = Γ≤k.ωi−1.Γ≥k+i. Pelo Lema 7.1.3.4 tem-se Γ≤k.Γ≥k+i= Γ1∧ Γ2 tal que M1: hΓ1 `

ω → τ i e M2: hΓ2 ` ρi ou M1: hΓ1 ` ∧j=1m σj→ τ i onde Γ2= ∆1∧· · · ∧ ∆me ∀1 ≤ j ≤ m,

M2: h∆j ` σji. Suponha s.p.d.g. que |Γ2| ≤ k, logo Γ1= Γ1≤k.Γ≥k+i onde Γ1≤k ∧ Γ2 =

Γ≤k. Assim, para a primeira alternativa relativa ao Lema 7.1.3.4 tem-se por (ω-ϕ)

7.1 Tipos com interse¸c˜ao para o λs-calculus 135

por →0e, (ϕi

kM1 ϕikM2) : h(Γ1≤k.ωi−1.Γ≥k+i) ∧ Γ2 ` τ i, onde (Γ1≤k.ωi−1.Γ≥k+i) ∧ Γ2 =

(Γ1≤k ∧ Γ2).ωi−1

≥k+i. Para a segunda alternativa a demonstra¸c˜ao ´e an´aloga.

• (ϕ-destruction): Seja ϕi

kn : hΓ ` τ i.

Se n ≤ k, ent˜ao ϕikn → n e AI(ϕikn) = { n }. Logo, |Γ| = sav(ϕikn) = sav( n) ≤ k. Portanto, pelo Lema 7.1.4.1 tem-se que n : hΓ ` τ i.

Se n > k, ent˜ao ϕi

kn → n+i−1 e AI(ϕikn) = { n+i−1 }. Logo, |Γ| = sav(ϕikn) =

n+(i−1) > k. Portanto, pelo Lema 7.1.4.1 tem-se que n : hΓ≤k.Γ≥k+i ` τ i, onde

Γ = Γ≤k.ωi−1.Γ≥k+i. Pelos Lemmas 7.1.2 e 7.1.3.1 tem-se que Γ≤k.Γ≥k+i= ωn−1.τ.nil.

Portanto, Γ = ωn+i−2.τ.nil logo, por var e varn, tem-se que n+i−1 : hΓ ` τ i. Corol´ario 7.1.6: Se M : hΓ ` τ i e M →s M0 ent˜ao AI(M ) = AI(M0).

Demonstra¸c˜ao. Pelo Teorema 7.1.5 tem-se que se M : hΓ ` τ i e M →s M0 ent˜ao M0 :

hΓ ` τ i. Portanto, pelo Lema 7.1.2 tem-se que ∀1 ≤ i ≤ |Γ|, i ∈ AI(M ) sse Γi 6= ω sse

i ∈ AI(M0).

Com a propriedade de SR para o c´alculo de substitui¸c˜ao s e o fato de λs simular a redu¸c˜ao β, podemos demonstrar SR para a simula¸c˜ao da contra¸c˜ao β apenas analisando a regra que d´a in´ıcio ao processo. Assim como para o sistema λSM

dB, a no¸c˜ao de SR para λs

SM

depende de um conceito de restri¸c˜ao para contextos. A seguir, apresentamos a no¸c˜ao de restri¸c˜ao relativa a AI, an´aloga `a Defini¸c˜ao 5.1.11.

Defini¸c˜ao 7.1.7 (Restri¸c˜ao para contextos): Seja ΓMum contexto Γ0 v Γ tal que

|Γ0| = sav(M ) e que ∀1 ≤ i ≤ |Γ0|, Γ0

i 6= ω sse i ∈ AI(M ).

As propriedade da restri¸c˜ao acima s˜ao an´alogas `as apresentadas no Lema 5.1.12. Teorema 7.1.8 (SR para simula¸c˜ao da contra¸c˜ao β em λsSM): Seja (λ.M M0) ∈ ΛdB. Se (λ.M M0) : hΓ `λsSM τ i, ent˜ao { 1/M

0

}M : hΓ{ 1/M0}M `λsSM τ i.

Demonstra¸c˜ao. Seja (λ.M M0) : hΓ ` τ i. Pelo Lema 7.1.3.4 tem-se dois casos. No primeiro caso tem-se λ.M : hΓ1 ` ω → τ i e M0: hΓ2 ` ρi, onde Γ = Γ1∧ Γ2.

Se Γ1 = nil, ent˜ao pelo Lema 7.1.3.2 tem-se que M : hnil ` τ i logo, por (nil-σ),

Documentos relacionados