Theorem: LO.FirstOrder.Arith.Model.Nuon.ext_zero_eq_self_of_le (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 ⊧ₘ* 𝐈𝚫₀ + 𝛀₁
L S : M
h : ‖S‖ ≤ ‖L‖
⊢ S{L}[0] = S
Tactic:
rcases zero_le S with (rfl | pos)
State after:
case inl
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀ + 𝛀₁
L : M
h : ‖0‖ ≤ ‖L‖
⊢ 0{L}[0] = 0

case inr
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀ + 𝛀₁
L S : M
h : ‖S‖ ≤ ‖L‖
pos : 0 < S
⊢ S{L}[0] = S

State before:
case inl
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀ + 𝛀₁
L : M
h : ‖0‖ ≤ ‖L‖
⊢ 0{L}[0] = 0
Tactic:
simp [ext]
State after:
no goals

State before:
case inr
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀ + 𝛀₁
L S : M
h : ‖S‖ ≤ ‖L‖
pos : 0 < S
⊢ S{L}[0] = S
Tactic:
simp [ext]
State after:
case inr
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀ + 𝛀₁
L S : M
h : ‖S‖ ≤ ‖L‖
pos : 0 < S
⊢ S / bexp S 0 % L # 1 = S

State before:
case inr
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀ + 𝛀₁
L S : M
h : ‖S‖ ≤ ‖L‖
pos : 0 < S
⊢ S / bexp S 0 % L # 1 = S
Tactic:
have : bexp S 0 = 1 := (exp_bexp_of_lt (show 0 < ‖S‖ from by simp [pos])).zero_uniq
State after:
case inr
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀ + 𝛀₁
L S : M
h : ‖S‖ ≤ ‖L‖
pos : 0 < S
this : bexp S 0 = 1
⊢ S / bexp S 0 % L # 1 = S

State before:
case inr
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀ + 𝛀₁
L S : M
h : ‖S‖ ≤ ‖L‖
pos : 0 < S
this : bexp S 0 = 1
⊢ S / bexp S 0 % L # 1 = S
Tactic:
simp [this, lt_hash_one_iff.mpr h]
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 ⊧ₘ* 𝐈𝚫₀ + 𝛀₁
L S : M
h : ‖S‖ ≤ ‖L‖
pos : 0 < S
⊢ 0 < ‖S‖
Tactic:
simp [pos]
State after:
no goals