internlm/Lean-Github huggingface dataset:
Theorem: LO.FirstOrder.Arith.Model.Nuon.isSerieDef_defined
Proof 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]
Proof 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
Theorem: LO.FirstOrder.Arith.Model.Nuon.isSerieDef_defined
Proof 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
Proof 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
Theorem: LO.FirstOrder.Arith.Model.Nuon.isSerieDef_defined
Proof 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 _
Proof 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
Theorem: LO.FirstOrder.Arith.Model.Nuon.isSerieDef_defined
Proof 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]
Proof 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])
Theorem: LO.FirstOrder.Arith.Model.Nuon.isSerieDef_defined
Proof 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
Proof 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])
Theorem: LO.FirstOrder.Arith.Model.Nuon.isSerieDef_defined
Proof 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
Proof state after:
no goals
Theorem: LO.FirstOrder.Arith.Model.Nuon.seriesDef_defined
Proof 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 => Series (v 0) (v 1) (v 2) (v 3) (v 4) (v 5)) seriesDef
Tactic:
intro v
Proof 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 => Series (v 0) (v 1) (v 2) (v 3) (v 4) (v 5)) v ↔ (Semiformula.Evalbm M v) (HSemiformula.val seriesDef)
Theorem: LO.FirstOrder.Arith.Model.Nuon.seriesDef_defined
Proof 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 => Series (v 0) (v 1) (v 2) (v 3) (v 4) (v 5)) v ↔ (Semiformula.Evalbm M v) (HSemiformula.val seriesDef)
Tactic:
simp [Series, seriesDef, isSerieDef_defined.df.iff, ext_defined.df.iff]
Proof 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
⊢ (∃ T < v 0, IsSeries (v 0) (v 1) (v 2) (v 3) (v 4) T ∧ T{v 2}[0] = 0 ∧ T{v 2}[v 4] = v 5) ↔
    ∃ x < v 0, IsSeries (v 0) (v 1) (v 2) (v (Fin.succ 2)) (v 4) x ∧ 0 = x{v 2}[0] ∧ v 5 = x{v 2}[v 4]
Theorem: LO.FirstOrder.Arith.Model.Nuon.seriesDef_defined
Proof 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
⊢ (∃ T < v 0, IsSeries (v 0) (v 1) (v 2) (v 3) (v 4) T ∧ T{v 2}[0] = 0 ∧ T{v 2}[v 4] = v 5) ↔
    ∃ x < v 0, IsSeries (v 0) (v 1) (v 2) (v (Fin.succ 2)) (v 4) x ∧ 0 = x{v 2}[0] ∧ v 5 = x{v 2}[v 4]
Tactic:
apply exists_congr
Proof 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 : M),
    a < v 0 ∧ IsSeries (v 0) (v 1) (v 2) (v 3) (v 4) a ∧ a{v 2}[0] = 0 ∧ a{v 2}[v 4] = v 5 ↔
      a < v 0 ∧ IsSeries (v 0) (v 1) (v 2) (v (Fin.succ 2)) (v 4) a ∧ 0 = a{v 2}[0] ∧ v 5 = a{v 2}[v 4]
Theorem: LO.FirstOrder.Arith.Model.Nuon.seriesDef_defined
Proof 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 : M),
    a < v 0 ∧ IsSeries (v 0) (v 1) (v 2) (v 3) (v 4) a ∧ a{v 2}[0] = 0 ∧ a{v 2}[v 4] = v 5 ↔
      a < v 0 ∧ IsSeries (v 0) (v 1) (v 2) (v (Fin.succ 2)) (v 4) a ∧ 0 = a{v 2}[0] ∧ v 5 = a{v 2}[v 4]
Tactic:
intro T
Proof 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
T : M
⊢ T < v 0 ∧ IsSeries (v 0) (v 1) (v 2) (v 3) (v 4) T ∧ T{v 2}[0] = 0 ∧ T{v 2}[v 4] = v 5 ↔
    T < v 0 ∧ IsSeries (v 0) (v 1) (v 2) (v (Fin.succ 2)) (v 4) T ∧ 0 = T{v 2}[0] ∧ v 5 = T{v 2}[v 4]
