Theorem: LambdaCalculi.hasType_of_concat_hasType (LambdaCalculi/HasType.lean)

State before:
p : LambdaParams
U : Type ?u.1008576
C : Type ?u.1008579
C✝ : Type u_1
p✝ : LambdaParams
U✝ : Type u_2
T : C✝ → LambdaType p✝ U✝
t : LambdaTerm p✝ U✝ C✝
σ : LambdaType p✝ U✝
Γ : Context p✝ U✝
τ : LambdaType p✝ U✝
h : List.concat Γ τ ⊢[T] t ∶ σ
ht : LambdaTerm.freeVarRange t ≤ List.length Γ
⊢ Γ ⊢[T] t ∶ σ
Tactic:
rw [List.concat_eq_append] at h
State after:
p : LambdaParams
U : Type ?u.1008576
C : Type ?u.1008579
C✝ : Type u_1
p✝ : LambdaParams
U✝ : Type u_2
T : C✝ → LambdaType p✝ U✝
t : LambdaTerm p✝ U✝ C✝
σ : LambdaType p✝ U✝
Γ : Context p✝ U✝
τ : LambdaType p✝ U✝
h : Γ ++ [τ] ⊢[T] t ∶ σ
ht : LambdaTerm.freeVarRange t ≤ List.length Γ
⊢ Γ ⊢[T] t ∶ σ

State before:
p : LambdaParams
U : Type ?u.1008576
C : Type ?u.1008579
C✝ : Type u_1
p✝ : LambdaParams
U✝ : Type u_2
T : C✝ → LambdaType p✝ U✝
t : LambdaTerm p✝ U✝ C✝
σ : LambdaType p✝ U✝
Γ : Context p✝ U✝
τ : LambdaType p✝ U✝
h : Γ ++ [τ] ⊢[T] t ∶ σ
ht : LambdaTerm.freeVarRange t ≤ List.length Γ
⊢ Γ ⊢[T] t ∶ σ
Tactic:
exact hasType_of_append_hasType h ht
State after:
no goals