Theorem: LO.FirstOrder.Rew.rel2 (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 2
t₁ t₂ : Semiterm L ξ₁ n₁
⊢ ω.hom (rel r ![t₁, t₂]) = rel r ![ω t₁, ω t₂]
Tactic:
simp[ω.rel]
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 2
t₁ t₂ : Semiterm L ξ₁ n₁
⊢ (fun i => ω (![t₁, t₂] i)) = ![ω 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 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
ξ : 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 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
ξ : 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 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