Theorem: LO.FirstOrder.Arith.Model.Nuon.seriesDef_defined
Proof 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
T : M
⊢ T < v 0 ∧ IsSeries (v 0) (v 1) (v 2) (v 3) (v 4) T ∧ T{v 2}[0] = 0 ∧ T{v 2}[v 4] = v 5 ↔
    T < v 0 ∧ IsSeries (v 0) (v 1) (v 2) (v (Fin.succ 2)) (v 4) T ∧ 0 = T{v 2}[0] ∧ v 5 = T{v 2}[v 4]
Tactic:
apply and_congr_right
Proof state after:
case h.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
T : M
⊢ T < v 0 →
    (IsSeries (v 0) (v 1) (v 2) (v 3) (v 4) T ∧ T{v 2}[0] = 0 ∧ T{v 2}[v 4] = v 5 ↔
      IsSeries (v 0) (v 1) (v 2) (v (Fin.succ 2)) (v 4) T ∧ 0 = T{v 2}[0] ∧ v 5 = T{v 2}[v 4])
Theorem: LO.FirstOrder.Arith.Model.Nuon.seriesDef_defined
Proof state before:
case h.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
T : M
⊢ T < v 0 →
    (IsSeries (v 0) (v 1) (v 2) (v 3) (v 4) T ∧ T{v 2}[0] = 0 ∧ T{v 2}[v 4] = v 5 ↔
      IsSeries (v 0) (v 1) (v 2) (v (Fin.succ 2)) (v 4) T ∧ 0 = T{v 2}[0] ∧ v 5 = T{v 2}[v 4])
Tactic:
intros
Proof state after:
case h.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
T : M
a✝ : T < v 0
⊢ IsSeries (v 0) (v 1) (v 2) (v 3) (v 4) T ∧ T{v 2}[0] = 0 ∧ T{v 2}[v 4] = v 5 ↔
    IsSeries (v 0) (v 1) (v 2) (v (Fin.succ 2)) (v 4) T ∧ 0 = T{v 2}[0] ∧ v 5 = T{v 2}[v 4]
Theorem: LO.FirstOrder.Arith.Model.Nuon.seriesDef_defined
Proof state before:
case h.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
T : M
a✝ : T < v 0
⊢ IsSeries (v 0) (v 1) (v 2) (v 3) (v 4) T ∧ T{v 2}[0] = 0 ∧ T{v 2}[v 4] = v 5 ↔
    IsSeries (v 0) (v 1) (v 2) (v (Fin.succ 2)) (v 4) T ∧ 0 = T{v 2}[0] ∧ v 5 = T{v 2}[v 4]
Tactic:
apply and_congr_right
Proof state after:
case h.h.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
T : M
a✝ : T < v 0
⊢ IsSeries (v 0) (v 1) (v 2) (v 3) (v 4) T → (T{v 2}[0] = 0 ∧ T{v 2}[v 4] = v 5 ↔ 0 = T{v 2}[0] ∧ v 5 = T{v 2}[v 4])
Theorem: LO.FirstOrder.Arith.Model.Nuon.seriesDef_defined
Proof state before:
case h.h.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
T : M
a✝ : T < v 0
⊢ IsSeries (v 0) (v 1) (v 2) (v 3) (v 4) T → (T{v 2}[0] = 0 ∧ T{v 2}[v 4] = v 5 ↔ 0 = T{v 2}[0] ∧ v 5 = T{v 2}[v 4])
Tactic:
intros
Proof state after:
case h.h.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
T : M
a✝¹ : T < v 0
a✝ : IsSeries (v 0) (v 1) (v 2) (v 3) (v 4) T
⊢ T{v 2}[0] = 0 ∧ T{v 2}[v 4] = v 5 ↔ 0 = T{v 2}[0] ∧ v 5 = T{v 2}[v 4]
Theorem: LO.FirstOrder.Arith.Model.Nuon.seriesDef_defined
Proof state before:
case h.h.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
T : M
a✝¹ : T < v 0
a✝ : IsSeries (v 0) (v 1) (v 2) (v 3) (v 4) T
⊢ T{v 2}[0] = 0 ∧ T{v 2}[v 4] = v 5 ↔ 0 = T{v 2}[0] ∧ v 5 = T{v 2}[v 4]
Tactic:
simp [Eq.comm]
Proof state after:
no goals
Theorem: LO.FirstOrder.Arith.Model.Nuon.seriesSegmentDef_defined
Proof 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 => SeriesSegment (v 0) (v 1) (v 2) (v 3) (v 4) (v 5)) seriesSegmentDef
Tactic:
intro v
Proof 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 => SeriesSegment (v 0) (v 1) (v 2) (v 3) (v 4) (v 5)) v ↔
    (Semiformula.Evalbm M v) (HSemiformula.val seriesSegmentDef)
