Theorem: LO.FirstOrder.Arith.Model.lenbit_defined (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
⊢ 𝚺₀-Relation LenBit via lenbitDef
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 ⊧ₘ* 𝐈open
v : Fin 2 → M
⊢ (fun v => LenBit (v 0) (v 1)) v ↔ (Semiformula.Evalbm M v) (HSemiformula.val lenbitDef)

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈open
v : Fin 2 → M
⊢ (fun v => LenBit (v 0) (v 1)) v ↔ (Semiformula.Evalbm M v) (HSemiformula.val lenbitDef)
Tactic:
simp[sqrt_graph, lenbitDef, Matrix.vecHead, Matrix.vecTail, LenBit, ←le_iff_lt_succ, numeral_eq_natCast]
State after:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈open
v : Fin 2 → M
⊢ ¬2 ∣ v 1 / v 0 ↔ ∃ x ≤ v 1, x = v 1 / v 0 ∧ ¬2 ∣ x

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈open
v : Fin 2 → M
⊢ ¬2 ∣ v 1 / v 0 ↔ ∃ x ≤ v 1, x = v 1 / v 0 ∧ ¬2 ∣ x
Tactic:
constructor
State after:
case mp
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈open
v : Fin 2 → M
⊢ ¬2 ∣ v 1 / v 0 → ∃ x ≤ v 1, x = v 1 / v 0 ∧ ¬2 ∣ x

case mpr
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈open
v : Fin 2 → M
⊢ (∃ x ≤ v 1, x = v 1 / v 0 ∧ ¬2 ∣ x) → ¬2 ∣ v 1 / v 0

State before:
case mp
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈open
v : Fin 2 → M
⊢ ¬2 ∣ v 1 / v 0 → ∃ x ≤ v 1, x = v 1 / v 0 ∧ ¬2 ∣ x
Tactic:
intro h
State after:
case mp
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈open
v : Fin 2 → M
h : ¬2 ∣ v 1 / v 0
⊢ ∃ x ≤ v 1, x = v 1 / v 0 ∧ ¬2 ∣ x

State before:
case mp
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈open
v : Fin 2 → M
h : ¬2 ∣ v 1 / v 0
⊢ ∃ x ≤ v 1, x = v 1 / v 0 ∧ ¬2 ∣ x
Tactic:
exact ⟨v 1 / v 0, by simp, rfl, 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 ⊧ₘ* 𝐈open
v : Fin 2 → M
h : ¬2 ∣ v 1 / v 0
⊢ v 1 / v 0 ≤ v 1
Tactic:
simp
State after:
no goals

State before:
case mpr
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈open
v : Fin 2 → M
⊢ (∃ x ≤ v 1, x = v 1 / v 0 ∧ ¬2 ∣ x) → ¬2 ∣ v 1 / v 0
Tactic:
rintro ⟨z, hz, rfl, h⟩
State after:
case mpr.intro.intro.intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈open
v : Fin 2 → M
hz : v 1 / v 0 ≤ v 1
h : ¬2 ∣ v 1 / v 0
⊢ ¬2 ∣ v 1 / v 0

State before:
case mpr.intro.intro.intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈open
v : Fin 2 → M
hz : v 1 / v 0 ≤ v 1
h : ¬2 ∣ v 1 / v 0
⊢ ¬2 ∣ v 1 / v 0
Tactic:
exact h
State after:
no goals