Theorem: LO.FirstOrder.Arith.Model.PR.Construction.CSeq.successor (Arithmetization/ISigmaOne/HFS/PRF.lean)

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
k : ℕ
p : Formulae k
c : Construction M p
v : Fin k → M
s l z : M
Hs : c.CSeq v s
hl : l + 1 = lh s
hz : ⟪l, z⟫ ∈ s
⊢ ⟪0, c.zero v⟫ ∈ s ⁀' c.succ v l z
Tactic:
simp [seqCons, Hs.zero]
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 ⊧ₘ* 𝐈𝚺₁
k : ℕ
p : Formulae k
c : Construction M p
v : Fin k → M
s l z : M
Hs : c.CSeq v s
hl : l + 1 = lh s
hz : ⟪l, z⟫ ∈ s
⊢ ∀ i < lh (s ⁀' c.succ v l z) - 1,
    ∀ (z_1 : M), ⟪i, z_1⟫ ∈ s ⁀' c.succ v l z → ⟪i + 1, c.succ v i z_1⟫ ∈ s ⁀' c.succ v l z
Tactic:
simp [Hs.seq.lh_seqCons]
State after:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
k : ℕ
p : Formulae k
c : Construction M p
v : Fin k → M
s l z : M
Hs : c.CSeq v s
hl : l + 1 = lh s
hz : ⟪l, z⟫ ∈ s
⊢ ∀ i < lh s, ∀ (z_1 : M), ⟪i, z_1⟫ ∈ s ⁀' c.succ v l z → ⟪i + 1, c.succ v i z_1⟫ ∈ s ⁀' c.succ v l z

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
k : ℕ
p : Formulae k
c : Construction M p
v : Fin k → M
s l z : M
Hs : c.CSeq v s
hl : l + 1 = lh s
hz : ⟪l, z⟫ ∈ s
⊢ ∀ i < lh s, ∀ (z_1 : M), ⟪i, z_1⟫ ∈ s ⁀' c.succ v l z → ⟪i + 1, c.succ v i z_1⟫ ∈ s ⁀' c.succ v l z
Tactic:
intro i hi w hiw
State after:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
k : ℕ
p : Formulae k
c : Construction M p
v : Fin k → M
s l z : M
Hs : c.CSeq v s
hl : l + 1 = lh s
hz : ⟪l, z⟫ ∈ s
i : M
hi : i < lh s
w : M
hiw : ⟪i, w⟫ ∈ s ⁀' c.succ v l z
⊢ ⟪i + 1, c.succ v i w⟫ ∈ s ⁀' c.succ v l z

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
k : ℕ
p : Formulae k
c : Construction M p
v : Fin k → M
s l z : M
Hs : c.CSeq v s
hl : l + 1 = lh s
hz : ⟪l, z⟫ ∈ s
i : M
hi : i < lh s
w : M
hiw : ⟪i, w⟫ ∈ s ⁀' c.succ v l z
hiws : ⟪i, w⟫ ∈ s
⊢ ⟪i + 1, c.succ v i w⟫ ∈ s ⁀' c.succ v l z
Tactic:
have : i ≤ l := by simpa [←hl, lt_succ_iff_le] using hi
State after:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
k : ℕ
p : Formulae k
c : Construction M p
v : Fin k → M
s l z : M
Hs : c.CSeq v s
hl : l + 1 = lh s
hz : ⟪l, z⟫ ∈ s
i : M
hi : i < lh s
w : M
hiw : ⟪i, w⟫ ∈ s ⁀' c.succ v l z
hiws : ⟪i, w⟫ ∈ s
this : i ≤ l
⊢ ⟪i + 1, c.succ v i w⟫ ∈ s ⁀' c.succ v l z

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
k : ℕ
p : Formulae k
c : Construction M p
v : Fin k → M
s l z : M
Hs : c.CSeq v s
hl : l + 1 = lh s
hz : ⟪l, z⟫ ∈ s
i : M
hi : i < lh s
w : M
hiw : ⟪i, w⟫ ∈ s ⁀' c.succ v l z
hiws : ⟪i, w⟫ ∈ s
this : i ≤ l
⊢ ⟪i + 1, c.succ v i w⟫ ∈ s ⁀' c.succ v l z
Tactic:
rcases this with (rfl | hil)
State after:
case inl
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
k : ℕ
p : Formulae k
c : Construction M p
v : Fin k → M
s z : M
Hs : c.CSeq v s
i : M
hi : i < lh s
w : M
hiws : ⟪i, w⟫ ∈ s
hl : i + 1 = lh s
hz : ⟪i, z⟫ ∈ s
hiw : ⟪i, w⟫ ∈ s ⁀' c.succ v i z
⊢ ⟪i + 1, c.succ v i w⟫ ∈ s ⁀' c.succ v i z

case inr
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
k : ℕ
p : Formulae k
c : Construction M p
v : Fin k → M
s l z : M
Hs : c.CSeq v s
hl : l + 1 = lh s
hz : ⟪l, z⟫ ∈ s
i : M
hi : i < lh s
w : M
hiw : ⟪i, w⟫ ∈ s ⁀' c.succ v l z
hiws : ⟪i, w⟫ ∈ s
hil : i < l
⊢ ⟪i + 1, c.succ v i w⟫ ∈ s ⁀' c.succ v l z

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
k : ℕ
p : Formulae k
c : Construction M p
v : Fin k → M
s l z : M
Hs : c.CSeq v s
hl : l + 1 = lh s
hz : ⟪l, z⟫ ∈ s
i : M
hi : i < lh s
w : M
hiw : ⟪i, w⟫ ∈ s ⁀' c.succ v l z
⊢ ⟪i, w⟫ ∈ s
Tactic:
simp [mem_seqCons_iff] at hiw
State after:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
k : ℕ
p : Formulae k
c : Construction M p
v : Fin k → M
s l z : M
Hs : c.CSeq v s
hl : l + 1 = lh s
hz : ⟪l, z⟫ ∈ s
i : M
hi : i < lh s
w : M
hiw : i = lh s ∧ w = c.succ v l z ∨ ⟪i, w⟫ ∈ s
⊢ ⟪i, w⟫ ∈ s

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
k : ℕ
p : Formulae k
c : Construction M p
v : Fin k → M
s l z : M
Hs : c.CSeq v s
hl : l + 1 = lh s
hz : ⟪l, z⟫ ∈ s
i : M
hi : i < lh s
w : M
hiw : i = lh s ∧ w = c.succ v l z ∨ ⟪i, w⟫ ∈ s
⊢ ⟪i, w⟫ ∈ s
Tactic:
rcases hiw with (⟨rfl, rfl⟩ | h)
State after:
case inl.intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
k : ℕ
p : Formulae k
c : Construction M p
v : Fin k → M
s l z : M
Hs : c.CSeq v s
hl : l + 1 = lh s
hz : ⟪l, z⟫ ∈ s
hi : lh s < lh s
⊢ ⟪lh s, c.succ v l z⟫ ∈ s

case inr
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
k : ℕ
p : Formulae k
c : Construction M p
v : Fin k → M
s l z : M
Hs : c.CSeq v s
hl : l + 1 = lh s
hz : ⟪l, z⟫ ∈ s
i : M
hi : i < lh s
w : M
h : ⟪i, w⟫ ∈ s
⊢ ⟪i, w⟫ ∈ s

State before:
case inl.intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
k : ℕ
p : Formulae k
c : Construction M p
v : Fin k → M
s l z : M
Hs : c.CSeq v s
hl : l + 1 = lh s
hz : ⟪l, z⟫ ∈ s
hi : lh s < lh s
⊢ ⟪lh s, c.succ v l z⟫ ∈ s
Tactic:
simp at hi
State after:
no goals

State before:
case inr
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
k : ℕ
p : Formulae k
c : Construction M p
v : Fin k → M
s l z : M
Hs : c.CSeq v s
hl : l + 1 = lh s
hz : ⟪l, z⟫ ∈ s
i : M
hi : i < lh s
w : M
h : ⟪i, w⟫ ∈ s
⊢ ⟪i, w⟫ ∈ s
Tactic:
assumption
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 ⊧ₘ* 𝐈𝚺₁
k : ℕ
p : Formulae k
c : Construction M p
v : Fin k → M
s l z : M
Hs : c.CSeq v s
hl : l + 1 = lh s
hz : ⟪l, z⟫ ∈ s
i : M
hi : i < lh s
w : M
hiw : ⟪i, w⟫ ∈ s ⁀' c.succ v l z
hiws : ⟪i, w⟫ ∈ s
⊢ i ≤ l
Tactic:
simpa [←hl, lt_succ_iff_le] using hi
State after:
no goals

State before:
case inl
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
k : ℕ
p : Formulae k
c : Construction M p
v : Fin k → M
s z : M
Hs : c.CSeq v s
i : M
hi : i < lh s
w : M
hiws : ⟪i, w⟫ ∈ s
hl : i + 1 = lh s
hz : ⟪i, z⟫ ∈ s
hiw : ⟪i, w⟫ ∈ s ⁀' c.succ v i z
⊢ ⟪i + 1, c.succ v i w⟫ ∈ s ⁀' c.succ v i z
Tactic:
have : w = z := Hs.seq.isMapping.uniq hiws hz
State after:
case inl
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
k : ℕ
p : Formulae k
c : Construction M p
v : Fin k → M
s z : M
Hs : c.CSeq v s
i : M
hi : i < lh s
w : M
hiws : ⟪i, w⟫ ∈ s
hl : i + 1 = lh s
hz : ⟪i, z⟫ ∈ s
hiw : ⟪i, w⟫ ∈ s ⁀' c.succ v i z
this : w = z
⊢ ⟪i + 1, c.succ v i w⟫ ∈ s ⁀' c.succ v i z

State before:
case inl
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
k : ℕ
p : Formulae k
c : Construction M p
v : Fin k → M
s z : M
Hs : c.CSeq v s
i : M
hi : i < lh s
w : M
hiws : ⟪i, w⟫ ∈ s
hl : i + 1 = lh s
hz : ⟪i, z⟫ ∈ s
hiw : ⟪i, w⟫ ∈ s ⁀' c.succ v i z
this : w = z
⊢ ⟪i + 1, c.succ v i w⟫ ∈ s ⁀' c.succ v i z
Tactic:
simp [this, hl]
State after:
no goals

State before:
case inr
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
k : ℕ
p : Formulae k
c : Construction M p
v : Fin k → M
s l z : M
Hs : c.CSeq v s
hl : l + 1 = lh s
hz : ⟪l, z⟫ ∈ s
i : M
hi : i < lh s
w : M
hiw : ⟪i, w⟫ ∈ s ⁀' c.succ v l z
hiws : ⟪i, w⟫ ∈ s
hil : i < l
⊢ ⟪i + 1, c.succ v i w⟫ ∈ s ⁀' c.succ v l z
Tactic:
simp [mem_seqCons_iff]
State after:
case inr
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
k : ℕ
p : Formulae k
c : Construction M p
v : Fin k → M
s l z : M
Hs : c.CSeq v s
hl : l + 1 = lh s
hz : ⟪l, z⟫ ∈ s
i : M
hi : i < lh s
w : M
hiw : ⟪i, w⟫ ∈ s ⁀' c.succ v l z
hiws : ⟪i, w⟫ ∈ s
hil : i < l
⊢ i + 1 = lh s ∧ c.succ v i w = c.succ v l z ∨ ⟪i + 1, c.succ v i w⟫ ∈ s

State before:
case inr
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
k : ℕ
p : Formulae k
c : Construction M p
v : Fin k → M
s l z : M
Hs : c.CSeq v s
hl : l + 1 = lh s
hz : ⟪l, z⟫ ∈ s
i : M
hi : i < lh s
w : M
hiw : ⟪i, w⟫ ∈ s ⁀' c.succ v l z
hiws : ⟪i, w⟫ ∈ s
hil : i < l
⊢ i + 1 = lh s ∧ c.succ v i w = c.succ v l z ∨ ⟪i + 1, c.succ v i w⟫ ∈ s
Tactic:
right
State after:
case inr.h
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
k : ℕ
p : Formulae k
c : Construction M p
v : Fin k → M
s l z : M
Hs : c.CSeq v s
hl : l + 1 = lh s
hz : ⟪l, z⟫ ∈ s
i : M
hi : i < lh s
w : M
hiw : ⟪i, w⟫ ∈ s ⁀' c.succ v l z
hiws : ⟪i, w⟫ ∈ s
hil : i < l
⊢ ⟪i + 1, c.succ v i w⟫ ∈ s

State before:
case inr.h
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
k : ℕ
p : Formulae k
c : Construction M p
v : Fin k → M
s l z : M
Hs : c.CSeq v s
hl : l + 1 = lh s
hz : ⟪l, z⟫ ∈ s
i : M
hi : i < lh s
w : M
hiw : ⟪i, w⟫ ∈ s ⁀' c.succ v l z
hiws : ⟪i, w⟫ ∈ s
hil : i < l
⊢ ⟪i + 1, c.succ v i w⟫ ∈ s
Tactic:
exact Hs.succ i (by simp [←hl, hil]) w hiws
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 ⊧ₘ* 𝐈𝚺₁
k : ℕ
p : Formulae k
c : Construction M p
v : Fin k → M
s l z : M
Hs : c.CSeq v s
hl : l + 1 = lh s
hz : ⟪l, z⟫ ∈ s
i : M
hi : i < lh s
w : M
hiw : ⟪i, w⟫ ∈ s ⁀' c.succ v l z
hiws : ⟪i, w⟫ ∈ s
hil : i < l
⊢ i < lh s - 1
Tactic:
simp [←hl, hil]
State after:
no goals