Theorem: LO.FirstOrder.Arith.Model.Nuon.seriesSegmentDef_defined
Proof 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 => SeriesSegment (v 0) (v 1) (v 2) (v 3) (v 4) (v 5)) v ↔
    (Semiformula.Evalbm M v) (HSemiformula.val seriesSegmentDef)
Tactic:
simp [SeriesSegment, seriesSegmentDef,
length_defined.df.iff, div_defined.df.iff, rem_defined.df.iff, seriesDef_defined.df.iff, segmentDef_defined.df.iff, lt_succ_iff_le]
Proof 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
⊢ (∃ nₖ ≤ v 5,
      Series (v 0) (v 1) (v 2) (v 3) (v 4 / ‖v 1‖) nₖ ∧
        Segment (v 0) (v 2) (v 3) (‖v 1‖ * (v 4 / ‖v 1‖)) (v 4 % ‖v 1‖) nₖ (v 5)) ↔
    ∃ x ≤ v 5,
      ∃ x_1 ≤ v 1,
        x_1 = ‖v 1‖ ∧
          ∃ x_2 ≤ v 4,
            x_2 = v 4 / x_1 ∧
              ∃ x_3 ≤ v 4,
                x_3 = v 4 % x_1 ∧
                  Series (v 0) (v 1) (v 2) (v (Fin.succ 2)) x_2 x ∧
                    Segment (v 0) (v 2) (v (Fin.succ 2)) (x_1 * x_2) x_3 x (v 5)
Theorem: LO.FirstOrder.Arith.Model.Nuon.seriesSegmentDef_defined
Proof 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
⊢ (∃ nₖ ≤ v 5,
      Series (v 0) (v 1) (v 2) (v 3) (v 4 / ‖v 1‖) nₖ ∧
        Segment (v 0) (v 2) (v 3) (‖v 1‖ * (v 4 / ‖v 1‖)) (v 4 % ‖v 1‖) nₖ (v 5)) ↔
    ∃ x ≤ v 5,
      ∃ x_1 ≤ v 1,
        x_1 = ‖v 1‖ ∧
          ∃ x_2 ≤ v 4,
            x_2 = v 4 / x_1 ∧
              ∃ x_3 ≤ v 4,
                x_3 = v 4 % x_1 ∧
                  Series (v 0) (v 1) (v 2) (v (Fin.succ 2)) x_2 x ∧
                    Segment (v 0) (v 2) (v (Fin.succ 2)) (x_1 * x_2) x_3 x (v 5)
Tactic:
apply exists_congr
Proof 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 : M),
    a ≤ v 5 ∧
        Series (v 0) (v 1) (v 2) (v 3) (v 4 / ‖v 1‖) a ∧
          Segment (v 0) (v 2) (v 3) (‖v 1‖ * (v 4 / ‖v 1‖)) (v 4 % ‖v 1‖) a (v 5) ↔
      a ≤ v 5 ∧
        ∃ x ≤ v 1,
          x = ‖v 1‖ ∧
            ∃ x_1 ≤ v 4,
              x_1 = v 4 / x ∧
                ∃ x_2 ≤ v 4,
                  x_2 = v 4 % x ∧
                    Series (v 0) (v 1) (v 2) (v (Fin.succ 2)) x_1 a ∧
                      Segment (v 0) (v 2) (v (Fin.succ 2)) (x * x_1) x_2 a (v 5)
Theorem: LO.FirstOrder.Arith.Model.Nuon.seriesSegmentDef_defined
Proof 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 : M),
    a ≤ v 5 ∧
        Series (v 0) (v 1) (v 2) (v 3) (v 4 / ‖v 1‖) a ∧
          Segment (v 0) (v 2) (v 3) (‖v 1‖ * (v 4 / ‖v 1‖)) (v 4 % ‖v 1‖) a (v 5) ↔
      a ≤ v 5 ∧
        ∃ x ≤ v 1,
          x = ‖v 1‖ ∧
            ∃ x_1 ≤ v 4,
              x_1 = v 4 / x ∧
                ∃ x_2 ≤ v 4,
                  x_2 = v 4 % x ∧
                    Series (v 0) (v 1) (v 2) (v (Fin.succ 2)) x_1 a ∧
                      Segment (v 0) (v 2) (v (Fin.succ 2)) (x * x_1) x_2 a (v 5)
