Theorem: LO.FirstOrder.Semiterm.val_substs (Logic/FirstOrder/Basic/Semantics/Semantics.lean)

State before:
n n₁ n₂ : ℕ
L : Language
μ : Type v
μ₁ : Type v₁
μ₂ : Type v₂
M : Type w
s : Structure L M
e : Fin n → M
e₁ : Fin n₁ → M
e₂ : Fin n₂ → M
ε : μ → M
ε₁ : μ₁ → M
ε₂ : μ₂ → M
w : Fin n₁ → Semiterm L μ n₂
t : Semiterm L μ n₁
⊢ val s e₂ ε ((Rew.substs w) t) = val s (fun x => val s e₂ ε (w x)) ε t
Tactic:
simp [val_rew]
State after:
n n₁ n₂ : ℕ
L : Language
μ : Type v
μ₁ : Type v₁
μ₂ : Type v₂
M : Type w
s : Structure L M
e : Fin n → M
e₁ : Fin n₁ → M
e₂ : Fin n₂ → M
ε : μ → M
ε₁ : μ₁ → M
ε₂ : μ₂ → M
w : Fin n₁ → Semiterm L μ n₂
t : Semiterm L μ n₁
⊢ val s (val s e₂ ε ∘ ⇑(Rew.substs w) ∘ bvar) (val s e₂ ε ∘ ⇑(Rew.substs w) ∘ fvar) t =
    val s (fun x => val s e₂ ε (w x)) ε t

State before:
n n₁ n₂ : ℕ
L : Language
μ : Type v
μ₁ : Type v₁
μ₂ : Type v₂
M : Type w
s : Structure L M
e : Fin n → M
e₁ : Fin n₁ → M
e₂ : Fin n₂ → M
ε : μ → M
ε₁ : μ₁ → M
ε₂ : μ₂ → M
w : Fin n₁ → Semiterm L μ n₂
t : Semiterm L μ n₁
⊢ val s (val s e₂ ε ∘ ⇑(Rew.substs w) ∘ bvar) (val s e₂ ε ∘ ⇑(Rew.substs w) ∘ fvar) t =
    val s (fun x => val s e₂ ε (w x)) ε t
Tactic:
congr
State after:
no goals