injection h with h₁ h₂
ctx : Ctx
t : Term
ty : Ty
ctx✝ : Ctx
ty₁✝ ty₂✝ ty✝ : Ty
t✝ : Term
v✝ : Value
ht₁ : ctx✝ ⊢ Term.abs ty✝ t✝ ⋮ Ty.arrow ty₁✝ ty₂✝
a_ih✝¹ : ∀ {t' : Term}, Term.abs ty✝ t✝ ⇒ t' → ctx✝ ⊢ t' ⋮ Ty.arrow ty₁✝ ty₂✝
ht₂ : ctx✝ ⊢ Term.abs v✝.1 v✝.2 ⋮ ty₁✝
a_ih✝ : ∀ {t' : Term}, Term.abs v✝.1 v✝.2 ⇒ t' → ctx✝ ⊢ t' ⋮ ty₁✝
w✝ : Ty
h : Ty.arrow ty₁✝ ty₂✝ = Ty.arrow ty✝ w✝
hc : (↥ctx✝)[0 ↦ ty✝] ⊢ t✝ ⋮ w✝
⊢ ctx✝ ⊢ Term.shift Dir.down 0 t✝[0 ↦ Term.shift Dir.up 0 (Term.abs v✝.1 v✝.2)] ⋮ ty₂✝
ctx : Ctx
t : Term
ty : Ty
ctx✝ : Ctx
ty₁✝ ty₂✝ ty✝ : Ty
t✝ : Term
v✝ : Value
ht₁ : ctx✝ ⊢ Term.abs ty✝ t✝ ⋮ Ty.arrow ty₁✝ ty₂✝
a_ih✝¹ : ∀ {t' : Term}, Term.abs ty✝ t✝ ⇒ t' → ctx✝ ⊢ t' ⋮ Ty.arrow ty₁✝ ty₂✝
ht₂ : ctx✝ ⊢ Term.abs v✝.1 v✝.2 ⋮ ty₁✝
a_ih✝ : ∀ {t' : Term}, Term.abs v✝.1 v✝.2 ⇒ t' → ctx✝ ⊢ t' ⋮ ty₁✝
w✝ : Ty
hc : (↥ctx✝)[0 ↦ ty✝] ⊢ t✝ ⋮ w✝
h₁ : ty₁✝ = ty✝
h₂ : ty₂✝ = w✝
⊢ ctx✝ ⊢ Term.shift Dir.down 0 t✝[0 ↦ Term.shift Dir.up 0 (Term.abs v✝.1 v✝.2)] ⋮ ty₂✝