Tactic:
intro nₖ
Proof 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
nₖ : M
⊢ nₖ ≤ v 5 ∧
      Series (v 0) (v 1) (v 2) (v 3) (v 4 / ‖v 1‖) nₖ ∧
        Segment (v 0) (v 2) (v 3) (‖v 1‖ * (v 4 / ‖v 1‖)) (v 4 % ‖v 1‖) nₖ (v 5) ↔
    nₖ ≤ v 5 ∧
      ∃ x ≤ v 1,
        x = ‖v 1‖ ∧
          ∃ x_1 ≤ v 4,
            x_1 = v 4 / x ∧
              ∃ x_2 ≤ v 4,
                x_2 = v 4 % x ∧
                  Series (v 0) (v 1) (v 2) (v (Fin.succ 2)) x_1 nₖ ∧
                    Segment (v 0) (v 2) (v (Fin.succ 2)) (x * x_1) x_2 nₖ (v 5)
Theorem: LO.FirstOrder.Arith.Model.Nuon.seriesSegmentDef_defined
Proof 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
nₖ : M
⊢ nₖ ≤ v 5 ∧
      Series (v 0) (v 1) (v 2) (v 3) (v 4 / ‖v 1‖) nₖ ∧
        Segment (v 0) (v 2) (v 3) (‖v 1‖ * (v 4 / ‖v 1‖)) (v 4 % ‖v 1‖) nₖ (v 5) ↔
    nₖ ≤ v 5 ∧
      ∃ x ≤ v 1,
        x = ‖v 1‖ ∧
          ∃ x_1 ≤ v 4,
            x_1 = v 4 / x ∧
              ∃ x_2 ≤ v 4,
                x_2 = v 4 % x ∧
                  Series (v 0) (v 1) (v 2) (v (Fin.succ 2)) x_1 nₖ ∧
                    Segment (v 0) (v 2) (v (Fin.succ 2)) (x * x_1) x_2 nₖ (v 5)
Tactic:
apply and_congr_right
Proof state after:
case h.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
nₖ : M
⊢ nₖ ≤ v 5 →
    (Series (v 0) (v 1) (v 2) (v 3) (v 4 / ‖v 1‖) nₖ ∧
        Segment (v 0) (v 2) (v 3) (‖v 1‖ * (v 4 / ‖v 1‖)) (v 4 % ‖v 1‖) nₖ (v 5) ↔
      ∃ x ≤ v 1,
        x = ‖v 1‖ ∧
          ∃ x_1 ≤ v 4,
            x_1 = v 4 / x ∧
              ∃ x_2 ≤ v 4,
                x_2 = v 4 % x ∧
                  Series (v 0) (v 1) (v 2) (v (Fin.succ 2)) x_1 nₖ ∧
                    Segment (v 0) (v 2) (v (Fin.succ 2)) (x * x_1) x_2 nₖ (v 5))
Theorem: LO.FirstOrder.Arith.Model.Nuon.seriesSegmentDef_defined
Proof state before:
case h.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
nₖ : M
⊢ nₖ ≤ v 5 →
    (Series (v 0) (v 1) (v 2) (v 3) (v 4 / ‖v 1‖) nₖ ∧
        Segment (v 0) (v 2) (v 3) (‖v 1‖ * (v 4 / ‖v 1‖)) (v 4 % ‖v 1‖) nₖ (v 5) ↔
      ∃ x ≤ v 1,
        x = ‖v 1‖ ∧
          ∃ x_1 ≤ v 4,
            x_1 = v 4 / x ∧
              ∃ x_2 ≤ v 4,
                x_2 = v 4 % x ∧
                  Series (v 0) (v 1) (v 2) (v (Fin.succ 2)) x_1 nₖ ∧
                    Segment (v 0) (v 2) (v (Fin.succ 2)) (x * x_1) x_2 nₖ (v 5))
