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-σ),