Theorem: LO.FirstOrder.Rew.hom_comp_eq (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₃ n₃ : ℕ
ω₂ : Rew L ξ₂ n₂ ξ₃ n₃
ω₁ : Rew L ξ₁ n₁ ξ₂ n₂
⊢ (ω₂.comp ω₁).hom = ω₂.hom.comp ω₁.hom
Tactic:
ext p
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₃ n₃ : ℕ
ω₂ : Rew L ξ₂ n₂ ξ₃ n₃
ω₁ : Rew L ξ₁ n₁ ξ₂ n₂
p : Semiformula L ξ₁ n₁
⊢ (ω₂.comp ω₁).hom p = (ω₂.hom.comp ω₁.hom) p

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₃ n₃ : ℕ
ω₂ : Rew L ξ₂ n₂ ξ₃ n₃
ω₁ : Rew L ξ₁ n₁ ξ₂ n₂
p : Semiformula L ξ₁ n₁
⊢ (ω₂.comp ω₁).hom p = (ω₂.hom.comp ω₁.hom) p
Tactic:
simp
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₃ n₃ : ℕ
ω₂ : Rew L ξ₂ n₂ ξ₃ n₃
ω₁ : Rew L ξ₁ n₁ ξ₂ n₂
p : Semiformula L ξ₁ n₁
⊢ (ω₂.comp ω₁).hom p = ω₂.hom (ω₁.hom p)

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₃ n₃ : ℕ
ω₂ : Rew L ξ₂ n₂ ξ₃ n₃
ω₁ : Rew L ξ₁ n₁ ξ₂ n₂
p : Semiformula L ξ₁ n₁
⊢ (ω₂.comp ω₁).hom p = ω₂.hom (ω₁.hom p)
Tactic:
induction p using Semiformula.rec' generalizing n₂ n₃ <;> simp[Rew.rel, Rew.nrel, comp_app, q_comp, *]
State after:
no goals