Theorem: LO.FirstOrder.Semiterm.val_free (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
ε : ℕ → M
a : M
t : SyntacticSemiterm L (n + 1)
⊢ val s e (a :>ₙ ε) (Rew.free t) = val s (e <: a) ε 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
ε : ℕ → M
a : M
t : SyntacticSemiterm L (n + 1)
⊢ val s (val s e (a :>ₙ ε) ∘ ⇑Rew.free ∘ bvar) (val s e (a :>ₙ ε) ∘ ⇑Rew.free ∘ fvar) t = val s (e <: a) ε 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
ε : ℕ → M
a : M
t : SyntacticSemiterm L (n + 1)
⊢ val s (val s e (a :>ₙ ε) ∘ ⇑Rew.free ∘ bvar) (val s e (a :>ₙ ε) ∘ ⇑Rew.free ∘ fvar) t = val s (e <: a) ε t
Tactic:
congr
State after:
case e_e
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
ε : ℕ → M
a : M
t : SyntacticSemiterm L (n + 1)
⊢ val s e (a :>ₙ ε) ∘ ⇑Rew.free ∘ bvar = e <: a

State before:
case e_e
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
ε : ℕ → M
a : M
t : SyntacticSemiterm L (n + 1)
⊢ val s e (a :>ₙ ε) ∘ ⇑Rew.free ∘ bvar = e <: a
Tactic:
exact funext $ Fin.lastCases (by simp) (by simp)
State after:
no goals

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
ε : ℕ → M
a : M
t : SyntacticSemiterm L (n + 1)
⊢ (val s e (a :>ₙ ε) ∘ ⇑Rew.free ∘ bvar) (Fin.last n) = (e <: a) (Fin.last n)
Tactic:
simp
State after:
no goals

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
ε : ℕ → M
a : M
t : SyntacticSemiterm L (n + 1)
⊢ ∀ (i : Fin n), (val s e (a :>ₙ ε) ∘ ⇑Rew.free ∘ bvar) i.castSucc = (e <: a) i.castSucc
Tactic:
simp
State after:
no goals