Theorem: LO.FirstOrder.Semiterm.val_toF (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
e : Fin n → M
t : Semiterm L Empty n
⊢ val s ![] e (Rew.toF t) = valb s e t
Tactic:
simp [val_rew, Matrix.empty_eq]
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
e : Fin n → M
t : Semiterm L Empty n
⊢ val s (val s ![] e ∘ ⇑Rew.toF ∘ bvar) (val s ![] e ∘ ⇑Rew.toF ∘ fvar) t = valb s e 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
e : Fin n → M
t : Semiterm L Empty n
⊢ val s (val s ![] e ∘ ⇑Rew.toF ∘ bvar) (val s ![] e ∘ ⇑Rew.toF ∘ fvar) t = valb s e t
Tactic:
congr
State after:
case 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
e : Fin n → M
t : Semiterm L Empty n
⊢ val s ![] e ∘ ⇑Rew.toF ∘ fvar = Empty.elim

State before:
case 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
e : Fin n → M
t : Semiterm L Empty n
⊢ val s ![] e ∘ ⇑Rew.toF ∘ fvar = Empty.elim
Tactic:
funext i
State after:
case e_ε.h
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
e : Fin n → M
t : Semiterm L Empty n
i : Empty
⊢ (val s ![] e ∘ ⇑Rew.toF ∘ fvar) i = i.elim

State before:
case e_ε.h
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
e : Fin n → M
t : Semiterm L Empty n
i : Empty
⊢ (val s ![] e ∘ ⇑Rew.toF ∘ fvar) i = i.elim
Tactic:
simp
State after:
case e_ε.h
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
e : Fin n → M
t : Semiterm L Empty n
i : Empty
⊢ val s ![] e (Rew.toF &i) = i.elim

State before:
case e_ε.h
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
e : Fin n → M
t : Semiterm L Empty n
i : Empty
⊢ val s ![] e (Rew.toF &i) = i.elim
Tactic:
contradiction
State after:
no goals