Theorem: LO.FirstOrder.Arith.Model.PR.Construction.result_succ (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
u : M
⊢ c.result v (u + 1) = c.succ v u (c.result v u)
Tactic:
rcases c.result_spec v u with ⟨s, Hs, hk, h⟩
State after:
case intro.intro.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
u s : M
Hs : c.CSeq v s
hk : u + 1 = lh s
h : ⟪u, c.result v u⟫ ∈ s
⊢ c.result v (u + 1) = c.succ v u (c.result v u)

State before:
case intro.intro.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
u s : M
Hs : c.CSeq v s
hk : u + 1 = lh s
h : ⟪u, c.result v u⟫ ∈ s
⊢ c.result v (u + 1) = c.succ v u (c.result v u)
Tactic:
have : CSeq c v (s ⁀' c.succ v u (result c v u) ) := Hs.successor hk h
State after:
case intro.intro.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
u s : M
Hs : c.CSeq v s
hk : u + 1 = lh s
h : ⟪u, c.result v u⟫ ∈ s
this : c.CSeq v (s ⁀' c.succ v u (c.result v u))
⊢ c.result v (u + 1) = c.succ v u (c.result v u)

State before:
case intro.intro.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
u s : M
Hs : c.CSeq v s
hk : u + 1 = lh s
h : ⟪u, c.result v u⟫ ∈ s
this : c.CSeq v (s ⁀' c.succ v u (c.result v u))
⊢ c.result v (u + 1) = c.succ v u (c.result v u)
Tactic:
exact Eq.symm
  <| Classical.choose_uniq (c.cSeq_result_existsUnique v (u + 1))
  ⟨_, this, by simp [Hs.seq, hk], by simp [hk]⟩
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
u s : M
Hs : c.CSeq v s
hk : u + 1 = lh s
h : ⟪u, c.result v u⟫ ∈ s
this : c.CSeq v (s ⁀' c.succ v u (c.result v u))
⊢ u + 1 + 1 = lh (s ⁀' c.succ v u (c.result v u))
Tactic:
simp [Hs.seq, hk]
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
u s : M
Hs : c.CSeq v s
hk : u + 1 = lh s
h : ⟪u, c.result v u⟫ ∈ s
this : c.CSeq v (s ⁀' c.succ v u (c.result v u))
⊢ ⟪u + 1, c.succ v u (c.result v u)⟫ ∈ s ⁀' c.succ v u (c.result v u)
Tactic:
simp [hk]
State after:
no goals