Theorem: LO.FirstOrder.Rew.func2 (Logic/FirstOrder/Basic/Syntax/Rew.lean)

State before:
L : Language
L' : Language
L₁ : Language
L₂ : Language
L₃ : Language
ξ : Type u_1
ξ' : Type u_2
ξ₁ : Type u_3
ξ₂ : Type u_4
ξ₃ : Type u_5
n n₁ n₂ n₃ : ℕ
ω : Rew L ξ₁ n₁ ξ₂ n₂
f : L.Func 2
t₁ t₂ : Semiterm L ξ₁ n₁
⊢ ω (func f ![t₁, t₂]) = func f ![ω t₁, ω t₂]
Tactic:
simp[Rew.func]
State after:
L : Language
L' : Language
L₁ : Language
L₂ : Language
L₃ : Language
ξ : Type u_1
ξ' : Type u_2
ξ₁ : Type u_3
ξ₂ : Type u_4
ξ₃ : Type u_5
n n₁ n₂ n₃ : ℕ
ω : Rew L ξ₁ n₁ ξ₂ n₂
f : L.Func 2
t₁ t₂ : Semiterm L ξ₁ n₁
⊢ (fun i => ω (![t₁, t₂] i)) = ![ω t₁, ω t₂]

State before:
L : Language
L' : Language
L₁ : Language
L₂ : Language
L₃ : Language
ξ : Type u_1
ξ' : Type u_2
ξ₁ : Type u_3
ξ₂ : Type u_4
ξ₃ : Type u_5
n n₁ n₂ n₃ : ℕ
ω : Rew L ξ₁ n₁ ξ₂ n₂
f : L.Func 2
t₁ t₂ : Semiterm L ξ₁ n₁
⊢ (fun i => ω (![t₁, t₂] i)) = ![ω t₁, ω t₂]
Tactic:
funext i
State after:
case h
L : Language
L' : Language
L₁ : Language
L₂ : Language
L₃ : Language
ξ : Type u_1
ξ' : Type u_2
ξ₁ : Type u_3
ξ₂ : Type u_4
ξ₃ : Type u_5
n n₁ n₂ n₃ : ℕ
ω : Rew L ξ₁ n₁ ξ₂ n₂
f : L.Func 2
t₁ t₂ : Semiterm L ξ₁ n₁
i : Fin 2
⊢ ω (![t₁, t₂] i) = ![ω t₁, ω t₂] i

State before:
case h
L : Language
L' : Language
L₁ : Language
L₂ : Language
L₃ : Language
ξ : Type u_1
ξ' : Type u_2
ξ₁ : Type u_3
ξ₂ : Type u_4
ξ₃ : Type u_5
n n₁ n₂ n₃ : ℕ
ω : Rew L ξ₁ n₁ ξ₂ n₂
f : L.Func 2
t₁ t₂ : Semiterm L ξ₁ n₁
i : Fin 2
⊢ ω (![t₁, t₂] i) = ![ω t₁, ω t₂] i
Tactic:
induction i using Fin.induction <;> simp
State after:
no goals