Tactic:
intros
Proof state after:
case h.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
nₖ : M
a✝ : nₖ ≤ v 5
⊢ Series (v 0) (v 1) (v 2) (v 3) (v 4 / ‖v 1‖) nₖ ∧
      Segment (v 0) (v 2) (v 3) (‖v 1‖ * (v 4 / ‖v 1‖)) (v 4 % ‖v 1‖) nₖ (v 5) ↔
    ∃ x ≤ v 1,
      x = ‖v 1‖ ∧
        ∃ x_1 ≤ v 4,
          x_1 = v 4 / x ∧
            ∃ x_2 ≤ v 4,
              x_2 = v 4 % x ∧
                Series (v 0) (v 1) (v 2) (v (Fin.succ 2)) x_1 nₖ ∧
                  Segment (v 0) (v 2) (v (Fin.succ 2)) (x * x_1) x_2 nₖ (v 5)
Theorem: LO.FirstOrder.Arith.Model.Nuon.seriesSegmentDef_defined
Proof state before:
case h.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
nₖ : M
a✝ : nₖ ≤ v 5
⊢ Series (v 0) (v 1) (v 2) (v 3) (v 4 / ‖v 1‖) nₖ ∧
      Segment (v 0) (v 2) (v 3) (‖v 1‖ * (v 4 / ‖v 1‖)) (v 4 % ‖v 1‖) nₖ (v 5) ↔
    ∃ x ≤ v 1,
      x = ‖v 1‖ ∧
        ∃ x_1 ≤ v 4,
          x_1 = v 4 / x ∧
            ∃ x_2 ≤ v 4,
              x_2 = v 4 % x ∧
                Series (v 0) (v 1) (v 2) (v (Fin.succ 2)) x_1 nₖ ∧
                  Segment (v 0) (v 2) (v (Fin.succ 2)) (x * x_1) x_2 nₖ (v 5)
Tactic:
rw [bex_eq_le_iff, bex_eq_le_iff, bex_eq_le_iff]
Proof state after:
case h.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
nₖ : M
a✝ : nₖ ≤ v 5
⊢ Series (v 0) (v 1) (v 2) (v 3) (v 4 / ‖v 1‖) nₖ ∧
      Segment (v 0) (v 2) (v 3) (‖v 1‖ * (v 4 / ‖v 1‖)) (v 4 % ‖v 1‖) nₖ (v 5) ↔
    ‖v 1‖ ≤ v 1 ∧
      v 4 / ‖v 1‖ ≤ v 4 ∧
        v 4 % ‖v 1‖ ≤ v 4 ∧
          Series (v 0) (v 1) (v 2) (v (Fin.succ 2)) (v 4 / ‖v 1‖) nₖ ∧
            Segment (v 0) (v 2) (v (Fin.succ 2)) (‖v 1‖ * (v 4 / ‖v 1‖)) (v 4 % ‖v 1‖) nₖ (v 5)
Theorem: LO.FirstOrder.Arith.Model.Nuon.seriesSegmentDef_defined
Proof state before:
case h.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
nₖ : M
a✝ : nₖ ≤ v 5
⊢ Series (v 0) (v 1) (v 2) (v 3) (v 4 / ‖v 1‖) nₖ ∧
      Segment (v 0) (v 2) (v 3) (‖v 1‖ * (v 4 / ‖v 1‖)) (v 4 % ‖v 1‖) nₖ (v 5) ↔
    ‖v 1‖ ≤ v 1 ∧
      v 4 / ‖v 1‖ ≤ v 4 ∧
        v 4 % ‖v 1‖ ≤ v 4 ∧
          Series (v 0) (v 1) (v 2) (v (Fin.succ 2)) (v 4 / ‖v 1‖) nₖ ∧
            Segment (v 0) (v 2) (v (Fin.succ 2)) (‖v 1‖ * (v 4 / ‖v 1‖)) (v 4 % ‖v 1‖) nₖ (v 5)
Tactic:
simp
Proof state after:
case h.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
nₖ : M
a✝ : nₖ ≤ v 5
⊢ Series (v 0) (v 1) (v 2) (v 3) (v 4 / ‖v 1‖) nₖ ∧
      Segment (v 0) (v 2) (v 3) (‖v 1‖ * (v 4 / ‖v 1‖)) (v 4 % ‖v 1‖) nₖ (v 5) ↔
    Series (v 0) (v 1) (v 2) (v (Fin.succ 2)) (v 4 / ‖v 1‖) nₖ ∧
      Segment (v 0) (v 2) (v (Fin.succ 2)) (‖v 1‖ * (v 4 / ‖v 1‖)) (v 4 % ‖v 1‖) nₖ (v 5)
