Theorem: LO.FirstOrder.Arith.Model.LenBit.add_self_of_not_lenbit (Arithmetization/ISigmaZero/Exponential/Pow2.lean)

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈open
a i : M
pos : 0 < i
h : ¬LenBit i a
⊢ LenBit i (a + i)
Tactic:
have : a / i % 2 = 0 := by simpa [LenBit.iff_rem] using h
State after:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈open
a i : M
pos : 0 < i
h : ¬LenBit i a
this : a / i % 2 = 0
⊢ LenBit i (a + i)

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈open
a i : M
pos : 0 < i
h : ¬LenBit i a
this : a / i % 2 = 0
⊢ LenBit i (a + i)
Tactic:
simp [LenBit.iff_rem, div_add_self_right, pos]
State after:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈open
a i : M
pos : 0 < i
h : ¬LenBit i a
this : a / i % 2 = 0
⊢ (a / i + 1) % 2 = 1

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈open
a i : M
pos : 0 < i
h : ¬LenBit i a
this : a / i % 2 = 0
⊢ (a / i + 1) % 2 = 1
Tactic:
rw [mod_add] <;> simp [this, one_lt_two]
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 ⊧ₘ* 𝐈open
a i : M
pos : 0 < i
h : ¬LenBit i a
⊢ a / i % 2 = 0
Tactic:
simpa [LenBit.iff_rem] using h
State after:
no goals