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

State before:
L : Language
L₁ : Language
L₂ : Language
L₃ : Language
ξ : Type u_1
ξ₁ : Type u_2
ξ₂ : Type u_3
ξ₃ : Type u_4
n n₁ n₂✝ n₂ m m₁ m₂ m₃ : ℕ
ω : Rew L ξ₁ n₁ ξ₂ n₂
r : L.Rel 3
t₁ t₂ t₃ : Semiterm L ξ₁ n₁
⊢ ω.hom (nrel r ![t₁, t₂, t₃]) = nrel r ![ω t₁, ω t₂, ω t₃]
Tactic:
simp[ω.nrel]
State after:
L : Language
L₁ : Language
L₂ : Language
L₃ : Language
ξ : Type u_1
ξ₁ : Type u_2
ξ₂ : Type u_3
ξ₃ : Type u_4
n n₁ n₂✝ n₂ m m₁ m₂ m₃ : ℕ
ω : Rew L ξ₁ n₁ ξ₂ n₂
r : L.Rel 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
ξ : Type u_1
ξ₁ : Type u_2
ξ₂ : Type u_3
ξ₃ : Type u_4
n n₁ n₂✝ n₂ m m₁ m₂ m₃ : ℕ
ω : Rew L ξ₁ n₁ ξ₂ n₂
r : L.Rel 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
ξ : Type u_1
ξ₁ : Type u_2
ξ₂ : Type u_3
ξ₃ : Type u_4
n n₁ n₂✝ n₂ m m₁ m₂ m₃ : ℕ
ω : Rew L ξ₁ n₁ ξ₂ n₂
r : L.Rel 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
ξ : Type u_1
ξ₁ : Type u_2
ξ₂ : Type u_3
ξ₃ : Type u_4
n n₁ n₂✝ n₂ m m₁ m₂ m₃ : ℕ
ω : Rew L ξ₁ n₁ ξ₂ n₂
r : L.Rel 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
ξ : Type u_1
ξ₁ : Type u_2
ξ₂ : Type u_3
ξ₃ : Type u_4
n n₁ n₂✝ n₂ m m₁ m₂ m₃ : ℕ
ω : Rew L ξ₁ n₁ ξ₂ n₂
r : L.Rel 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
ξ : Type u_1
ξ₁ : Type u_2
ξ₂ : Type u_3
ξ₃ : Type u_4
n n₁ n₂✝ n₂ m m₁ m₂ m₃ : ℕ
ω : Rew L ξ₁ n₁ ξ₂ n₂
r : L.Rel 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