Theorem: LO.FirstOrder.Arith.Model.Nuon.seriesSegmentDef_defined
Proof state before:
case h.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
nₖ : M
a✝ : nₖ ≤ v 5
⊢ Series (v 0) (v 1) (v 2) (v 3) (v 4 / ‖v 1‖) nₖ ∧
      Segment (v 0) (v 2) (v 3) (‖v 1‖ * (v 4 / ‖v 1‖)) (v 4 % ‖v 1‖) nₖ (v 5) ↔
    Series (v 0) (v 1) (v 2) (v (Fin.succ 2)) (v 4 / ‖v 1‖) nₖ ∧
      Segment (v 0) (v 2) (v (Fin.succ 2)) (‖v 1‖ * (v 4 / ‖v 1‖)) (v 4 % ‖v 1‖) nₖ (v 5)
Tactic:
rfl
Proof state after:
no goals
Theorem: LO.FirstOrder.Arith.Model.Nuon.nuonAux_defined
Proof state before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀ + 𝛀₁
⊢ 𝚺₀-Relation₃ NuonAux via nuonAuxDef
Tactic:
intro v
Proof 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 3 → M
⊢ (fun v => NuonAux (v 0) (v 1) (v 2)) v ↔ (Semiformula.Evalbm M v) (HSemiformula.val nuonAuxDef)
Theorem: LO.FirstOrder.Arith.Model.Nuon.nuonAux_defined
Proof 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 3 → M
⊢ (fun v => NuonAux (v 0) (v 1) (v 2)) v ↔ (Semiformula.Evalbm M v) (HSemiformula.val nuonAuxDef)
Tactic:
simp [NuonAux, polyU, polyI, polyL, nuonAuxDef,
length_defined.df.iff, sqrt_defined.df.iff, bexp_defined.df.iff, seriesSegmentDef_defined.df.iff, lt_succ_iff_le, numeral_eq_natCast]
Proof 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 3 → M
⊢ SeriesSegment ((2 * v 0 + 1) ^ 128) (bexp (2 * v 0) (√‖v 0‖)) (‖bexp (2 * v 0) (√‖v 0‖)‖ ^ 2) (v 0) (v 1) (v 2) ↔
    ∃ x ≤ v 0,
      x = ‖v 0‖ ∧
        ∃ x_1 ≤ x,
          x_1 = √x ∧
            ∃ x ≤ 2 * v 0,
              x = bexp (2 * v 0) x_1 ∧
                ∃ x_2 ≤ x, x_2 = ‖x‖ ∧ SeriesSegment ((2 * v 0 + 1) ^ 128) x (x_2 ^ 2) (v 0) (v 1) (v 2)
Theorem: LO.FirstOrder.Arith.Model.Nuon.nuonAux_defined
Proof 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 3 → M
⊢ SeriesSegment ((2 * v 0 + 1) ^ 128) (bexp (2 * v 0) (√‖v 0‖)) (‖bexp (2 * v 0) (√‖v 0‖)‖ ^ 2) (v 0) (v 1) (v 2) ↔
    ∃ x ≤ v 0,
      x = ‖v 0‖ ∧
        ∃ x_1 ≤ x,
          x_1 = √x ∧
            ∃ x ≤ 2 * v 0,
              x = bexp (2 * v 0) x_1 ∧
                ∃ x_2 ≤ x, x_2 = ‖x‖ ∧ SeriesSegment ((2 * v 0 + 1) ^ 128) x (x_2 ^ 2) (v 0) (v 1) (v 2)
Tactic:
rw [bex_eq_le_iff, bex_eq_le_iff, bex_eq_le_iff, bex_eq_le_iff]
Proof 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 3 → M
⊢ SeriesSegment ((2 * v 0 + 1) ^ 128) (bexp (2 * v 0) (√‖v 0‖)) (‖bexp (2 * v 0) (√‖v 0‖)‖ ^ 2) (v 0) (v 1) (v 2) ↔
    ‖v 0‖ ≤ v 0 ∧
      √‖v 0‖ ≤ ‖v 0‖ ∧
        bexp (2 * v 0) (√‖v 0‖) ≤ 2 * v 0 ∧
          ‖bexp (2 * v 0) (√‖v 0‖)‖ ≤ bexp (2 * v 0) (√‖v 0‖) ∧
            SeriesSegment ((2 * v 0 + 1) ^ 128) (bexp (2 * v 0) (√‖v 0‖)) (‖bexp (2 * v 0) (√‖v 0‖)‖ ^ 2) (v 0) (v 1)
              (v 2)