Theorem: LO.FirstOrder.Arith.Model.nuon_defined (Arithmetization/OmegaOne/Nuon.lean)

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀ + 𝛀₁
⊢ 𝚺₀-Function₁ nuon via nuonDef
Tactic:
intro v
State after:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀ + 𝛀₁
v : Fin (Nat.succ 1) → M
⊢ (fun v => v 0 = (fun v => nuon (v 0)) fun x => v x.succ) v ↔ (Semiformula.Evalbm M v) (HSemiformula.val nuonDef)

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀ + 𝛀₁
v : Fin (Nat.succ 1) → M
⊢ (fun v => v 0 = (fun v => nuon (v 0)) fun x => v x.succ) v ↔ (Semiformula.Evalbm M v) (HSemiformula.val nuonDef)
Tactic:
simp [Nuon.nuon_eq_iff, Nuon, nuonDef,
length_defined.df.iff, Nuon.nuonAux_defined.df.iff, lt_succ_iff_le]
State after:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀ + 𝛀₁
v : Fin (Nat.succ 1) → M
⊢ Nuon.NuonAux (v 1) ‖v 1‖ (v 0) ↔ ∃ x ≤ v 1, x = ‖v 1‖ ∧ Nuon.NuonAux (v 1) x (v 0)

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀ + 𝛀₁
v : Fin (Nat.succ 1) → M
⊢ Nuon.NuonAux (v 1) ‖v 1‖ (v 0) ↔ ∃ x ≤ v 1, x = ‖v 1‖ ∧ Nuon.NuonAux (v 1) x (v 0)
Tactic:
rw [Nuon.bex_eq_le_iff]
State after:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀ + 𝛀₁
v : Fin (Nat.succ 1) → M
⊢ Nuon.NuonAux (v 1) ‖v 1‖ (v 0) ↔ ‖v 1‖ ≤ v 1 ∧ Nuon.NuonAux (v 1) ‖v 1‖ (v 0)

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀ + 𝛀₁
v : Fin (Nat.succ 1) → M
⊢ Nuon.NuonAux (v 1) ‖v 1‖ (v 0) ↔ ‖v 1‖ ≤ v 1 ∧ Nuon.NuonAux (v 1) ‖v 1‖ (v 0)
Tactic:
simp
State after:
no goals