Theorem: LO.FirstOrder.Arith.Model.seqProduct_exists_unique (Arithmetization/ISigmaOne/HFS/Supplemental.lean)

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
s a : M
⊢ ∃! t, ∀ (x : M), x ∈ t ↔ ∃ v ∈ s, ∃ u ∈ a, x = v ⁀' u
Tactic:
have : 𝚺₁-Predicate fun x ↦ ∃ v ∈ s, ∃ u ∈ a, x = v ⁀' u := by definability
State after:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
s a : M
this : 𝚺₁-Predicate fun x => ∃ v ∈ s, ∃ u ∈ a, x = v ⁀' u
⊢ ∃! t, ∀ (x : M), x ∈ t ↔ ∃ v ∈ s, ∃ u ∈ a, x = v ⁀' u

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
s a : M
this : 𝚺₁-Predicate fun x => ∃ v ∈ s, ∃ u ∈ a, x = v ⁀' u
⊢ ∃! t, ∀ (x : M), x ∈ t ↔ ∃ v ∈ s, ∃ u ∈ a, x = v ⁀' u
Tactic:
exact finite_comprehension₁! this ⟨log s + exp ((2 * log s + log a + 1)^2) + 1, by
  rintro x ⟨v, hv, u, hu, rfl⟩
  exact lt_succ_iff_le.mpr <| seqCons_le (le_log_of_mem hu) (le_log_of_mem hv)⟩
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 ⊧ₘ* 𝐈𝚺₁
s a : M
⊢ 𝚺₁-Predicate fun x => ∃ v ∈ s, ∃ u ∈ a, x = v ⁀' u
Tactic:
definability
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 ⊧ₘ* 𝐈𝚺₁
s a : M
this : 𝚺₁-Predicate fun x => ∃ v ∈ s, ∃ u ∈ a, x = v ⁀' u
⊢ ∀ (i : M), (∃ v ∈ s, ∃ u ∈ a, i = v ⁀' u) → i < log s + exp ((2 * log s + log a + 1) ^ 2) + 1
Tactic:
rintro x ⟨v, hv, u, hu, rfl⟩
State after:
case intro.intro.intro.intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
s a : M
this : 𝚺₁-Predicate fun x => ∃ v ∈ s, ∃ u ∈ a, x = v ⁀' u
v : M
hv : v ∈ s
u : M
hu : u ∈ a
⊢ v ⁀' u < log s + exp ((2 * log s + log a + 1) ^ 2) + 1

State before:
case intro.intro.intro.intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
s a : M
this : 𝚺₁-Predicate fun x => ∃ v ∈ s, ∃ u ∈ a, x = v ⁀' u
v : M
hv : v ∈ s
u : M
hu : u ∈ a
⊢ v ⁀' u < log s + exp ((2 * log s + log a + 1) ^ 2) + 1
Tactic:
exact lt_succ_iff_le.mpr <| seqCons_le (le_log_of_mem hu) (le_log_of_mem hv)
State after:
no goals