Theorem: LO.FirstOrder.Arith.Model.sInter_exists_unique (Arithmetization/ISigmaOne/HFS/Basic.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 : M
⊢ ∃! u, ∀ (x : M), x ∈ u ↔ s ≠ ∅ ∧ ∀ t ∈ s, x ∈ t
Tactic:
have : 𝚺₁-Predicate fun x ↦ s ≠ ∅ ∧ ∀ t ∈ s, x ∈ t := 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 : M
this : 𝚺₁-Predicate fun x => s ≠ ∅ ∧ ∀ t ∈ s, x ∈ t
⊢ ∃! u, ∀ (x : M), x ∈ u ↔ s ≠ ∅ ∧ ∀ t ∈ s, x ∈ t

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
s : M
this : 𝚺₁-Predicate fun x => s ≠ ∅ ∧ ∀ t ∈ s, x ∈ t
⊢ ∃! u, ∀ (x : M), x ∈ u ↔ s ≠ ∅ ∧ ∀ t ∈ s, x ∈ t
Tactic:
exact finite_comprehension₁! this
  ⟨s, fun i ↦ by
    rintro ⟨hs, h⟩
    have : log s ∈ s := log_mem_of_pos <| pos_iff_ne_zero.mpr hs
    exact _root_.trans (lt_of_mem <| h (log s) this) (lt_of_mem this)⟩
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 : M
⊢ 𝚺₁-Predicate fun x => s ≠ ∅ ∧ ∀ t ∈ s, x ∈ t
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 : M
this : 𝚺₁-Predicate fun x => s ≠ ∅ ∧ ∀ t ∈ s, x ∈ t
i : M
⊢ (s ≠ ∅ ∧ ∀ t ∈ s, i ∈ t) → i < s
Tactic:
rintro ⟨hs, h⟩
State after:
case intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
s : M
this : 𝚺₁-Predicate fun x => s ≠ ∅ ∧ ∀ t ∈ s, x ∈ t
i : M
hs : s ≠ ∅
h : ∀ t ∈ s, i ∈ t
⊢ i < s

State before:
case intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
s : M
this : 𝚺₁-Predicate fun x => s ≠ ∅ ∧ ∀ t ∈ s, x ∈ t
i : M
hs : s ≠ ∅
h : ∀ t ∈ s, i ∈ t
⊢ i < s
Tactic:
have : log s ∈ s := log_mem_of_pos <| pos_iff_ne_zero.mpr hs
State after:
case intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
s : M
this✝ : 𝚺₁-Predicate fun x => s ≠ ∅ ∧ ∀ t ∈ s, x ∈ t
i : M
hs : s ≠ ∅
h : ∀ t ∈ s, i ∈ t
this : log s ∈ s
⊢ i < s

State before:
case intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
s : M
this✝ : 𝚺₁-Predicate fun x => s ≠ ∅ ∧ ∀ t ∈ s, x ∈ t
i : M
hs : s ≠ ∅
h : ∀ t ∈ s, i ∈ t
this : log s ∈ s
⊢ i < s
Tactic:
exact _root_.trans (lt_of_mem <| h (log s) this) (lt_of_mem this)
State after:
no goals