Theorem: LO.FirstOrder.Rew.func3 (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 3
t₁ t₂ t₃ : Semiterm L ξ₁ n₁
⊢ ω (func f ![t₁, t₂, t₃]) = func f ![ω t₁, ω 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 3
t₁ t₂ t₃ : Semiterm L ξ₁ n₁
⊢ (fun i => ω (![t₁, t₂, t₃] i)) = ![ω t₁, ω 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 3
t₁ t₂ t₃ : Semiterm L ξ₁ n₁
⊢ (fun i => ω (![t₁, t₂, t₃] i)) = ![ω t₁, ω 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 3
t₁ t₂ t₃ : Semiterm L ξ₁ n₁
i : Fin 3
⊢ ω (![t₁, t₂, t₃] i) = ![ω t₁, ω 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 3
t₁ t₂ t₃ : Semiterm L ξ₁ n₁
i : Fin 3
⊢ ω (![t₁, t₂, t₃] i) = ![ω t₁, ω t₂, ω t₃] i
Tactic:
induction' i using Fin.induction with i <;> simp
State after:
case h.succ
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 3
t₁ t₂ t₃ : Semiterm L ξ₁ n₁
i : Fin 2
a✝ : ω (![t₁, t₂, t₃] i.castSucc) = ![ω t₁, ω t₂, ω t₃] i.castSucc
⊢ ω (![t₂, t₃] i) = ![ω t₂, ω t₃] i

State before:
case h.succ
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 3
t₁ t₂ t₃ : Semiterm L ξ₁ n₁
i : Fin 2
a✝ : ω (![t₁, t₂, t₃] i.castSucc) = ![ω t₁, ω t₂, ω t₃] i.castSucc
⊢ ω (![t₂, t₃] i) = ![ω t₂, ω t₃] i
Tactic:
induction' i using Fin.induction with i <;> simp
State after:
no goals