Theorem: LO.FirstOrder.Arith.Model.Nuon.isSerieDef_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 ⊧ₘ* 𝐈𝚫₀ + 𝛀₁
⊢ Defined (fun v => IsSeries (v 0) (v 1) (v 2) (v 3) (v 4) (v 5)) isSeriesDef
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 6 → M
⊢ (fun v => IsSeries (v 0) (v 1) (v 2) (v 3) (v 4) (v 5)) v ↔ (Semiformula.Evalbm M v) (HSemiformula.val isSeriesDef)

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 6 → M
⊢ (fun v => IsSeries (v 0) (v 1) (v 2) (v 3) (v 4) (v 5)) v ↔ (Semiformula.Evalbm M v) (HSemiformula.val isSeriesDef)
Tactic:
simp [IsSeries, isSeriesDef, length_defined.df.iff, ext_defined.df.iff, segmentDef_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 6 → M
⊢ (∀ l < v 4, Segment (v 0) (v 2) (v 3) (‖v 1‖ * l) ‖v 1‖ (v 5{v 2}[l]) (v 5{v 2}[l + 1])) ↔
    ∀ x < v 4,
      ∃ x_1 ≤ v 1,
        x_1 = ‖v 1‖ ∧
          ∃ x_2 ≤ v 5,
            x_2 = v 5{v 2}[x] ∧
              ∃ x_3 ≤ v 5, x_3 = v 5{v 2}[x + 1] ∧ Segment (v 0) (v 2) (v (Fin.succ 2)) (x_1 * x) x_1 x_2 x_3

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 6 → M
⊢ (∀ l < v 4, Segment (v 0) (v 2) (v 3) (‖v 1‖ * l) ‖v 1‖ (v 5{v 2}[l]) (v 5{v 2}[l + 1])) ↔
    ∀ x < v 4,
      ∃ x_1 ≤ v 1,
        x_1 = ‖v 1‖ ∧
          ∃ x_2 ≤ v 5,
            x_2 = v 5{v 2}[x] ∧
              ∃ x_3 ≤ v 5, x_3 = v 5{v 2}[x + 1] ∧ Segment (v 0) (v 2) (v (Fin.succ 2)) (x_1 * x) x_1 x_2 x_3
Tactic:
apply forall₂_congr
State after:
case h
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀ + 𝛀₁
v : Fin 6 → M
⊢ ∀ a < v 4,
    Segment (v 0) (v 2) (v 3) (‖v 1‖ * a) ‖v 1‖ (v 5{v 2}[a]) (v 5{v 2}[a + 1]) ↔
      ∃ x ≤ v 1,
        x = ‖v 1‖ ∧
          ∃ x_1 ≤ v 5,
            x_1 = v 5{v 2}[a] ∧
              ∃ x_2 ≤ v 5, x_2 = v 5{v 2}[a + 1] ∧ Segment (v 0) (v 2) (v (Fin.succ 2)) (x * a) x x_1 x_2

State before:
case h
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀ + 𝛀₁
v : Fin 6 → M
⊢ ∀ a < v 4,
    Segment (v 0) (v 2) (v 3) (‖v 1‖ * a) ‖v 1‖ (v 5{v 2}[a]) (v 5{v 2}[a + 1]) ↔
      ∃ x ≤ v 1,
        x = ‖v 1‖ ∧
          ∃ x_1 ≤ v 5,
            x_1 = v 5{v 2}[a] ∧
              ∃ x_2 ≤ v 5, x_2 = v 5{v 2}[a + 1] ∧ Segment (v 0) (v 2) (v (Fin.succ 2)) (x * a) x x_1 x_2
Tactic:
intro x _
State after:
case h
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀ + 𝛀₁
v : Fin 6 → M
x : M
b✝ : x < v 4
⊢ Segment (v 0) (v 2) (v 3) (‖v 1‖ * x) ‖v 1‖ (v 5{v 2}[x]) (v 5{v 2}[x + 1]) ↔
    ∃ x_1 ≤ v 1,
      x_1 = ‖v 1‖ ∧
        ∃ x_2 ≤ v 5,
          x_2 = v 5{v 2}[x] ∧
            ∃ x_3 ≤ v 5, x_3 = v 5{v 2}[x + 1] ∧ Segment (v 0) (v 2) (v (Fin.succ 2)) (x_1 * x) x_1 x_2 x_3

State before:
case h
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀ + 𝛀₁
v : Fin 6 → M
x : M
b✝ : x < v 4
⊢ Segment (v 0) (v 2) (v 3) (‖v 1‖ * x) ‖v 1‖ (v 5{v 2}[x]) (v 5{v 2}[x + 1]) ↔
    ∃ x_1 ≤ v 1,
      x_1 = ‖v 1‖ ∧
        ∃ x_2 ≤ v 5,
          x_2 = v 5{v 2}[x] ∧
            ∃ x_3 ≤ v 5, x_3 = v 5{v 2}[x + 1] ∧ Segment (v 0) (v 2) (v (Fin.succ 2)) (x_1 * x) x_1 x_2 x_3
Tactic:
rw [bex_eq_le_iff, bex_eq_le_iff, bex_eq_le_iff]
State after:
case h
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀ + 𝛀₁
v : Fin 6 → M
x : M
b✝ : x < v 4
⊢ Segment (v 0) (v 2) (v 3) (‖v 1‖ * x) ‖v 1‖ (v 5{v 2}[x]) (v 5{v 2}[x + 1]) ↔
    ‖v 1‖ ≤ v 1 ∧
      v 5{v 2}[x] ≤ v 5 ∧
        v 5{v 2}[x + 1] ≤ v 5 ∧ Segment (v 0) (v 2) (v (Fin.succ 2)) (‖v 1‖ * x) ‖v 1‖ (v 5{v 2}[x]) (v 5{v 2}[x + 1])

State before:
case h
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀ + 𝛀₁
v : Fin 6 → M
x : M
b✝ : x < v 4
⊢ Segment (v 0) (v 2) (v 3) (‖v 1‖ * x) ‖v 1‖ (v 5{v 2}[x]) (v 5{v 2}[x + 1]) ↔
    ‖v 1‖ ≤ v 1 ∧
      v 5{v 2}[x] ≤ v 5 ∧
        v 5{v 2}[x + 1] ≤ v 5 ∧ Segment (v 0) (v 2) (v (Fin.succ 2)) (‖v 1‖ * x) ‖v 1‖ (v 5{v 2}[x]) (v 5{v 2}[x + 1])
Tactic:
simp
State after:
case h
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀ + 𝛀₁
v : Fin 6 → M
x : M
b✝ : x < v 4
⊢ Segment (v 0) (v 2) (v 3) (‖v 1‖ * x) ‖v 1‖ (v 5{v 2}[x]) (v 5{v 2}[x + 1]) ↔
    Segment (v 0) (v 2) (v (Fin.succ 2)) (‖v 1‖ * x) ‖v 1‖ (v 5{v 2}[x]) (v 5{v 2}[x + 1])

State before:
case h
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀ + 𝛀₁
v : Fin 6 → M
x : M
b✝ : x < v 4
⊢ Segment (v 0) (v 2) (v 3) (‖v 1‖ * x) ‖v 1‖ (v 5{v 2}[x]) (v 5{v 2}[x + 1]) ↔
    Segment (v 0) (v 2) (v (Fin.succ 2)) (‖v 1‖ * x) ‖v 1‖ (v 5{v 2}[x]) (v 5{v 2}[x + 1])
Tactic:
rfl
State after:
no goals