specialize hi₁ h₁
t₁ t₂ : Term
hi₁ : ∀ {ctx : Ctx} {ty : Ty}, type ctx t₁ = some ty → ctx ⊢ t₁ ⋮ ty
hi₂ : ∀ {ctx : Ctx} {ty : Ty}, type ctx t₂ = some ty → ctx ⊢ t₂ ⋮ ty
ctx : Ctx
ty ty₁ ty₂ : Ty
h₁ : type ctx t₁ = some ty₁
h₂ : type ctx t₂ = some ty₂
x✝ : Option Ty
ty₁₁ ty₂✝ : Ty
ha : some ty₁ = some (Ty.arrow ty₁₁ ty₂✝)
h : (if ty₁₁ = ty₂ then some ty₂✝ else none) = some ty
⊢ ctx ⊢ Term.app t₁ t₂ ⋮ ty
t₁ t₂ : Term
hi₂ : ∀ {ctx : Ctx} {ty : Ty}, type ctx t₂ = some ty → ctx ⊢ t₂ ⋮ ty
ctx : Ctx
ty ty₁ ty₂ : Ty
h₁ : type ctx t₁ = some ty₁
h₂ : type ctx t₂ = some ty₂
x✝ : Option Ty
ty₁₁ ty₂✝ : Ty
ha : some ty₁ = some (Ty.arrow ty₁₁ ty₂✝)
h : (if ty₁₁ = ty₂ then some ty₂✝ else none) = some ty
hi₁ : ctx ⊢ t₁ ⋮ ty₁
⊢ ctx ⊢ Term.app t₁ t₂ ⋮ ty