Theorem: LO.FirstOrder.Arith.Model.Nuon.seriesDef_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 => Series (v 0) (v 1) (v 2) (v 3) (v 4) (v 5)) seriesDef
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 => Series (v 0) (v 1) (v 2) (v 3) (v 4) (v 5)) v ↔ (Semiformula.Evalbm M v) (HSemiformula.val seriesDef)

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]
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]

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
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]

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
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]

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
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])

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
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]

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
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])

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
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]

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]
State after:
no goals