Theorem: LO.FirstOrder.Arith.Model.val_numeral (Logic/FirstOrder/Arith/PeanoMinus.lean)

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐏𝐀⁻
n : ℕ
a✝ : Fin n
x✝ : Fin n → ℕ
⊢ Semiterm.valm M (fun x => ↑(x✝ x)) Empty.elim #a✝ = ↑(Semiterm.valm ℕ x✝ Empty.elim #a✝)
Tactic:
simp
State after:
no goals

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐏𝐀⁻
n : ℕ
a✝ : Fin 0 → Semiterm ℒₒᵣ Empty n
e : Fin n → ℕ
⊢ Semiterm.valm M (fun x => ↑(e x)) Empty.elim (Semiterm.func Language.Zero.zero a✝) =
    ↑(Semiterm.valm ℕ e Empty.elim (Semiterm.func Language.Zero.zero a✝))
Tactic:
simp
State after:
no goals

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐏𝐀⁻
n : ℕ
a✝ : Fin 0 → Semiterm ℒₒᵣ Empty n
e : Fin n → ℕ
⊢ Semiterm.valm M (fun x => ↑(e x)) Empty.elim (Semiterm.func Language.One.one a✝) =
    ↑(Semiterm.valm ℕ e Empty.elim (Semiterm.func Language.One.one a✝))
Tactic:
simp
State after:
no goals

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐏𝐀⁻
n : ℕ
v : Fin 2 → Semiterm ℒₒᵣ Empty n
e : Fin n → ℕ
⊢ Semiterm.valm M (fun x => ↑(e x)) Empty.elim (Semiterm.func Language.Add.add v) =
    ↑(Semiterm.valm ℕ e Empty.elim (Semiterm.func Language.Add.add v))
Tactic:
simp[Semiterm.val_func, val_numeral (v 0), val_numeral (v 1)]
State after:
no goals

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐏𝐀⁻
n : ℕ
v : Fin 2 → Semiterm ℒₒᵣ Empty n
e : Fin n → ℕ
⊢ Semiterm.valm M (fun x => ↑(e x)) Empty.elim (Semiterm.func Language.Mul.mul v) =
    ↑(Semiterm.valm ℕ e Empty.elim (Semiterm.func Language.Mul.mul v))
Tactic:
simp[Semiterm.val_func, val_numeral (v 0), val_numeral (v 1)]
State after:
no goals