Imports
import Mathlib.Tactic
import Analysis.Section_8_4set_option doc.verso.suggestions falseAnalysis I, Section 8.5: Ordered sets
I have attempted to make the translation as faithful a paraphrasing as possible of the original text. When there is a choice between a more idiomatic Lean solution and a more faithful translation, I have generally chosen the latter. In particular, there will be places where the Lean code could be "golfed" to be more elegant and idiomatic, but I have consciously avoided doing so.
Main constructions and results of this section:
-
Review of
PartialOrder,LinearOrder, andWellFoundedLT, with some API. -
Strong induction.
-
Zorn's lemma.
namespace Chapter8/-- Definition 8.5.1 - Here we just review the Mathlib {name}`PartialOrder` class. -/
example {X:Type} [PartialOrder X] (x:X) : x ≤ x := le_refl xexample {X:Type} [PartialOrder X] {x y:X} (h₁: x ≤ y) (h₂: y ≤ x) : x = y := antisymm h₁ h₂example {X:Type} [PartialOrder X] {x y z:X} (h₁: x ≤ y) (h₂: y ≤ z) : x ≤ z := le_trans h₁ h₂example {X:Type} [PartialOrder X] (x y:X) : x < y ↔ x ≤ y ∧ x ≠ y := lt_iff_le_and_ne@[implicit_reducible] def PartialOrder.mk {X:Type} [LE X]
(hrefl: ∀ x:X, x ≤ x)
(hantisymm: ∀ x y:X, x ≤ y → y ≤ x → x = y)
(htrans: ∀ x y z:X, x ≤ y → y ≤ z → x ≤ z) : PartialOrder X :=
{
le := (· ≤ ·)
le_refl := hrefl
le_antisymm := hantisymm
le_trans := htrans
}example {X:Type} : PartialOrder (Set X) := X:Type⊢ PartialOrder (Set X) All goals completed! 🐙example {X:Type} (A B: Set X) : A ≤ B ↔ A ⊆ B := X:TypeA:Set XB:Set X⊢ A ≤ B ↔ A ⊆ B All goals completed! 🐙/-- Definition 8.5.3. Here we just review the Mathlib {name}`LinearOrder` class. -/
example {X:Type} [LinearOrder X] : PartialOrder X := X:Typeinst✝:LinearOrder X⊢ PartialOrder X All goals completed! 🐙def IsTotal (X:Type) [PartialOrder X] : Prop := ∀ x y:X, x ≤ y ∨ y ≤ xexample {X:Type} [LinearOrder X] : IsTotal X := le_totalopen Classical in
@[implicit_reducible] noncomputable def LinearOrder.mk {X:Type} [PartialOrder X]
(htotal: IsTotal X) : LinearOrder X :=
{
le_total := htotal
toDecidableLE := decRel LE.le
}/- Examples 8.5.4 -/
#check (inferInstance : LinearOrder ℕ)#check (inferInstance : LinearOrder ℚ)#check (inferInstance : LinearOrder ℝ)#check (inferInstance : LinearOrder EReal)@[implicit_reducible] noncomputable def LinearOrder.subtype {X:Type} [LinearOrder X] (A: Set X) : LinearOrder A :=
LinearOrder.mk (X:Typeinst✝:LinearOrder XA:Set X⊢ IsTotal ↑A
All goals completed! 🐙
)theorem IsTotal.subtype {X:Type} [PartialOrder X] {A: Set X} (hA: IsTotal X) : IsTotal A := X:Typeinst✝:PartialOrder XA:Set XhA:IsTotal X⊢ IsTotal ↑A
intro ⟨ x, hx ⟩ X:Typeinst✝:PartialOrder XA:Set XhA:IsTotal Xx:Xhx:x ∈ Ay:Xhy:y ∈ A⊢ ⟨x, hx⟩ ≤ ⟨y, hy⟩ ∨ ⟨y, hy⟩ ≤ ⟨x, hx⟩
X:Typeinst✝:PartialOrder XA:Set Xx:Xhx:x ∈ Ay:Xhy:y ∈ AhA:x ≤ y ∨ y ≤ x⊢ ⟨x, hx⟩ ≤ ⟨y, hy⟩ ∨ ⟨y, hy⟩ ≤ ⟨x, hx⟩; All goals completed! 🐙theorem IsTotal.subset {X:Type} [PartialOrder X] {A B: Set X} (hA: IsTotal A) (hAB: B ⊆ A) : IsTotal B := X:Typeinst✝:PartialOrder XA:Set XB:Set XhA:IsTotal ↑AhAB:B ⊆ A⊢ IsTotal ↑B
intro ⟨ x, hx ⟩ X:Typeinst✝:PartialOrder XA:Set XB:Set XhA:IsTotal ↑AhAB:B ⊆ Ax:Xhx:x ∈ By:Xhy:y ∈ B⊢ ⟨x, hx⟩ ≤ ⟨y, hy⟩ ∨ ⟨y, hy⟩ ≤ ⟨x, hx⟩
X:Typeinst✝:PartialOrder XA:Set XB:Set XhAB:B ⊆ Ax:Xhx:x ∈ By:Xhy:y ∈ BhA:⟨x, ⋯⟩ ≤ ⟨y, ⋯⟩ ∨ ⟨y, ⋯⟩ ≤ ⟨x, ⋯⟩⊢ ⟨x, hx⟩ ≤ ⟨y, hy⟩ ∨ ⟨y, hy⟩ ≤ ⟨x, hx⟩; All goals completed! 🐙abbrev X_8_5_4 : Set (Set ℕ) := { {1,2}, {2}, {2,3}, {2,3,4}, {5} }example : ¬ IsTotal X_8_5_4 := ⊢ ¬IsTotal ↑X_8_5_4 All goals completed! 🐙
Definition 8.5.5 (Maximal and minimal elements). Here we use Mathlib's IsMax and IsMin.
theorem IsMax.iff {X:Type} [PartialOrder X] (x:X) :
IsMax x ↔ ¬ ∃ y, x < y := X:Typeinst✝:PartialOrder Xx:X⊢ IsMax x ↔ ¬∃ y, x < y X:Typeinst✝:PartialOrder Xx:X⊢ (∀ (b : X), ¬x < b) ↔ ¬∃ y, x < y; All goals completed! 🐙theorem IsMin.iff {X:Type} [PartialOrder X] (x:X) :
IsMin x ↔ ¬ ∃ y, x > y := X:Typeinst✝:PartialOrder Xx:X⊢ IsMin x ↔ ¬∃ y, x > y X:Typeinst✝:PartialOrder Xx:X⊢ (∀ (b : X), ¬b < x) ↔ ¬∃ y, x > y; All goals completed! 🐙/-- Examples 8.5.6 -/
example : IsMin (⟨ {2}, ⊢ {2} ∈ X_8_5_4 All goals completed! 🐙 ⟩ : X_8_5_4) := ⊢ IsMin ⟨{2}, ⋯⟩ All goals completed! 🐙example : IsMax (⟨ {1,2}, ⊢ {1, 2} ∈ X_8_5_4 All goals completed! 🐙 ⟩ : X_8_5_4) := ⊢ IsMax ⟨{1, 2}, ⋯⟩ All goals completed! 🐙example : IsMax (⟨ {2,3,4}, ⊢ {2, 3, 4} ∈ X_8_5_4 All goals completed! 🐙 ⟩ : X_8_5_4) := ⊢ IsMax ⟨{2, 3, 4}, ⋯⟩ All goals completed! 🐙example : IsMin (⟨ {5}, ⊢ {5} ∈ X_8_5_4 All goals completed! 🐙 ⟩ : X_8_5_4) ∧ IsMax (⟨ {5}, ⊢ {5} ∈ X_8_5_4 All goals completed! 🐙 ⟩ : X_8_5_4) := ⊢ IsMin ⟨{5}, ⋯⟩ ∧ IsMax ⟨{5}, ⋯⟩ All goals completed! 🐙example : ¬ IsMin (⟨ {2,3}, ⊢ {2, 3} ∈ X_8_5_4 All goals completed! 🐙 ⟩ : X_8_5_4) ∧ ¬ IsMax (⟨ {2,3}, ⊢ {2, 3} ∈ X_8_5_4 All goals completed! 🐙 ⟩ : X_8_5_4) := ⊢ ¬IsMin ⟨{2, 3}, ⋯⟩ ∧ ¬IsMax ⟨{2, 3}, ⋯⟩ All goals completed! 🐙/-- Example 8.5.7 -/
example : IsMin (0:ℕ) := ⊢ IsMin 0 All goals completed! 🐙example (n:ℕ) : ¬ IsMax n := n:ℕ⊢ ¬IsMax n All goals completed! 🐙example (n:ℤ): ¬ IsMin n ∧ ¬ IsMax n := n:ℤ⊢ ¬IsMin n ∧ ¬IsMax n All goals completed! 🐙
Definition 8.5.8. We use [LinearOrder X] [WellFoundedLT X] to describe well-ordered sets.
theorem WellFoundedLT.iff (X:Type) [LinearOrder X] :
WellFoundedLT X ↔ ∀ A:Set X, A.Nonempty → ∃ x:A, IsMin x := X:Typeinst✝:LinearOrder X⊢ WellFoundedLT X ↔ ∀ (A : Set X), A.Nonempty → ∃ x, IsMin x
X:Typeinst✝:LinearOrder X⊢ (IsWellFounded X fun x1 x2 ↦ x1 < x2) ↔ ∀ (A : Set X), A.Nonempty → ∃ x, ∀ ⦃b : ↑A⦄, b ≤ x → x ≤ b
X:Typeinst✝:LinearOrder X⊢ (∀ (s : Set X), s.Nonempty → ∃ m ∈ s, ∀ x ∈ s, ¬x < m) ↔ ∀ (A : Set X), A.Nonempty → ∃ x, ∀ ⦃b : ↑A⦄, b ≤ x → x ≤ b
X:Typeinst✝:LinearOrder XA:Set XhA:A.Nonempty⊢ (∃ m ∈ A, ∀ x ∈ A, ¬x < m) ↔ ∃ x, ∀ ⦃b : ↑A⦄, b ≤ x → x ≤ b; X:Typeinst✝:LinearOrder XA:Set XhA:A.Nonempty⊢ (∃ m ∈ A, ∀ x ∈ A, ¬x < m) → ∃ x, ∀ ⦃b : ↑A⦄, b ≤ x → x ≤ bX:Typeinst✝:LinearOrder XA:Set XhA:A.Nonempty⊢ (∃ x, ∀ ⦃b : ↑A⦄, b ≤ x → x ≤ b) → ∃ m ∈ A, ∀ x ∈ A, ¬x < m
X:Typeinst✝:LinearOrder XA:Set XhA:A.Nonempty⊢ (∃ m ∈ A, ∀ x ∈ A, ¬x < m) → ∃ x, ∀ ⦃b : ↑A⦄, b ≤ x → x ≤ b X:Typeinst✝:LinearOrder XA:Set XhA:A.Nonemptyx:XhxA:x ∈ Ah:∀ x_1 ∈ A, ¬x_1 < x⊢ ∃ x, ∀ ⦃b : ↑A⦄, b ≤ x → x ≤ b; X:Typeinst✝:LinearOrder XA:Set XhA:A.Nonemptyx:XhxA:x ∈ Ah:∀ x_1 ∈ A, ¬x_1 < x⊢ ∀ ⦃b : ↑A⦄, b ≤ ⟨x, hxA⟩ → ⟨x, hxA⟩ ≤ b; intro ⟨ y, hy ⟩ X:Typeinst✝:LinearOrder XA:Set XhA:A.Nonemptyx:XhxA:x ∈ Ah:∀ x_1 ∈ A, ¬x_1 < xy:Xhy:y ∈ Athis:⟨y, hy⟩ ≤ ⟨x, hxA⟩⊢ ⟨x, hxA⟩ ≤ ⟨y, hy⟩; X:Typeinst✝:LinearOrder XA:Set XhA:A.Nonemptyx:XhxA:x ∈ Ay:Xhy:y ∈ Athis:⟨y, hy⟩ ≤ ⟨x, hxA⟩h:¬y < x⊢ ⟨x, hxA⟩ ≤ ⟨y, hy⟩
X:Typeinst✝:LinearOrder XA:Set XhA:A.Nonemptyx:XhxA:x ∈ Ay:Xhy:y ∈ Athis:y ≤ xh:x ≤ y⊢ x ≤ y; All goals completed! 🐙
X:Typeinst✝:LinearOrder XA:Set XhA:A.Nonemptyx:Xhx:x ∈ Ah:∀ ⦃b : ↑A⦄, b ≤ ⟨x, hx⟩ → ⟨x, hx⟩ ≤ b⊢ ∃ m ∈ A, ∀ x ∈ A, ¬x < m; X:Typeinst✝:LinearOrder XA:Set XhA:A.Nonemptyx:Xhx:x ∈ Ah:∀ ⦃b : ↑A⦄, b ≤ ⟨x, hx⟩ → ⟨x, hx⟩ ≤ b⊢ ∀ x_1 ∈ A, ¬x_1 < x; intro y X:Typeinst✝:LinearOrder XA:Set XhA:A.Nonemptyx:Xhx:x ∈ Ah:∀ ⦃b : ↑A⦄, b ≤ ⟨x, hx⟩ → ⟨x, hx⟩ ≤ by:Xhy:y ∈ A⊢ ¬y < x; X:Typeinst✝:LinearOrder XA:Set XhA:A.Nonemptyx:Xhx:x ∈ Ay:Xhy:y ∈ Ah:⟨y, hy⟩ ≤ ⟨x, hx⟩ → ⟨x, hx⟩ ≤ ⟨y, hy⟩⊢ ¬y < x
X:Typeinst✝:LinearOrder XA:Set XhA:A.Nonemptyx:Xhx:x ∈ Ay:Xhy:y ∈ Ah:y ≤ x → x ≤ y⊢ ¬y < x; X:Typeinst✝:LinearOrder XA:Set XhA:A.Nonemptyx:Xhx:x ∈ Ay:Xhy:y ∈ Ah:y < x⊢ y ≤ x ∧ y < x; X:Typeinst✝:LinearOrder XA:Set XhA:A.Nonemptyx:Xhx:x ∈ Ay:Xhy:y ∈ Ah:y < x⊢ y ≤ x; All goals completed! 🐙theorem WellFoundedLT.iff' {X:Type} [PartialOrder X] (h: IsTotal X) :
WellFoundedLT X ↔ ∀ A:Set X, A.Nonempty → ∃ x:A, IsMin x := @iff X (LinearOrder.mk h)/-- Example 8.5.9 -/
example : WellFoundedLT ℕ := ⊢ WellFoundedLT ℕ
⊢ ∀ (A : Set ℕ), A.Nonempty → ∃ x, IsMin x
intro A A:Set ℕhA:A.Nonempty⊢ ∃ x, IsMin x; A:Set ℕhA:A.Nonempty⊢ IsMin ⟨Nat.min A, ⋯⟩
A:Set ℕhA:A.Nonempty⊢ ∀ a ∈ A, a ≤ Nat.min A → Nat.min A ≤ a; All goals completed! 🐙/-- Exercise 8.1.2 -/
example : ¬ WellFoundedLT ℤ := ⊢ ¬WellFoundedLT ℤ All goals completed! 🐙example : ¬ WellFoundedLT ℚ := ⊢ ¬WellFoundedLT ℚ All goals completed! 🐙example : ¬ WellFoundedLT ℝ := ⊢ ¬WellFoundedLT ℝ All goals completed! 🐙Exercise 8.5.8
theorem IsMax.ofFinite {X:Type} [LinearOrder X] [Finite X] [Nonempty X] : ∃ x:X, IsMax x := X:Typeinst✝²:LinearOrder Xinst✝¹:Finite Xinst✝:Nonempty X⊢ ∃ x, IsMax x All goals completed! 🐙theorem IsMin.ofFinite {X:Type} [LinearOrder X] [Finite X] [Nonempty X] : ∃ x:X, IsMin x := X:Typeinst✝²:LinearOrder Xinst✝¹:Finite Xinst✝:Nonempty X⊢ ∃ x, IsMin x All goals completed! 🐙Exercise 8.5.8
theorem WellFoundedLT.ofFinite {X:Type} [LinearOrder X] [Finite X] : WellFoundedLT X := X:Typeinst✝¹:LinearOrder Xinst✝:Finite X⊢ WellFoundedLT X All goals completed! 🐙example {X:Type} [LinearOrder X] [WellFoundedLT X] (A: Set X) : WellFoundedLT A := X:Typeinst✝¹:LinearOrder Xinst✝:WellFoundedLT XA:Set X⊢ WellFoundedLT ↑A All goals completed! 🐙theorem WellFoundedLT.subset {X:Type} [PartialOrder X] {A B: Set X} (hA: IsTotal A) [hwell: WellFoundedLT A] (hAB: B ⊆ A) : WellFoundedLT B := X:Typeinst✝:PartialOrder XA:Set XB:Set XhA:IsTotal ↑Ahwell:WellFoundedLT ↑AhAB:B ⊆ A⊢ WellFoundedLT ↑B
X:Typeinst✝:PartialOrder XA:Set XB:Set XhA:IsTotal ↑Ahwell:WellFoundedLT ↑AhAB:B ⊆ AhAlin:LinearOrder ↑A := LinearOrder.mk hA⊢ WellFoundedLT ↑B
X:Typeinst✝:PartialOrder XA:Set XB:Set XhA:IsTotal ↑Ahwell:WellFoundedLT ↑AhAB:B ⊆ AhAlin:LinearOrder ↑A := LinearOrder.mk hAhBlin:LinearOrder ↑B := LinearOrder.mk ⋯⊢ WellFoundedLT ↑B
X:Typeinst✝:PartialOrder XA:Set XB:Set XhA:IsTotal ↑Ahwell:∀ (A_1 : Set ↑A), A_1.Nonempty → ∃ x, IsMin xhAB:B ⊆ AhAlin:LinearOrder ↑A := LinearOrder.mk hAhBlin:LinearOrder ↑B := LinearOrder.mk ⋯⊢ WellFoundedLT ↑B; X:Typeinst✝:PartialOrder XA:Set XB:Set XhA:IsTotal ↑Ahwell:∀ (A_1 : Set ↑A), A_1.Nonempty → ∃ x, IsMin xhAB:B ⊆ AhAlin:LinearOrder ↑A := LinearOrder.mk hAhBlin:LinearOrder ↑B := LinearOrder.mk ⋯⊢ ∀ (A : Set ↑B), A.Nonempty → ∃ x, IsMin x; intro C X:Typeinst✝:PartialOrder XA:Set XB:Set XhA:IsTotal ↑Ahwell:∀ (A_1 : Set ↑A), A_1.Nonempty → ∃ x, IsMin xhAB:B ⊆ AhAlin:LinearOrder ↑A := LinearOrder.mk hAhBlin:LinearOrder ↑B := LinearOrder.mk ⋯C:Set ↑BhC:C.Nonempty⊢ ∃ x, IsMin x
have ⟨ ⟨ ⟨ x, hx ⟩, hx' ⟩, hmin ⟩ := hwell ((B.embeddingOfSubset _ hAB) '' C) (X:Typeinst✝:PartialOrder XA:Set XB:Set XhA:IsTotal ↑Ahwell:∀ (A_1 : Set ↑A), A_1.Nonempty → ∃ x, IsMin xhAB:B ⊆ AhAlin:LinearOrder ↑A := LinearOrder.mk hAhBlin:LinearOrder ↑B := LinearOrder.mk ⋯C:Set ↑BhC:C.Nonempty⊢ (⇑(B.embeddingOfSubset A hAB) '' C).Nonempty All goals completed! 🐙)
X:Typeinst✝:PartialOrder XA:Set XB:Set XhA:IsTotal ↑Ahwell:∀ (A_1 : Set ↑A), A_1.Nonempty → ∃ x, IsMin xhAB:B ⊆ AhAlin:LinearOrder ↑A := LinearOrder.mk hAhBlin:LinearOrder ↑B := LinearOrder.mk ⋯C:Set ↑BhC:C.Nonemptyx:Xhx:x ∈ Ahx'✝:⟨x, hx⟩ ∈ ⇑(B.embeddingOfSubset A hAB) '' Chmin:IsMin ⟨⟨x, hx⟩, hx'✝⟩hx':∃ a, ∃ (b : a ∈ B), ⟨a, b⟩ ∈ C ∧ (B.embeddingOfSubset A hAB) ⟨a, b⟩ = ⟨x, hx⟩⊢ ∃ x, IsMin x; X:Typeinst✝:PartialOrder XA:Set XB:Set XhA:IsTotal ↑Ahwell:∀ (A_1 : Set ↑A), A_1.Nonempty → ∃ x, IsMin xhAB:B ⊆ AhAlin:LinearOrder ↑A := LinearOrder.mk hAhBlin:LinearOrder ↑B := LinearOrder.mk ⋯C:Set ↑BhC:C.Nonemptyx:Xhx:x ∈ Ahx':⟨x, hx⟩ ∈ ⇑(B.embeddingOfSubset A hAB) '' Chmin:IsMin ⟨⟨x, hx⟩, hx'✝⟩y:Xhy:y ∈ BhyC:⟨y, hy⟩ ∈ Cthis:(B.embeddingOfSubset A hAB) ⟨y, hy⟩ = ⟨x, hx⟩⊢ ∃ x, IsMin x; X:Typeinst✝:PartialOrder XA:Set XB:Set XhA:IsTotal ↑Ahwell:∀ (A_1 : Set ↑A), A_1.Nonempty → ∃ x, IsMin xhAB:B ⊆ AhAlin:LinearOrder ↑A := LinearOrder.mk hAhBlin:LinearOrder ↑B := LinearOrder.mk ⋯C:Set ↑BhC:C.Nonemptyx:Xhx:x ∈ Ahx':⟨x, hx⟩ ∈ ⇑(B.embeddingOfSubset A hAB) '' Chmin:IsMin ⟨⟨x, hx⟩, hx'✝⟩y:Xhy:y ∈ BhyC:⟨y, hy⟩ ∈ Cthis:(B.embeddingOfSubset A hAB) ⟨y, hy⟩ = ⟨x, hx⟩⊢ IsMin ⟨⟨y, hy⟩, hyC⟩
X:Typeinst✝:PartialOrder XA:Set XB:Set XhA:IsTotal ↑AhAB:B ⊆ AhAlin:LinearOrder ↑A := LinearOrder.mk hAhBlin:LinearOrder ↑B := LinearOrder.mk ⋯C:Set ↑Bx:Xhx:x ∈ Ahx':⟨x, hx⟩ ∈ ⇑(B.embeddingOfSubset A hAB) '' Cy:Xhy:y ∈ BhyC:⟨y, hy⟩ ∈ Chwell:∀ (A_1 : Set ↑A),
A_1.Nonempty → ∃ a, (∃ (x : a ∈ A), ⟨a, ⋯⟩ ∈ A_1) ∧ ∀ (a_1 : X) (b : a_1 ∈ A), ⟨a_1, b⟩ ∈ A_1 → a_1 ≤ a → a ≤ a_1hC:C.Nonemptyhmin:∀ (a : X) (b : a ∈ A) (x_1 : X) (x_2 : x_1 ∈ B) (hp : ⟨x_1, ⋯⟩ ∈ C) (hq : x_1 = a),
⟨⟨a, b⟩, ⋯⟩ ≤ ⟨⟨x, hx⟩, hx'⟩ → ⟨⟨x, hx⟩, hx'⟩ ≤ ⟨⟨a, b⟩, ⋯⟩this:y = x⊢ ∀ (a : X) (b : a ∈ B), ⟨a, b⟩ ∈ C → a ≤ x → x ≤ a
intro a X:Typeinst✝:PartialOrder XA:Set XB:Set XhA:IsTotal ↑AhAB:B ⊆ AhAlin:LinearOrder ↑A := LinearOrder.mk hAhBlin:LinearOrder ↑B := LinearOrder.mk ⋯C:Set ↑Bx:Xhx:x ∈ Ahx':⟨x, hx⟩ ∈ ⇑(B.embeddingOfSubset A hAB) '' Cy:Xhy:y ∈ BhyC:⟨y, hy⟩ ∈ Chwell:∀ (A_1 : Set ↑A),
A_1.Nonempty → ∃ a, (∃ (x : a ∈ A), ⟨a, ⋯⟩ ∈ A_1) ∧ ∀ (a_1 : X) (b : a_1 ∈ A), ⟨a_1, b⟩ ∈ A_1 → a_1 ≤ a → a ≤ a_1hC:C.Nonemptyhmin:∀ (a : X) (b : a ∈ A) (x_1 : X) (x_2 : x_1 ∈ B) (hp : ⟨x_1, ⋯⟩ ∈ C) (hq : x_1 = a),
⟨⟨a, b⟩, ⋯⟩ ≤ ⟨⟨x, hx⟩, hx'⟩ → ⟨⟨x, hx⟩, hx'⟩ ≤ ⟨⟨a, b⟩, ⋯⟩this:y = xa:Xha_B:a ∈ B⊢ ⟨a, ha_B⟩ ∈ C → a ≤ x → x ≤ a X:Typeinst✝:PartialOrder XA:Set XB:Set XhA:IsTotal ↑AhAB:B ⊆ AhAlin:LinearOrder ↑A := LinearOrder.mk hAhBlin:LinearOrder ↑B := LinearOrder.mk ⋯C:Set ↑Bx:Xhx:x ∈ Ahx':⟨x, hx⟩ ∈ ⇑(B.embeddingOfSubset A hAB) '' Cy:Xhy:y ∈ BhyC:⟨y, hy⟩ ∈ Chwell:∀ (A_1 : Set ↑A),
A_1.Nonempty → ∃ a, (∃ (x : a ∈ A), ⟨a, ⋯⟩ ∈ A_1) ∧ ∀ (a_1 : X) (b : a_1 ∈ A), ⟨a_1, b⟩ ∈ A_1 → a_1 ≤ a → a ≤ a_1hC:C.Nonemptyhmin:∀ (a : X) (b : a ∈ A) (x_1 : X) (x_2 : x_1 ∈ B) (hp : ⟨x_1, ⋯⟩ ∈ C) (hq : x_1 = a),
⟨⟨a, b⟩, ⋯⟩ ≤ ⟨⟨x, hx⟩, hx'⟩ → ⟨⟨x, hx⟩, hx'⟩ ≤ ⟨⟨a, b⟩, ⋯⟩this:y = xa:Xha_B:a ∈ Bha_C:⟨a, ha_B⟩ ∈ C⊢ a ≤ x → x ≤ a
X:Typeinst✝:PartialOrder XA:Set XB:Set XhA:IsTotal ↑AhAB:B ⊆ AhAlin:LinearOrder ↑A := LinearOrder.mk hAhBlin:LinearOrder ↑B := LinearOrder.mk ⋯C:Set ↑Bx:Xhx:x ∈ Ahx':⟨x, hx⟩ ∈ ⇑(B.embeddingOfSubset A hAB) '' Cy:Xhy:y ∈ BhyC:⟨y, hy⟩ ∈ Chwell:∀ (A_1 : Set ↑A),
A_1.Nonempty → ∃ a, (∃ (x : a ∈ A), ⟨a, ⋯⟩ ∈ A_1) ∧ ∀ (a_1 : X) (b : a_1 ∈ A), ⟨a_1, b⟩ ∈ A_1 → a_1 ≤ a → a ≤ a_1hC:C.Nonemptyhmin:∀ (a : X) (b : a ∈ A) (x_1 : X) (x_2 : x_1 ∈ B) (hp : ⟨x_1, ⋯⟩ ∈ C) (hq : x_1 = a),
⟨⟨a, b⟩, ⋯⟩ ≤ ⟨⟨x, hx⟩, hx'⟩ → ⟨⟨x, hx⟩, hx'⟩ ≤ ⟨⟨a, b⟩, ⋯⟩this:y = xa:Xha_B:a ∈ Bha_C:⟨a, ha_B⟩ ∈ C⊢ ⟨?h.x, ⋯⟩ ∈ CX:Typeinst✝:PartialOrder XA:Set XB:Set XhA:IsTotal ↑AhAB:B ⊆ AhAlin:LinearOrder ↑A := LinearOrder.mk hAhBlin:LinearOrder ↑B := LinearOrder.mk ⋯C:Set ↑Bx:Xhx:x ∈ Ahx':⟨x, hx⟩ ∈ ⇑(B.embeddingOfSubset A hAB) '' Cy:Xhy:y ∈ BhyC:⟨y, hy⟩ ∈ Chwell:∀ (A_1 : Set ↑A),
A_1.Nonempty → ∃ a, (∃ (x : a ∈ A), ⟨a, ⋯⟩ ∈ A_1) ∧ ∀ (a_1 : X) (b : a_1 ∈ A), ⟨a_1, b⟩ ∈ A_1 → a_1 ≤ a → a ≤ a_1hC:C.Nonemptyhmin:∀ (a : X) (b : a ∈ A) (x_1 : X) (x_2 : x_1 ∈ B) (hp : ⟨x_1, ⋯⟩ ∈ C) (hq : x_1 = a),
⟨⟨a, b⟩, ⋯⟩ ≤ ⟨⟨x, hx⟩, hx'⟩ → ⟨⟨x, hx⟩, hx'⟩ ≤ ⟨⟨a, b⟩, ⋯⟩this:y = xa:Xha_B:a ∈ Bha_C:⟨a, ha_B⟩ ∈ C⊢ ?h.x = aX:Typeinst✝:PartialOrder XA:Set XB:Set XhA:IsTotal ↑AhAB:B ⊆ AhAlin:LinearOrder ↑A := LinearOrder.mk hAhBlin:LinearOrder ↑B := LinearOrder.mk ⋯C:Set ↑Bx:Xhx:x ∈ Ahx':⟨x, hx⟩ ∈ ⇑(B.embeddingOfSubset A hAB) '' Cy:Xhy:y ∈ BhyC:⟨y, hy⟩ ∈ Chwell:∀ (A_1 : Set ↑A),
A_1.Nonempty → ∃ a, (∃ (x : a ∈ A), ⟨a, ⋯⟩ ∈ A_1) ∧ ∀ (a_1 : X) (b : a_1 ∈ A), ⟨a_1, b⟩ ∈ A_1 → a_1 ≤ a → a ≤ a_1hC:C.Nonemptyhmin:∀ (a : X) (b : a ∈ A) (x_1 : X) (x_2 : x_1 ∈ B) (hp : ⟨x_1, ⋯⟩ ∈ C) (hq : x_1 = a),
⟨⟨a, b⟩, ⋯⟩ ≤ ⟨⟨x, hx⟩, hx'⟩ → ⟨⟨x, hx⟩, hx'⟩ ≤ ⟨⟨a, b⟩, ⋯⟩this:y = xa:Xha_B:a ∈ Bha_C:⟨a, ha_B⟩ ∈ C⊢ XX:Typeinst✝:PartialOrder XA:Set XB:Set XhA:IsTotal ↑AhAB:B ⊆ AhAlin:LinearOrder ↑A := LinearOrder.mk hAhBlin:LinearOrder ↑B := LinearOrder.mk ⋯C:Set ↑Bx:Xhx:x ∈ Ahx':⟨x, hx⟩ ∈ ⇑(B.embeddingOfSubset A hAB) '' Cy:Xhy:y ∈ BhyC:⟨y, hy⟩ ∈ Chwell:∀ (A_1 : Set ↑A),
A_1.Nonempty → ∃ a, (∃ (x : a ∈ A), ⟨a, ⋯⟩ ∈ A_1) ∧ ∀ (a_1 : X) (b : a_1 ∈ A), ⟨a_1, b⟩ ∈ A_1 → a_1 ≤ a → a ≤ a_1hC:C.Nonemptyhmin:∀ (a : X) (b : a ∈ A) (x_1 : X) (x_2 : x_1 ∈ B) (hp : ⟨x_1, ⋯⟩ ∈ C) (hq : x_1 = a),
⟨⟨a, b⟩, ⋯⟩ ≤ ⟨⟨x, hx⟩, hx'⟩ → ⟨⟨x, hx⟩, hx'⟩ ≤ ⟨⟨a, b⟩, ⋯⟩this:y = xa:Xha_B:a ∈ Bha_C:⟨a, ha_B⟩ ∈ C⊢ ?h.x ∈ B X:Typeinst✝:PartialOrder XA:Set XB:Set XhA:IsTotal ↑AhAB:B ⊆ AhAlin:LinearOrder ↑A := LinearOrder.mk hAhBlin:LinearOrder ↑B := LinearOrder.mk ⋯C:Set ↑Bx:Xhx:x ∈ Ahx':⟨x, hx⟩ ∈ ⇑(B.embeddingOfSubset A hAB) '' Cy:Xhy:y ∈ BhyC:⟨y, hy⟩ ∈ Chwell:∀ (A_1 : Set ↑A),
A_1.Nonempty → ∃ a, (∃ (x : a ∈ A), ⟨a, ⋯⟩ ∈ A_1) ∧ ∀ (a_1 : X) (b : a_1 ∈ A), ⟨a_1, b⟩ ∈ A_1 → a_1 ≤ a → a ≤ a_1hC:C.Nonemptyhmin:∀ (a : X) (b : a ∈ A) (x_1 : X) (x_2 : x_1 ∈ B) (hp : ⟨x_1, ⋯⟩ ∈ C) (hq : x_1 = a),
⟨⟨a, b⟩, ⋯⟩ ≤ ⟨⟨x, hx⟩, hx'⟩ → ⟨⟨x, hx⟩, hx'⟩ ≤ ⟨⟨a, b⟩, ⋯⟩this:y = xa:Xha_B:a ∈ Bha_C:⟨a, ha_B⟩ ∈ C⊢ ⟨?h.x, ⋯⟩ ∈ CX:Typeinst✝:PartialOrder XA:Set XB:Set XhA:IsTotal ↑AhAB:B ⊆ AhAlin:LinearOrder ↑A := LinearOrder.mk hAhBlin:LinearOrder ↑B := LinearOrder.mk ⋯C:Set ↑Bx:Xhx:x ∈ Ahx':⟨x, hx⟩ ∈ ⇑(B.embeddingOfSubset A hAB) '' Cy:Xhy:y ∈ BhyC:⟨y, hy⟩ ∈ Chwell:∀ (A_1 : Set ↑A),
A_1.Nonempty → ∃ a, (∃ (x : a ∈ A), ⟨a, ⋯⟩ ∈ A_1) ∧ ∀ (a_1 : X) (b : a_1 ∈ A), ⟨a_1, b⟩ ∈ A_1 → a_1 ≤ a → a ≤ a_1hC:C.Nonemptyhmin:∀ (a : X) (b : a ∈ A) (x_1 : X) (x_2 : x_1 ∈ B) (hp : ⟨x_1, ⋯⟩ ∈ C) (hq : x_1 = a),
⟨⟨a, b⟩, ⋯⟩ ≤ ⟨⟨x, hx⟩, hx'⟩ → ⟨⟨x, hx⟩, hx'⟩ ≤ ⟨⟨a, b⟩, ⋯⟩this:y = xa:Xha_B:a ∈ Bha_C:⟨a, ha_B⟩ ∈ C⊢ ?h.x = aX:Typeinst✝:PartialOrder XA:Set XB:Set XhA:IsTotal ↑AhAB:B ⊆ AhAlin:LinearOrder ↑A := LinearOrder.mk hAhBlin:LinearOrder ↑B := LinearOrder.mk ⋯C:Set ↑Bx:Xhx:x ∈ Ahx':⟨x, hx⟩ ∈ ⇑(B.embeddingOfSubset A hAB) '' Cy:Xhy:y ∈ BhyC:⟨y, hy⟩ ∈ Chwell:∀ (A_1 : Set ↑A),
A_1.Nonempty → ∃ a, (∃ (x : a ∈ A), ⟨a, ⋯⟩ ∈ A_1) ∧ ∀ (a_1 : X) (b : a_1 ∈ A), ⟨a_1, b⟩ ∈ A_1 → a_1 ≤ a → a ≤ a_1hC:C.Nonemptyhmin:∀ (a : X) (b : a ∈ A) (x_1 : X) (x_2 : x_1 ∈ B) (hp : ⟨x_1, ⋯⟩ ∈ C) (hq : x_1 = a),
⟨⟨a, b⟩, ⋯⟩ ≤ ⟨⟨x, hx⟩, hx'⟩ → ⟨⟨x, hx⟩, hx'⟩ ≤ ⟨⟨a, b⟩, ⋯⟩this:y = xa:Xha_B:a ∈ Bha_C:⟨a, ha_B⟩ ∈ C⊢ XX:Typeinst✝:PartialOrder XA:Set XB:Set XhA:IsTotal ↑AhAB:B ⊆ AhAlin:LinearOrder ↑A := LinearOrder.mk hAhBlin:LinearOrder ↑B := LinearOrder.mk ⋯C:Set ↑Bx:Xhx:x ∈ Ahx':⟨x, hx⟩ ∈ ⇑(B.embeddingOfSubset A hAB) '' Cy:Xhy:y ∈ BhyC:⟨y, hy⟩ ∈ Chwell:∀ (A_1 : Set ↑A),
A_1.Nonempty → ∃ a, (∃ (x : a ∈ A), ⟨a, ⋯⟩ ∈ A_1) ∧ ∀ (a_1 : X) (b : a_1 ∈ A), ⟨a_1, b⟩ ∈ A_1 → a_1 ≤ a → a ≤ a_1hC:C.Nonemptyhmin:∀ (a : X) (b : a ∈ A) (x_1 : X) (x_2 : x_1 ∈ B) (hp : ⟨x_1, ⋯⟩ ∈ C) (hq : x_1 = a),
⟨⟨a, b⟩, ⋯⟩ ≤ ⟨⟨x, hx⟩, hx'⟩ → ⟨⟨x, hx⟩, hx'⟩ ≤ ⟨⟨a, b⟩, ⋯⟩this:y = xa:Xha_B:a ∈ Bha_C:⟨a, ha_B⟩ ∈ C⊢ ?h.x ∈ B All goals completed! 🐙Proposition 8.5.10 / Exercise 8.5.10
theorem WellFoundedLT.strong_induction {X:Type} [LinearOrder X] [WellFoundedLT X] {P:X → Prop}
(h: ∀ n, (∀ m < n, P m) → P n) : ∀ n, P n := X:Typeinst✝¹:LinearOrder Xinst✝:WellFoundedLT XP:X → Proph:∀ (n : X), (∀ m < n, P m) → P n⊢ ∀ (n : X), P n
All goals completed! 🐙Definition 8.5.12 (Upper bounds and strict upper bounds)
abbrev IsUpperBound {X:Type} [PartialOrder X] (A:Set X) (x:X) : Prop :=
∀ y ∈ A, y ≤ x
Connection with Mathlib's upperBounds
theorem IsUpperBound.iff {X:Type} [PartialOrder X] (A:Set X) (x:X) :
IsUpperBound A x ↔ x ∈ upperBounds A := X:Typeinst✝:PartialOrder XA:Set Xx:X⊢ IsUpperBound A x ↔ x ∈ upperBounds A All goals completed! 🐙abbrev IsStrictUpperBound {X:Type} [PartialOrder X] (A:Set X) (x:X) : Prop :=
IsUpperBound A x ∧ x ∉ Atheorem IsStrictUpperBound.iff {X:Type} [PartialOrder X] (A:Set X) (x:X) :
IsStrictUpperBound A x ↔ ∀ y ∈ A, y < x := X:Typeinst✝:PartialOrder XA:Set Xx:X⊢ IsStrictUpperBound A x ↔ ∀ y ∈ A, y < x All goals completed! 🐙theorem IsStrictUpperBound.iff' {X:Type} [PartialOrder X] (A:Set X) (x:X) :
IsStrictUpperBound A x ↔ x ∈ upperBounds A \ A := X:Typeinst✝:PartialOrder XA:Set Xx:X⊢ IsStrictUpperBound A x ↔ x ∈ upperBounds A \ A
All goals completed! 🐙example : IsUpperBound (.Icc 1 2: Set ℝ) 2 := ⊢ IsUpperBound (Set.Icc 1 2) 2 All goals completed! 🐙example : ¬ IsStrictUpperBound (.Icc 1 2: Set ℝ) 2 := ⊢ ¬IsStrictUpperBound (Set.Icc 1 2) 2 All goals completed! 🐙example : IsStrictUpperBound (.Icc 1 2: Set ℝ) 3 := ⊢ IsStrictUpperBound (Set.Icc 1 2) 3 All goals completed! 🐙
A convenient way to simplify the notion of having x₀ as a minimal element.
theorem IsMin.iff_lowerbound {X:Type} [PartialOrder X] {Y: Set X} (hY: IsTotal Y) (x₀ : X) : (∃ hx₀ : x₀ ∈ Y, IsMin (⟨ x₀, hx₀ ⟩:Y)) ↔ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x := X:Typeinst✝:PartialOrder XY:Set XhY:IsTotal ↑Yx₀:X⊢ (∃ (hx₀ : x₀ ∈ Y), IsMin ⟨x₀, hx₀⟩) ↔ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x
X:Typeinst✝:PartialOrder XY:Set XhY:IsTotal ↑Yx₀:X⊢ (∃ (hx₀ : x₀ ∈ Y), IsMin ⟨x₀, hx₀⟩) → x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ xX:Typeinst✝:PartialOrder XY:Set XhY:IsTotal ↑Yx₀:X⊢ (x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x) → ∃ (hx₀ : x₀ ∈ Y), IsMin ⟨x₀, hx₀⟩
X:Typeinst✝:PartialOrder XY:Set XhY:IsTotal ↑Yx₀:X⊢ (∃ (hx₀ : x₀ ∈ Y), IsMin ⟨x₀, hx₀⟩) → x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x X:Typeinst✝:PartialOrder XY:Set XhY:IsTotal ↑Yx₀:Xhx₀:x₀ ∈ Yhmin:IsMin ⟨x₀, hx₀⟩⊢ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x; X:Typeinst✝:PartialOrder XY:Set XhY:IsTotal ↑Yx₀:Xhx₀:x₀ ∈ Yhmin:∀ a ∈ Y, a ≤ x₀ → x₀ ≤ a⊢ ∀ x ∈ Y, x₀ ≤ x
X:Typeinst✝:PartialOrder XY:Set XhY:IsTotal ↑Yx₀:Xhx₀:x₀ ∈ Yhmin:∀ a ∈ Y, a ≤ x₀ → x₀ ≤ ax:Xhx:x ∈ Ythis:x ≤ x₀ → x₀ ≤ x⊢ x₀ ≤ x; X:Typeinst✝:PartialOrder XY:Set Xx₀:Xhx₀:x₀ ∈ Yhmin:∀ a ∈ Y, a ≤ x₀ → x₀ ≤ ax:Xhx:x ∈ Ythis:x ≤ x₀ → x₀ ≤ xhY:⟨x, hx⟩ ≤ ⟨x₀, hx₀⟩ ∨ ⟨x₀, hx₀⟩ ≤ ⟨x, hx⟩⊢ x₀ ≤ x; All goals completed! 🐙
X:Typeinst✝:PartialOrder XY:Set XhY:IsTotal ↑Yx₀:Xh:x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x⊢ ∃ (hx₀ : x₀ ∈ Y), IsMin ⟨x₀, hx₀⟩; X:Typeinst✝:PartialOrder XY:Set XhY:IsTotal ↑Yx₀:Xh:x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x⊢ IsMin ⟨x₀, ⋯⟩; X:Typeinst✝:PartialOrder XY:Set XhY:IsTotal ↑Yx₀:Xh:x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x⊢ ∀ a ∈ Y, a ≤ x₀ → x₀ ≤ a; All goals completed! 🐙theorem IsMin.iff_lowerbound' {X:Type} [PartialOrder X] {Y: Set X} (hY: IsTotal Y) : (∃ x₀ : Y, IsMin x₀) ↔ ∃ x₀, x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x := X:Typeinst✝:PartialOrder XY:Set XhY:IsTotal ↑Y⊢ (∃ x₀, IsMin x₀) ↔ ∃ x₀ ∈ Y, ∀ x ∈ Y, x₀ ≤ x
X:Typeinst✝:PartialOrder XY:Set XhY:IsTotal ↑Y⊢ (∃ x₀, IsMin x₀) → ∃ x₀ ∈ Y, ∀ x ∈ Y, x₀ ≤ xX:Typeinst✝:PartialOrder XY:Set XhY:IsTotal ↑Y⊢ (∃ x₀ ∈ Y, ∀ x ∈ Y, x₀ ≤ x) → ∃ x₀, IsMin x₀
X:Typeinst✝:PartialOrder XY:Set XhY:IsTotal ↑Y⊢ (∃ x₀, IsMin x₀) → ∃ x₀ ∈ Y, ∀ x ∈ Y, x₀ ≤ x X:Typeinst✝:PartialOrder XY:Set XhY:IsTotal ↑Yx₀:Xhx₀:x₀ ∈ Yhmin:IsMin ⟨x₀, hx₀⟩⊢ ∃ x₀ ∈ Y, ∀ x ∈ Y, x₀ ≤ x
have : ∃ (hx₀ : x₀ ∈ Y), IsMin (⟨ _, hx₀ ⟩:Y) := X:Typeinst✝:PartialOrder XY:Set XhY:IsTotal ↑Y⊢ (∃ x₀, IsMin x₀) ↔ ∃ x₀ ∈ Y, ∀ x ∈ Y, x₀ ≤ x All goals completed! 🐙
X:Typeinst✝:PartialOrder XY:Set XhY:IsTotal ↑Yx₀:Xhx₀:x₀ ∈ Yhmin:IsMin ⟨x₀, hx₀⟩this:x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x⊢ ∃ x₀ ∈ Y, ∀ x ∈ Y, x₀ ≤ x; All goals completed! 🐙
X:Typeinst✝:PartialOrder XY:Set XhY:IsTotal ↑Yx₀:Xhx₀:x₀ ∈ Yhmin:∀ x ∈ Y, x₀ ≤ x⊢ ∃ x₀, IsMin x₀; X:Typeinst✝:PartialOrder XY:Set XhY:IsTotal ↑Yx₀:Xhx₀✝:x₀ ∈ Yhmin:∀ x ∈ Y, x₀ ≤ xhx₀:x₀ ∈ Yx✝:IsMin ⟨x₀, hx₀⟩⊢ ∃ x₀, IsMin x₀; All goals completed! 🐙/-- Exercise 8.5.11 -/
example {X:Type} [PartialOrder X] {Y Y':Set X} (hY: IsTotal Y) (hY': IsTotal Y') (hY_well: WellFoundedLT Y) (hY'_well: WellFoundedLT Y') (hYY': IsTotal (Y ∪ Y': Set X)) : WellFoundedLT (Y ∪ Y': Set X) := X:Typeinst✝:PartialOrder XY:Set XY':Set XhY:IsTotal ↑YhY':IsTotal ↑Y'hY_well:WellFoundedLT ↑YhY'_well:WellFoundedLT ↑Y'hYY':IsTotal ↑(Y ∪ Y')⊢ WellFoundedLT ↑(Y ∪ Y') All goals completed! 🐙Lemma 8.5.14
theorem WellFoundedLT.partialOrder {X:Type} [PartialOrder X] (x₀ : X) : ∃ Y : Set X, IsTotal Y ∧ WellFoundedLT Y ∧ (∃ hx₀ : x₀ ∈ Y, IsMin (⟨ x₀, hx₀ ⟩: Y)) ∧ ¬ ∃ x, IsStrictUpperBound Y x := X:Typeinst✝:PartialOrder Xx₀:X⊢ ∃ Y, IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ (∃ (hx₀ : x₀ ∈ Y), IsMin ⟨x₀, hx₀⟩) ∧ ¬∃ x, IsStrictUpperBound Y x
-- This proof is based on the original text with some technical simplifications.
-- The class of well-ordered subsets `Y` of `X` that contain `x₀` as a minimal element is not named in the text,
-- but it is convenient to give it a name (`Ω₀`) for the formalization. Here we use `IsMin.iff_lowerbound` to
-- simplify the notion of minimality.
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}⊢ ∃ Y, IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ (∃ (hx₀ : x₀ ∈ Y), IsMin ⟨x₀, hx₀⟩) ∧ ¬∃ x, IsStrictUpperBound Y x
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}this:∃ Y ∈ Ω₀, ¬∃ x, IsStrictUpperBound Y x⊢ ∃ Y, IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ (∃ (hx₀ : x₀ ∈ Y), IsMin ⟨x₀, hx₀⟩) ∧ ¬∃ x, IsStrictUpperBound Y xX:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}⊢ ∃ Y ∈ Ω₀, ¬∃ x, IsStrictUpperBound Y x
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}this:∃ Y ∈ Ω₀, ¬∃ x, IsStrictUpperBound Y x⊢ ∃ Y, IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ (∃ (hx₀ : x₀ ∈ Y), IsMin ⟨x₀, hx₀⟩) ∧ ¬∃ x, IsStrictUpperBound Y x X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}this:∃ Y ∈ Ω₀, ¬∃ x, IsStrictUpperBound Y xY:Set XhY:IsTotal ↑YhY':WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ xhstrict:¬∃ x, IsStrictUpperBound Y x⊢ ∃ Y, IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ (∃ (hx₀ : x₀ ∈ Y), IsMin ⟨x₀, hx₀⟩) ∧ ¬∃ x, IsStrictUpperBound Y x; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}this:∃ Y ∈ Ω₀, ¬∃ x, IsStrictUpperBound Y xY:Set XhY:IsTotal ↑YhY':WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ xhstrict:¬∃ x, IsStrictUpperBound Y x⊢ WellFoundedLT ↑Y ∧ (∃ (hx₀ : x₀ ∈ Y), IsMin ⟨x₀, hx₀⟩) ∧ ¬∃ x, IsStrictUpperBound Y x
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}this:∃ Y ∈ Ω₀, ¬∃ x, IsStrictUpperBound Y xY:Set XhY:IsTotal ↑YhY':WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ xhstrict:¬∃ x, IsStrictUpperBound Y x⊢ WellFoundedLT ↑Y ∧ (x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x) ∧ ¬∃ x, IsStrictUpperBound Y x; All goals completed! 🐙
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y x⊢ False
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choose⊢ False
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)⊢ False
have hpt: {x₀} ∈ Ω₀ := X:Typeinst✝:PartialOrder Xx₀:X⊢ ∃ Y, IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ (∃ (hx₀ : x₀ ∈ Y), IsMin ⟨x₀, hx₀⟩) ∧ ¬∃ x, IsStrictUpperBound Y x
have htotal : IsTotal ({x₀}: Set X) := X:Typeinst✝:PartialOrder Xx₀:X⊢ ∃ Y, IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ (∃ (hx₀ : x₀ ∈ Y), IsMin ⟨x₀, hx₀⟩) ∧ ¬∃ x, IsStrictUpperBound Y x All goals completed! 🐙
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)htotal:IsTotal ↑{x₀}_lin:LinearOrder ↑{x₀} := LinearOrder.mk htotal⊢ {x₀} ∈ Ω₀
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)htotal:IsTotal ↑{x₀}_lin:LinearOrder ↑{x₀} := LinearOrder.mk htotal⊢ WellFoundedLT ↑{x₀}; All goals completed! 🐙
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩⊢ False
-- The operation of sending a set `Y` in `Ω₀` to the smaller set `{y ∈ Y.val | y < x}`, which is also
-- in `Ω₀` if `x ∈ Y.val \ {x₀}`, is not named explicitly in the text, but we give it a name `F` for
-- the formalization.
have hF {Y:Set X} (hY: Y ∈ Ω₀) {x:X} (hxy : x ∈ Y \ {x₀}) : {y ∈ Y | y < x} ∈ Ω₀ := X:Typeinst✝:PartialOrder Xx₀:X⊢ ∃ Y, IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ (∃ (hx₀ : x₀ ∈ Y), IsMin ⟨x₀, hx₀⟩) ∧ ¬∃ x, IsStrictUpperBound Y x
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩Y:Set Xx:Xhxy:x ∈ Y \ {x₀}hY:(∀ a ∈ Y, ∀ a_1 ∈ Y, a ≤ a_1 ∨ a_1 ≤ a) ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x⊢ (∀ a ∈ Y, a < x → ∀ a_3 ∈ Y, a_3 < x → a ≤ a_3 ∨ a_3 ≤ a) ∧
WellFoundedLT { x_1 // x_1 ∈ Y ∧ x_1 < x } ∧ (x₀ ∈ Y ∧ x₀ < x) ∧ ∀ x_1 ∈ Y, x_1 < x → x₀ ≤ x_1; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩Y:Set Xx:Xhxy:x ∈ Y \ {x₀}hY:(∀ a ∈ Y, ∀ a_1 ∈ Y, a ≤ a_1 ∨ a_1 ≤ a) ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ xh✝:x₀ ∈ Yhmin:∀ x ∈ Y, x₀ ≤ x⊢ (∀ a ∈ Y, a < x → ∀ a_3 ∈ Y, a_3 < x → a ≤ a_3 ∨ a_3 ≤ a) ∧
WellFoundedLT { x_1 // x_1 ∈ Y ∧ x_1 < x } ∧ (x₀ ∈ Y ∧ x₀ < x) ∧ ∀ x_1 ∈ Y, x_1 < x → x₀ ≤ x_1; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩Y:Set Xx:Xhs:∀ (a : Set X) (b : a ∈ Ω₀), IsStrictUpperBound a (s ⟨a, b⟩)hxy:x ∈ Y ∧ ¬x = x₀hY:(∀ a ∈ Y, ∀ a_1 ∈ Y, a ≤ a_1 ∨ a_1 ≤ a) ∧ WellFoundedLT ↑Yh✝:x₀ ∈ Yhmin:∀ x ∈ Y, x₀ ≤ x⊢ WellFoundedLT { x_1 // x_1 ∈ Y ∧ x_1 < x } ∧ x₀ < x
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩Y:Set Xx:Xhs:∀ (a : Set X) (b : a ∈ Ω₀), IsStrictUpperBound a (s ⟨a, b⟩)hxy:x ∈ Y ∧ ¬x = x₀hY:(∀ a ∈ Y, ∀ a_1 ∈ Y, a ≤ a_1 ∨ a_1 ≤ a) ∧ WellFoundedLT ↑Yh✝:x₀ ∈ Yhmin:∀ x ∈ Y, x₀ ≤ x⊢ WellFoundedLT { x_1 // x_1 ∈ Y ∧ x_1 < x }X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩Y:Set Xx:Xhs:∀ (a : Set X) (b : a ∈ Ω₀), IsStrictUpperBound a (s ⟨a, b⟩)hxy:x ∈ Y ∧ ¬x = x₀hY:(∀ a ∈ Y, ∀ a_1 ∈ Y, a ≤ a_1 ∨ a_1 ≤ a) ∧ WellFoundedLT ↑Yh✝:x₀ ∈ Yhmin:∀ x ∈ Y, x₀ ≤ x⊢ x₀ < x
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩Y:Set Xx:Xhs:∀ (a : Set X) (b : a ∈ Ω₀), IsStrictUpperBound a (s ⟨a, b⟩)hxy:x ∈ Y ∧ ¬x = x₀hY:(∀ a ∈ Y, ∀ a_1 ∈ Y, a ≤ a_1 ∨ a_1 ≤ a) ∧ WellFoundedLT ↑Yh✝:x₀ ∈ Yhmin:∀ x ∈ Y, x₀ ≤ x⊢ WellFoundedLT { x_1 // x_1 ∈ Y ∧ x_1 < x } X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩Y:Set Xx:Xhs:∀ (a : Set X) (b : a ∈ Ω₀), IsStrictUpperBound a (s ⟨a, b⟩)hxy:x ∈ Y ∧ ¬x = x₀hY:(∀ a ∈ Y, ∀ a_1 ∈ Y, a ≤ a_1 ∨ a_1 ≤ a) ∧ WellFoundedLT ↑Yh✝:x₀ ∈ Yhmin:∀ x ∈ Y, x₀ ≤ x⊢ IsTotal ↑YX:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩Y:Set Xx:Xhs:∀ (a : Set X) (b : a ∈ Ω₀), IsStrictUpperBound a (s ⟨a, b⟩)hxy:x ∈ Y ∧ ¬x = x₀hY:(∀ a ∈ Y, ∀ a_1 ∈ Y, a ≤ a_1 ∨ a_1 ≤ a) ∧ WellFoundedLT ↑Yh✝:x₀ ∈ Yhmin:∀ x ∈ Y, x₀ ≤ x⊢ {y | y ∈ Y ∧ y < x} ⊆ Y
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩Y:Set Xx:Xhs:∀ (a : Set X) (b : a ∈ Ω₀), IsStrictUpperBound a (s ⟨a, b⟩)hxy:x ∈ Y ∧ ¬x = x₀hY:(∀ a ∈ Y, ∀ a_1 ∈ Y, a ≤ a_1 ∨ a_1 ≤ a) ∧ WellFoundedLT ↑Yh✝:x₀ ∈ Yhmin:∀ x ∈ Y, x₀ ≤ x⊢ IsTotal ↑Y intro ⟨ _, _ ⟩ X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩Y:Set Xx:Xhs:∀ (a : Set X) (b : a ∈ Ω₀), IsStrictUpperBound a (s ⟨a, b⟩)hxy:x ∈ Y ∧ ¬x = x₀hY:(∀ a ∈ Y, ∀ a_1 ∈ Y, a ≤ a_1 ∨ a_1 ≤ a) ∧ WellFoundedLT ↑Yh✝:x₀ ∈ Yhmin:∀ x ∈ Y, x₀ ≤ xval✝¹:Xproperty✝¹:val✝¹ ∈ Yval✝:Xproperty✝:val✝ ∈ Y⊢ ⟨val✝¹, property✝¹⟩ ≤ ⟨val✝, property✝⟩ ∨ ⟨val✝, property✝⟩ ≤ ⟨val✝¹, property✝¹⟩; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩Y:Set Xx:Xhs:∀ (a : Set X) (b : a ∈ Ω₀), IsStrictUpperBound a (s ⟨a, b⟩)hxy:x ∈ Y ∧ ¬x = x₀hY:(∀ a ∈ Y, ∀ a_1 ∈ Y, a ≤ a_1 ∨ a_1 ≤ a) ∧ WellFoundedLT ↑Yh✝:x₀ ∈ Yhmin:∀ x ∈ Y, x₀ ≤ xval✝¹:Xproperty✝¹:val✝¹ ∈ Yval✝:Xproperty✝:val✝ ∈ Y⊢ val✝¹ ≤ val✝ ∨ val✝ ≤ val✝¹; All goals completed! 🐙
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩Y:Set Xx:Xhs:∀ (a : Set X) (b : a ∈ Ω₀), IsStrictUpperBound a (s ⟨a, b⟩)hxy:x ∈ Y ∧ ¬x = x₀hY:(∀ a ∈ Y, ∀ a_1 ∈ Y, a ≤ a_1 ∨ a_1 ≤ a) ∧ WellFoundedLT ↑Yh✝:x₀ ∈ Yhmin:∀ x ∈ Y, x₀ ≤ xa✝:X⊢ a✝ ∈ {y | y ∈ Y ∧ y < x} → a✝ ∈ Y; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩Y:Set Xx:Xhs:∀ (a : Set X) (b : a ∈ Ω₀), IsStrictUpperBound a (s ⟨a, b⟩)hxy:x ∈ Y ∧ ¬x = x₀hY:(∀ a ∈ Y, ∀ a_1 ∈ Y, a ≤ a_1 ∨ a_1 ≤ a) ∧ WellFoundedLT ↑Yh✝:x₀ ∈ Yhmin:∀ x ∈ Y, x₀ ≤ xa✝:X⊢ a✝ ∈ Y → a✝ < x → a✝ ∈ Y; All goals completed! 🐙
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩Y:Set Xx:Xhs:∀ (a : Set X) (b : a ∈ Ω₀), IsStrictUpperBound a (s ⟨a, b⟩)hxy:x ∈ Y ∧ ¬x = x₀hY:(∀ a ∈ Y, ∀ a_1 ∈ Y, a ≤ a_1 ∨ a_1 ≤ a) ∧ WellFoundedLT ↑Yh✝:x₀ ∈ Yhmin:∀ x ∈ Y, x₀ ≤ xthis:x₀ ≤ x⊢ x₀ < x; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩Y:Set Xx:Xhs:∀ (a : Set X) (b : a ∈ Ω₀), IsStrictUpperBound a (s ⟨a, b⟩)hY:(∀ a ∈ Y, ∀ a_1 ∈ Y, a ≤ a_1 ∨ a_1 ≤ a) ∧ WellFoundedLT ↑Yh✝:x₀ ∈ Yhmin:∀ x ∈ Y, x₀ ≤ xthis:x₀ ≤ xhxy:¬x₀ < x⊢ x ∈ Y → x = x₀; All goals completed! 🐙
classical
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pt⊢ False
replace hF {Y : Ω₀} {x : X} (hxy : x ∈ (Y:Set X) \ {x₀}) : F Y x = { y ∈ (Y:Set X) | y < x } := X:Typeinst✝:PartialOrder Xx₀:X⊢ ∃ Y, IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ (∃ (hx₀ : x₀ ∈ Y), IsMin ⟨x₀, hx₀⟩) ∧ ¬∃ x, IsStrictUpperBound Y x
All goals completed! 🐙
-- The set `Ω` captures the notion of a `good set`.
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}⊢ False
have hΩ : pt ∈ Ω := X:Typeinst✝:PartialOrder Xx₀:X⊢ ∃ Y, IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ (∃ (hx₀ : x₀ ∈ Y), IsMin ⟨x₀, hx₀⟩) ∧ ¬∃ x, IsStrictUpperBound Y x
All goals completed! 🐙
-- Exercise 8.5.13
have ex_8_5_13 {Y Y':Ω} (x:X) (h: x ∈ (Y':Set X) \ Y) : IsStrictUpperBound Y x := X:Typeinst✝:PartialOrder Xx₀:X⊢ ∃ Y, IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ (∃ (hx₀ : x₀ ∈ Y), IsMin ⟨x₀, hx₀⟩) ∧ ¬∃ x, IsStrictUpperBound Y x
All goals completed! 🐙
have : IsTotal Ω := X:Typeinst✝:PartialOrder Xx₀:X⊢ ∃ Y, IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ (∃ (hx₀ : x₀ ∈ Y), IsMin ⟨x₀, hx₀⟩) ∧ ¬∃ x, IsStrictUpperBound Y x
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) x⊢ ∀ (x y : ↑Ω), x ≤ y ∨ y ≤ x; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:∃ x y, ¬x ≤ y ∧ ¬y ≤ x⊢ False; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xY:Set XhY1:Y ∈ Ω₀hY2:⟨Y, hY1⟩ ∈ ΩY':Set XhY'1:Y' ∈ Ω₀hY'2:⟨Y', hY'1⟩ ∈ Ωh1:¬⟨⟨Y, hY1⟩, hY2⟩ ≤ ⟨⟨Y', hY'1⟩, hY'2⟩h2:¬⟨⟨Y', hY'1⟩, hY'2⟩ ≤ ⟨⟨Y, hY1⟩, hY2⟩⊢ False
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else ptΩ:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}Y:Set XhY1:Y ∈ Ω₀hY2:⟨Y, hY1⟩ ∈ ΩY':Set XhY'1:Y' ∈ Ω₀hY'2:⟨Y', hY'1⟩ ∈ Ωhs:∀ (a : Set X) (b : a ∈ Ω₀), IsStrictUpperBound a (s ⟨a, b⟩)hF:∀ (a : Set X) (b : a ∈ Ω₀) {x : X}, x ∈ a → ¬x = x₀ → ↑(F ⟨a, b⟩ x) = {y | y ∈ a ∧ y < x}hΩ:pt ∈ Ωex_8_5_13:∀ (a : Set X) (b : a ∈ Ω₀),
⟨a, b⟩ ∈ Ω → ∀ (a_1 : Set X) (b : a_1 ∈ Ω₀), ⟨a_1, b⟩ ∈ Ω → ∀ x ∈ a_1, x ∉ a → IsStrictUpperBound a xh1:∃ a ∈ Y, a ∉ Y'h2:∃ a ∈ Y', a ∉ Y⊢ False
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else ptΩ:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}Y:Set XhY1:Y ∈ Ω₀hY2:⟨Y, hY1⟩ ∈ ΩY':Set XhY'1:Y' ∈ Ω₀hY'2:⟨Y', hY'1⟩ ∈ Ωhs:∀ (a : Set X) (b : a ∈ Ω₀), IsStrictUpperBound a (s ⟨a, b⟩)hF:∀ (a : Set X) (b : a ∈ Ω₀) {x : X}, x ∈ a → ¬x = x₀ → ↑(F ⟨a, b⟩ x) = {y | y ∈ a ∧ y < x}hΩ:pt ∈ Ωex_8_5_13:∀ (a : Set X) (b : a ∈ Ω₀),
⟨a, b⟩ ∈ Ω → ∀ (a_1 : Set X) (b : a_1 ∈ Ω₀), ⟨a_1, b⟩ ∈ Ω → ∀ x ∈ a_1, x ∉ a → IsStrictUpperBound a xh2:∃ a ∈ Y', a ∉ Yx₁:Xhx₁:x₁ ∈ Yhx₁':x₁ ∉ Y'⊢ False; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else ptΩ:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}Y:Set XhY1:Y ∈ Ω₀hY2:⟨Y, hY1⟩ ∈ ΩY':Set XhY'1:Y' ∈ Ω₀hY'2:⟨Y', hY'1⟩ ∈ Ωhs:∀ (a : Set X) (b : a ∈ Ω₀), IsStrictUpperBound a (s ⟨a, b⟩)hF:∀ (a : Set X) (b : a ∈ Ω₀) {x : X}, x ∈ a → ¬x = x₀ → ↑(F ⟨a, b⟩ x) = {y | y ∈ a ∧ y < x}hΩ:pt ∈ Ωex_8_5_13:∀ (a : Set X) (b : a ∈ Ω₀),
⟨a, b⟩ ∈ Ω → ∀ (a_1 : Set X) (b : a_1 ∈ Ω₀), ⟨a_1, b⟩ ∈ Ω → ∀ x ∈ a_1, x ∉ a → IsStrictUpperBound a xx₁:Xhx₁:x₁ ∈ Yhx₁':x₁ ∉ Y'x₂:Xhx₂:x₂ ∈ Y'hx₂':x₂ ∉ Y⊢ False
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else ptΩ:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}Y:Set XhY1:Y ∈ Ω₀hY2:⟨Y, hY1⟩ ∈ ΩY':Set XhY'1:Y' ∈ Ω₀hY'2:⟨Y', hY'1⟩ ∈ Ωhs:∀ (a : Set X) (b : a ∈ Ω₀), IsStrictUpperBound a (s ⟨a, b⟩)hF:∀ (a : Set X) (b : a ∈ Ω₀) {x : X}, x ∈ a → ¬x = x₀ → ↑(F ⟨a, b⟩ x) = {y | y ∈ a ∧ y < x}hΩ:pt ∈ Ωex_8_5_13:∀ (a : Set X) (b : a ∈ Ω₀),
⟨a, b⟩ ∈ Ω → ∀ (a_1 : Set X) (b : a_1 ∈ Ω₀), ⟨a_1, b⟩ ∈ Ω → ∀ x ∈ a_1, x ∉ a → IsStrictUpperBound a xx₁:Xhx₁:x₁ ∈ Yhx₁':x₁ ∉ Y'x₂:Xhx₂:x₂ ∈ Y'hx₂':x₂ ∉ Yh1:IsStrictUpperBound Y x₂⊢ False
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else ptΩ:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}Y:Set XhY1:Y ∈ Ω₀hY2:⟨Y, hY1⟩ ∈ ΩY':Set XhY'1:Y' ∈ Ω₀hY'2:⟨Y', hY'1⟩ ∈ Ωhs:∀ (a : Set X) (b : a ∈ Ω₀), IsStrictUpperBound a (s ⟨a, b⟩)hF:∀ (a : Set X) (b : a ∈ Ω₀) {x : X}, x ∈ a → ¬x = x₀ → ↑(F ⟨a, b⟩ x) = {y | y ∈ a ∧ y < x}hΩ:pt ∈ Ωex_8_5_13:∀ (a : Set X) (b : a ∈ Ω₀),
⟨a, b⟩ ∈ Ω → ∀ (a_1 : Set X) (b : a_1 ∈ Ω₀), ⟨a_1, b⟩ ∈ Ω → ∀ x ∈ a_1, x ∉ a → IsStrictUpperBound a xx₁:Xhx₁:x₁ ∈ Yhx₁':x₁ ∉ Y'x₂:Xhx₂:x₂ ∈ Y'hx₂':x₂ ∉ Yh1:IsStrictUpperBound Y x₂h2:IsStrictUpperBound Y' x₁⊢ False
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else ptΩ:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}Y:Set XhY1:Y ∈ Ω₀hY2:⟨Y, hY1⟩ ∈ ΩY':Set XhY'1:Y' ∈ Ω₀hY'2:⟨Y', hY'1⟩ ∈ Ωhs:∀ (a : Set X) (b : a ∈ Ω₀), IsStrictUpperBound a (s ⟨a, b⟩)hF:∀ (a : Set X) (b : a ∈ Ω₀) {x : X}, x ∈ a → ¬x = x₀ → ↑(F ⟨a, b⟩ x) = {y | y ∈ a ∧ y < x}hΩ:pt ∈ Ωex_8_5_13:∀ (a : Set X) (b : a ∈ Ω₀),
⟨a, b⟩ ∈ Ω → ∀ (a_1 : Set X) (b : a_1 ∈ Ω₀), ⟨a_1, b⟩ ∈ Ω → ∀ x ∈ a_1, x ∉ a → IsStrictUpperBound a xx₁:Xhx₁:x₁ ∈ Yhx₁':x₁ ∉ Y'x₂:Xhx₂:x₂ ∈ Y'hx₂':x₂ ∉ Yh1:∀ y ∈ Y, y < x₂h2:∀ y ∈ Y', y < x₁⊢ False
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else ptΩ:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}Y:Set XhY1:Y ∈ Ω₀hY2:⟨Y, hY1⟩ ∈ ΩY':Set XhY'1:Y' ∈ Ω₀hY'2:⟨Y', hY'1⟩ ∈ Ωhs:∀ (a : Set X) (b : a ∈ Ω₀), IsStrictUpperBound a (s ⟨a, b⟩)hF:∀ (a : Set X) (b : a ∈ Ω₀) {x : X}, x ∈ a → ¬x = x₀ → ↑(F ⟨a, b⟩ x) = {y | y ∈ a ∧ y < x}hΩ:pt ∈ Ωex_8_5_13:∀ (a : Set X) (b : a ∈ Ω₀),
⟨a, b⟩ ∈ Ω → ∀ (a_1 : Set X) (b : a_1 ∈ Ω₀), ⟨a_1, b⟩ ∈ Ω → ∀ x ∈ a_1, x ∉ a → IsStrictUpperBound a xx₁:Xhx₁:x₁ ∈ Yhx₁':x₁ ∉ Y'x₂:Xhx₂:x₂ ∈ Y'hx₂':x₂ ∉ Yh2:∀ y ∈ Y', y < x₁h1:x₁ < x₂⊢ False; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else ptΩ:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}Y:Set XhY1:Y ∈ Ω₀hY2:⟨Y, hY1⟩ ∈ ΩY':Set XhY'1:Y' ∈ Ω₀hY'2:⟨Y', hY'1⟩ ∈ Ωhs:∀ (a : Set X) (b : a ∈ Ω₀), IsStrictUpperBound a (s ⟨a, b⟩)hF:∀ (a : Set X) (b : a ∈ Ω₀) {x : X}, x ∈ a → ¬x = x₀ → ↑(F ⟨a, b⟩ x) = {y | y ∈ a ∧ y < x}hΩ:pt ∈ Ωex_8_5_13:∀ (a : Set X) (b : a ∈ Ω₀),
⟨a, b⟩ ∈ Ω → ∀ (a_1 : Set X) (b : a_1 ∈ Ω₀), ⟨a_1, b⟩ ∈ Ω → ∀ x ∈ a_1, x ∉ a → IsStrictUpperBound a xx₁:Xhx₁:x₁ ∈ Yhx₁':x₁ ∉ Y'x₂:Xhx₂:x₂ ∈ Y'hx₂':x₂ ∉ Yh1:x₁ < x₂h2:x₂ < x₁⊢ False; All goals completed! 🐙
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Y⊢ False
have hmem : x₀ ∈ Y_infty := X:Typeinst✝:PartialOrder Xx₀:X⊢ ∃ Y, IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ (∃ (hx₀ : x₀ ∈ Y), IsMin ⟨x₀, hx₀⟩) ∧ ¬∃ x, IsStrictUpperBound Y x X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Y⊢ ∃ i, (∃ (x : i ∈ Ω₀), ⟨i, ⋯⟩ ∈ Ω) ∧ x₀ ∈ i; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Y⊢ (∃ (x : ↑pt ∈ Ω₀), ⟨↑pt, ⋯⟩ ∈ Ω) ∧ x₀ ∈ ↑pt; All goals completed! 🐙
have hmin {x:X} (hx: x ∈ Y_infty) : x₀ ≤ x := X:Typeinst✝:PartialOrder Xx₀:X⊢ ∃ Y, IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ (∃ (hx₀ : x₀ ∈ Y), IsMin ⟨x₀, hx₀⟩) ∧ ¬∃ x, IsStrictUpperBound Y x
All goals completed! 🐙
have htotal : IsTotal Y_infty := X:Typeinst✝:PartialOrder Xx₀:X⊢ ∃ Y, IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ (∃ (hx₀ : x₀ ∈ Y), IsMin ⟨x₀, hx₀⟩) ∧ ¬∃ x, IsStrictUpperBound Y x
intro ⟨ x, hx ⟩ X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xx:Xhx:x ∈ Y_inftyx':Xhx':x' ∈ Y_infty⊢ ⟨x, hx⟩ ≤ ⟨x', hx'⟩ ∨ ⟨x', hx'⟩ ≤ ⟨x, hx⟩; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xx:Xhx✝:x ∈ Y_inftyx':Xhx'✝:x' ∈ Y_inftyhx:∃ i, (∃ (x : i ∈ Ω₀), ⟨i, ⋯⟩ ∈ Ω) ∧ x ∈ ihx':∃ i, (∃ (x : i ∈ Ω₀), ⟨i, ⋯⟩ ∈ Ω) ∧ x' ∈ i⊢ ⟨x, hx⟩ ≤ ⟨x', hx'⟩ ∨ ⟨x', hx'⟩ ≤ ⟨x, hx⟩
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xx:Xhx:x ∈ Y_inftyx':Xhx'✝:x' ∈ Y_inftyhx':∃ i, (∃ (x : i ∈ Ω₀), ⟨i, ⋯⟩ ∈ Ω) ∧ x' ∈ iY:Set XhxY:x ∈ YhYΩ₀:Y ∈ Ω₀hYΩ:⟨Y, ⋯⟩ ∈ Ω⊢ ⟨x, hx⟩ ≤ ⟨x', hx'⟩ ∨ ⟨x', hx'⟩ ≤ ⟨x, hx⟩; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xx:Xhx:x ∈ Y_inftyx':Xhx':x' ∈ Y_inftyY:Set XhxY:x ∈ YhYΩ₀:Y ∈ Ω₀hYΩ:⟨Y, ⋯⟩ ∈ ΩY':Set XhxY':x' ∈ Y'hY'Ω₀:Y' ∈ Ω₀hY'Ω:⟨Y', ⋯⟩ ∈ Ω⊢ ⟨x, hx⟩ ≤ ⟨x', hx'⟩ ∨ ⟨x', hx'⟩ ≤ ⟨x, hx⟩
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xx:Xhx:x ∈ Y_inftyx':Xhx':x' ∈ Y_inftyY:Set XhxY:x ∈ YhYΩ₀:Y ∈ Ω₀hYΩ:⟨Y, ⋯⟩ ∈ ΩY':Set XhxY':x' ∈ Y'hY'Ω₀:Y' ∈ Ω₀hY'Ω:⟨Y', ⋯⟩ ∈ Ωthis:⟨⟨Y, ⋯⟩, hYΩ⟩ ≤ ⟨⟨Y', ⋯⟩, hY'Ω⟩ ∨ ⟨⟨Y', ⋯⟩, hY'Ω⟩ ≤ ⟨⟨Y, ⋯⟩, hYΩ⟩⊢ ⟨x, hx⟩ ≤ ⟨x', hx'⟩ ∨ ⟨x', hx'⟩ ≤ ⟨x, hx⟩; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xx:Xhx:x ∈ Y_inftyx':Xhx':x' ∈ Y_inftyY:Set XhxY:x ∈ YhYΩ₀:IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ xhYΩ:⟨Y, ⋯⟩ ∈ ΩY':Set XhxY':x' ∈ Y'hY'Ω₀:IsTotal ↑Y' ∧ WellFoundedLT ↑Y' ∧ x₀ ∈ Y' ∧ ∀ x ∈ Y', x₀ ≤ xhY'Ω:⟨Y', ⋯⟩ ∈ Ωthis:⟨⟨Y, ⋯⟩, ⋯⟩ ≤ ⟨⟨Y', ⋯⟩, ⋯⟩ ∨ ⟨⟨Y', ⋯⟩, ⋯⟩ ≤ ⟨⟨Y, ⋯⟩, ⋯⟩⊢ x ≤ x' ∨ x' ≤ x
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xx:Xhx:x ∈ Y_inftyx':Xhx':x' ∈ Y_inftyY:Set XhxY:x ∈ YhYΩ₀:IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ xhYΩ:⟨Y, ⋯⟩ ∈ ΩY':Set XhxY':x' ∈ Y'hY'Ω₀:IsTotal ↑Y' ∧ WellFoundedLT ↑Y' ∧ x₀ ∈ Y' ∧ ∀ x ∈ Y', x₀ ≤ xhY'Ω:⟨Y', ⋯⟩ ∈ Ωthis:⟨⟨Y, ⋯⟩, ⋯⟩ ≤ ⟨⟨Y', ⋯⟩, ⋯⟩⊢ x ≤ x' ∨ x' ≤ xX:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xx:Xhx:x ∈ Y_inftyx':Xhx':x' ∈ Y_inftyY:Set XhxY:x ∈ YhYΩ₀:IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ xhYΩ:⟨Y, ⋯⟩ ∈ ΩY':Set XhxY':x' ∈ Y'hY'Ω₀:IsTotal ↑Y' ∧ WellFoundedLT ↑Y' ∧ x₀ ∈ Y' ∧ ∀ x ∈ Y', x₀ ≤ xhY'Ω:⟨Y', ⋯⟩ ∈ Ωthis:⟨⟨Y', ⋯⟩, ⋯⟩ ≤ ⟨⟨Y, ⋯⟩, ⋯⟩⊢ x ≤ x' ∨ x' ≤ x
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xx:Xhx:x ∈ Y_inftyx':Xhx':x' ∈ Y_inftyY:Set XhxY:x ∈ YhYΩ₀:IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ xhYΩ:⟨Y, ⋯⟩ ∈ ΩY':Set XhxY':x' ∈ Y'hY'Ω₀:IsTotal ↑Y' ∧ WellFoundedLT ↑Y' ∧ x₀ ∈ Y' ∧ ∀ x ∈ Y', x₀ ≤ xhY'Ω:⟨Y', ⋯⟩ ∈ Ωthis:⟨⟨Y, ⋯⟩, ⋯⟩ ≤ ⟨⟨Y', ⋯⟩, ⋯⟩⊢ x ≤ x' ∨ x' ≤ x X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xx:Xhx:x ∈ Y_inftyx':Xhx':x' ∈ Y_inftyY:Set XhxY:x ∈ YhYΩ₀:IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ xhYΩ:⟨Y, ⋯⟩ ∈ ΩY':Set XhxY':x' ∈ Y'hY'Ω₀✝:IsTotal ↑Y' ∧ WellFoundedLT ↑Y' ∧ x₀ ∈ Y' ∧ ∀ x ∈ Y', x₀ ≤ xhY'Ω:⟨Y', ⋯⟩ ∈ Ωthis:⟨⟨Y, ⋯⟩, ⋯⟩ ≤ ⟨⟨Y', ⋯⟩, ⋯⟩hY'Ω₀:⟨x, ⋯⟩ ≤ ⟨x', hxY'⟩ ∨ ⟨x', hxY'⟩ ≤ ⟨x, ⋯⟩⊢ x ≤ x' ∨ x' ≤ x; All goals completed! 🐙
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xx:Xhx:x ∈ Y_inftyx':Xhx':x' ∈ Y_inftyY:Set XhxY:x ∈ YhYΩ₀✝:IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ xhYΩ:⟨Y, ⋯⟩ ∈ ΩY':Set XhxY':x' ∈ Y'hY'Ω₀:IsTotal ↑Y' ∧ WellFoundedLT ↑Y' ∧ x₀ ∈ Y' ∧ ∀ x ∈ Y', x₀ ≤ xhY'Ω:⟨Y', ⋯⟩ ∈ Ωthis:⟨⟨Y', ⋯⟩, ⋯⟩ ≤ ⟨⟨Y, ⋯⟩, ⋯⟩hYΩ₀:⟨x, hxY⟩ ≤ ⟨x', ⋯⟩ ∨ ⟨x', ⋯⟩ ≤ ⟨x, hxY⟩⊢ x ≤ x' ∨ x' ≤ x; All goals completed! 🐙
have hwell : WellFoundedLT Y_infty := X:Typeinst✝:PartialOrder Xx₀:X⊢ ∃ Y, IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ (∃ (hx₀ : x₀ ∈ Y), IsMin ⟨x₀, hx₀⟩) ∧ ¬∃ x, IsStrictUpperBound Y x
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_infty⊢ ∀ (A : Set ↑Y_infty), A.Nonempty → ∃ x, IsMin x; intro A X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyA:Set ↑Y_inftya:Xha:a ∈ Y_inftyhaA:⟨a, ha⟩ ∈ A⊢ ∃ x, IsMin x
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyA:Set ↑Y_inftya:Xha✝:a ∈ Y_inftyhaA:⟨a, ha⟩ ∈ Aha:∃ i, (∃ (x : i ∈ Ω₀), ⟨i, ⋯⟩ ∈ Ω) ∧ a ∈ i⊢ ∃ x, IsMin x; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyA:Set ↑Y_inftya:Xha:a ∈ Y_inftyhaA:⟨a, ha⟩ ∈ AY:Set XhaY:a ∈ YhYΩ₀:Y ∈ Ω₀hYΩ:⟨Y, ⋯⟩ ∈ Ω⊢ ∃ x, IsMin x
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyA:Set ↑Y_inftya:Xha:a ∈ Y_inftyhaA:⟨a, ha⟩ ∈ AY:Set XhaY:a ∈ YhYΩ₀✝:Y ∈ Ω₀hYΩ:⟨Y, ⋯⟩ ∈ ΩhYΩ₀:IsTotal ↑Y ∧
(∀ (A : Set ↑Y), A.Nonempty → ∃ a, ∃ (b : a ∈ Y) (b_1 : ⟨a, b⟩ ∈ A), IsMin ⟨⟨a, b⟩, b_1⟩) ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x⊢ ∃ x, IsMin x
choose b hb hbY hbmin using hYΩ₀.2.1 {x:Y | ∃ x':A, (x:X) = x'} (X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyA:Set ↑Y_inftya:Xha:a ∈ Y_inftyhaA:⟨a, ha⟩ ∈ AY:Set XhaY:a ∈ YhYΩ₀✝:Y ∈ Ω₀hYΩ:⟨Y, ⋯⟩ ∈ ΩhYΩ₀:IsTotal ↑Y ∧
(∀ (A : Set ↑Y), A.Nonempty → ∃ a, ∃ (b : a ∈ Y) (b_1 : ⟨a, b⟩ ∈ A), IsMin ⟨⟨a, b⟩, b_1⟩) ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x⊢ {x | ∃ x', ↑x = ↑↑x'}.Nonempty X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyA:Set ↑Y_inftya:Xha:a ∈ Y_inftyhaA:⟨a, ha⟩ ∈ AY:Set XhaY:a ∈ YhYΩ₀✝:Y ∈ Ω₀hYΩ:⟨Y, ⋯⟩ ∈ ΩhYΩ₀:IsTotal ↑Y ∧
(∀ (A : Set ↑Y), A.Nonempty → ∃ a, ∃ (b : a ∈ Y) (b_1 : ⟨a, b⟩ ∈ A), IsMin ⟨⟨a, b⟩, b_1⟩) ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x⊢ ⟨a, haY⟩ ∈ {x | ∃ x', ↑x = ↑↑x'}; All goals completed! 🐙)
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyA:Set ↑Y_inftya:Xha:a ∈ Y_inftyhaA:⟨a, ha⟩ ∈ AY:Set XhaY:a ∈ YhYΩ₀✝:Y ∈ Ω₀hYΩ:⟨Y, ⋯⟩ ∈ ΩhYΩ₀:IsTotal ↑Y ∧
(∀ (A : Set ↑Y), A.Nonempty → ∃ a, ∃ (b : a ∈ Y) (b_1 : ⟨a, b⟩ ∈ A), IsMin ⟨⟨a, b⟩, b_1⟩) ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ xb:Xhb:b ∈ YhbY✝:⟨b, hb⟩ ∈ {x | ∃ x', ↑x = ↑↑x'}hbmin:IsMin ⟨⟨b, hb⟩, hbY✝⟩hbY:∃ (h : b ∈ Y_infty), ⟨b, ⋯⟩ ∈ A⊢ ∃ x, IsMin x; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyA:Set ↑Y_inftya:Xha:a ∈ Y_inftyhaA:⟨a, ha⟩ ∈ AY:Set XhaY:a ∈ YhYΩ₀✝:Y ∈ Ω₀hYΩ:⟨Y, ⋯⟩ ∈ ΩhYΩ₀:IsTotal ↑Y ∧
(∀ (A : Set ↑Y), A.Nonempty → ∃ a, ∃ (b : a ∈ Y) (b_1 : ⟨a, b⟩ ∈ A), IsMin ⟨⟨a, b⟩, b_1⟩) ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ xb:Xhb:b ∈ YhbY:⟨b, hb⟩ ∈ {x | ∃ x', ↑x = ↑↑x'}hbmin:IsMin ⟨⟨b, hb⟩, hbY✝⟩hbY_infty:b ∈ Y_inftyhbA:⟨b, ⋯⟩ ∈ A⊢ ∃ x, IsMin x
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyA:Set ↑Y_inftya:Xha:a ∈ Y_inftyhaA:⟨a, ha⟩ ∈ AY:Set XhaY:a ∈ YhYΩ₀✝:Y ∈ Ω₀hYΩ:⟨Y, ⋯⟩ ∈ ΩhYΩ₀:IsTotal ↑Y ∧
(∀ (A : Set ↑Y), A.Nonempty → ∃ a, ∃ (b : a ∈ Y) (b_1 : ⟨a, b⟩ ∈ A), IsMin ⟨⟨a, b⟩, b_1⟩) ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ xb:Xhb:b ∈ YhbY:⟨b, hb⟩ ∈ {x | ∃ x', ↑x = ↑↑x'}hbmin:IsMin ⟨⟨b, hb⟩, hbY✝⟩hbY_infty:b ∈ Y_inftyhbA:⟨b, ⋯⟩ ∈ A⊢ ∃ x₀ ∈ A, ∀ x ∈ A, x₀ ≤ x
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyA:Set ↑Y_inftya:Xha:a ∈ Y_inftyhaA:⟨a, ha⟩ ∈ AY:Set XhaY:a ∈ YhYΩ₀✝:Y ∈ Ω₀hYΩ:⟨Y, ⋯⟩ ∈ ΩhYΩ₀:IsTotal ↑Y ∧
(∀ (A : Set ↑Y), A.Nonempty → ∃ a, ∃ (b : a ∈ Y) (b_1 : ⟨a, b⟩ ∈ A), IsMin ⟨⟨a, b⟩, b_1⟩) ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ xb:Xhb:b ∈ YhbY:⟨b, hb⟩ ∈ {x | ∃ x', ↑x = ↑↑x'}hbmin:IsMin ⟨⟨b, hb⟩, hbY✝⟩hbY_infty:b ∈ Y_inftyhbA:⟨b, ⋯⟩ ∈ A⊢ ∀ x ∈ A, ⟨b, hbY_infty⟩ ≤ x; intro ⟨ x, hx ⟩ X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyA:Set ↑Y_inftya:Xha:a ∈ Y_inftyhaA:⟨a, ha⟩ ∈ AY:Set XhaY:a ∈ YhYΩ₀✝:Y ∈ Ω₀hYΩ:⟨Y, ⋯⟩ ∈ ΩhYΩ₀:IsTotal ↑Y ∧
(∀ (A : Set ↑Y), A.Nonempty → ∃ a, ∃ (b : a ∈ Y) (b_1 : ⟨a, b⟩ ∈ A), IsMin ⟨⟨a, b⟩, b_1⟩) ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ xb:Xhb:b ∈ YhbY:⟨b, hb⟩ ∈ {x | ∃ x', ↑x = ↑↑x'}hbmin:IsMin ⟨⟨b, hb⟩, hbY✝⟩hbY_infty:b ∈ Y_inftyhbA:⟨b, ⋯⟩ ∈ Ax:Xhx:x ∈ Y_inftyhxA:⟨x, hx⟩ ∈ A⊢ ⟨b, hbY_infty⟩ ≤ ⟨x, hx⟩
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyA:Set ↑Y_inftya:Xha:a ∈ Y_inftyhaA:⟨a, ha⟩ ∈ AY:Set XhaY:a ∈ YhYΩ₀✝:Y ∈ Ω₀hYΩ:⟨Y, ⋯⟩ ∈ ΩhYΩ₀:IsTotal ↑Y ∧
(∀ (A : Set ↑Y), A.Nonempty → ∃ a, ∃ (b : a ∈ Y) (b_1 : ⟨a, b⟩ ∈ A), IsMin ⟨⟨a, b⟩, b_1⟩) ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ xb:Xhb:b ∈ YhbY:⟨b, hb⟩ ∈ {x | ∃ x', ↑x = ↑↑x'}hbmin:IsMin ⟨⟨b, hb⟩, hbY✝⟩hbY_infty:b ∈ Y_inftyhbA:⟨b, ⋯⟩ ∈ Ax:Xhx✝:x ∈ Y_inftyhxA:⟨x, hx⟩ ∈ Ahx:∃ i, (∃ (x : i ∈ Ω₀), ⟨i, ⋯⟩ ∈ Ω) ∧ x ∈ i⊢ b ≤ x; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyA:Set ↑Y_inftya:Xha:a ∈ Y_inftyhaA:⟨a, ha⟩ ∈ AY:Set XhaY:a ∈ YhYΩ₀✝:Y ∈ Ω₀hYΩ:⟨Y, ⋯⟩ ∈ ΩhYΩ₀:IsTotal ↑Y ∧
(∀ (A : Set ↑Y), A.Nonempty → ∃ a, ∃ (b : a ∈ Y) (b_1 : ⟨a, b⟩ ∈ A), IsMin ⟨⟨a, b⟩, b_1⟩) ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ xb:Xhb:b ∈ YhbY:⟨b, hb⟩ ∈ {x | ∃ x', ↑x = ↑↑x'}hbmin:IsMin ⟨⟨b, hb⟩, hbY✝⟩hbY_infty:b ∈ Y_inftyhbA:⟨b, ⋯⟩ ∈ Ax:Xhx:x ∈ Y_inftyhxA:⟨x, hx⟩ ∈ AY':Set XhxY':x ∈ Y'hY'Ω₀:Y' ∈ Ω₀hY'Ω:⟨Y', ⋯⟩ ∈ Ω⊢ b ≤ x
All goals completed! 🐙
have hY_inftyΩ₀ : Y_infty ∈ Ω₀ := X:Typeinst✝:PartialOrder Xx₀:X⊢ ∃ Y, IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ (∃ (hx₀ : x₀ ∈ Y), IsMin ⟨x₀, hx₀⟩) ∧ ¬∃ x, IsStrictUpperBound Y x
All goals completed! 🐙
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehs:∀ (Y : ↑Ω₀), IsStrictUpperBound (↑Y) (s Y)hpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩⊢ False
have hYs_total : IsTotal (Y_infty ∪ {sY_infty} : Set X) := X:Typeinst✝:PartialOrder Xx₀:X⊢ ∃ Y, IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ (∃ (hx₀ : x₀ ∈ Y), IsMin ⟨x₀, hx₀⟩) ∧ ¬∃ x, IsStrictUpperBound Y x
All goals completed! 🐙
have hYs_well : WellFoundedLT (Y_infty ∪ {sY_infty} : Set X) := X:Typeinst✝:PartialOrder Xx₀:X⊢ ∃ Y, IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ (∃ (hx₀ : x₀ ∈ Y), IsMin ⟨x₀, hx₀⟩) ∧ ¬∃ x, IsStrictUpperBound Y x
All goals completed! 🐙
have hYs_mem : x₀ ∈ Y_infty ∪ {sY_infty} := X:Typeinst✝:PartialOrder Xx₀:X⊢ ∃ Y, IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ (∃ (hx₀ : x₀ ∈ Y), IsMin ⟨x₀, hx₀⟩) ∧ ¬∃ x, IsStrictUpperBound Y x All goals completed! 🐙
have hYs_min : ∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ x := X:Typeinst✝:PartialOrder Xx₀:X⊢ ∃ Y, IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ (∃ (hx₀ : x₀ ∈ Y), IsMin ⟨x₀, hx₀⟩) ∧ ¬∃ x, IsStrictUpperBound Y x All goals completed! 🐙
have hYs_Ω₀ : (Y_infty ∪ {sY_infty}) ∈ Ω₀ := X:Typeinst✝:PartialOrder Xx₀:X⊢ ∃ Y, IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ (∃ (hx₀ : x₀ ∈ Y), IsMin ⟨x₀, hx₀⟩) ∧ ¬∃ x, IsStrictUpperBound Y x
All goals completed! 🐙
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:IsStrictUpperBound (↑⟨Y_infty, hY_inftyΩ₀⟩) (s ⟨Y_infty, hY_inftyΩ₀⟩)⊢ False
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩⊢ False
have hYs_Ω : ⟨ _, hYs_Ω₀ ⟩ ∈ Ω := X:Typeinst✝:PartialOrder Xx₀:X⊢ ∃ Y, IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ (∃ (hx₀ : x₀ ∈ Y), IsMin ⟨x₀, hx₀⟩) ∧ ¬∃ x, IsStrictUpperBound Y x
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩⊢ ∀ x ∈ insert sY_infty Y_infty, ¬x = x₀ → x = s (F ⟨insert sY_infty Y_infty, ⋯⟩ x)
intro x X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩x:Xhx:x ∈ insert sY_infty Y_infty⊢ ¬x = x₀ → x = s (F ⟨insert sY_infty Y_infty, ⋯⟩ x) X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩x:Xhx:x ∈ insert sY_infty Y_inftyhxx₀:¬x = x₀⊢ x = s (F ⟨insert sY_infty Y_infty, ⋯⟩ x)
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩hxx₀:¬sY_infty = x₀⊢ sY_infty = s (F ⟨insert sY_infty Y_infty, ⋯⟩ sY_infty)X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩x:Xhxx₀:¬x = x₀hx:x ∈ Y_infty⊢ x = s (F ⟨insert sY_infty Y_infty, ⋯⟩ x)
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩hxx₀:¬sY_infty = x₀⊢ sY_infty = s (F ⟨insert sY_infty Y_infty, ⋯⟩ sY_infty) X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩hxx₀:¬sY_infty = x₀⊢ s ⟨Y_infty, hY_inftyΩ₀⟩ = s (F ⟨insert (s ⟨Y_infty, hY_inftyΩ₀⟩) Y_infty, ⋯⟩ (s ⟨Y_infty, hY_inftyΩ₀⟩)); X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩hxx₀:¬sY_infty = x₀⊢ ⟨Y_infty, hY_inftyΩ₀⟩ = F ⟨insert (s ⟨Y_infty, hY_inftyΩ₀⟩) Y_infty, ⋯⟩ (s ⟨Y_infty, hY_inftyΩ₀⟩)
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩hxx₀:¬sY_infty = x₀⊢ F ⟨insert (s ⟨Y_infty, hY_inftyΩ₀⟩) Y_infty, ⋯⟩ (s ⟨Y_infty, hY_inftyΩ₀⟩) = ⟨Y_infty, hY_inftyΩ₀⟩; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩hxx₀:¬sY_infty = x₀⊢ ↑(F ⟨insert (s ⟨Y_infty, hY_inftyΩ₀⟩) Y_infty, ⋯⟩ (s ⟨Y_infty, hY_inftyΩ₀⟩)) = ↑⟨Y_infty, hY_inftyΩ₀⟩; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩hxx₀:¬sY_infty = x₀⊢ ↑⟨Y_infty, hY_inftyΩ₀⟩ = {y | y ∈ ↑⟨insert (s ⟨Y_infty, hY_inftyΩ₀⟩) Y_infty, ⋯⟩ ∧ y < s ⟨Y_infty, hY_inftyΩ₀⟩}X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩hxx₀:¬sY_infty = x₀⊢ s ⟨Y_infty, hY_inftyΩ₀⟩ ∈ ↑⟨insert (s ⟨Y_infty, hY_inftyΩ₀⟩) Y_infty, ⋯⟩ \ {x₀}
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩hxx₀:¬sY_infty = x₀⊢ ↑⟨Y_infty, hY_inftyΩ₀⟩ = {y | y ∈ ↑⟨insert (s ⟨Y_infty, hY_inftyΩ₀⟩) Y_infty, ⋯⟩ ∧ y < s ⟨Y_infty, hY_inftyΩ₀⟩} X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩hxx₀:¬sY_infty = x₀x✝:X⊢ x✝ ∈ ↑⟨Y_infty, hY_inftyΩ₀⟩ ↔
x✝ ∈ {y | y ∈ ↑⟨insert (s ⟨Y_infty, hY_inftyΩ₀⟩) Y_infty, ⋯⟩ ∧ y < s ⟨Y_infty, hY_inftyΩ₀⟩}; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩hxx₀:¬sY_infty = x₀x✝:X⊢ x✝ ∈ Y_infty ↔ (x✝ = s ⟨Y_infty, hY_inftyΩ₀⟩ ∨ x✝ ∈ Y_infty) ∧ x✝ < s ⟨Y_infty, hY_inftyΩ₀⟩; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩hxx₀:¬sY_infty = x₀x✝:X⊢ x✝ ∈ Y_infty → (x✝ = s ⟨Y_infty, hY_inftyΩ₀⟩ ∨ x✝ ∈ Y_infty) ∧ x✝ < s ⟨Y_infty, hY_inftyΩ₀⟩X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩hxx₀:¬sY_infty = x₀x✝:X⊢ (x✝ = s ⟨Y_infty, hY_inftyΩ₀⟩ ∨ x✝ ∈ Y_infty) ∧ x✝ < s ⟨Y_infty, hY_inftyΩ₀⟩ → x✝ ∈ Y_infty
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩hxx₀:¬sY_infty = x₀x✝:X⊢ x✝ ∈ Y_infty → (x✝ = s ⟨Y_infty, hY_inftyΩ₀⟩ ∨ x✝ ∈ Y_infty) ∧ x✝ < s ⟨Y_infty, hY_inftyΩ₀⟩ All goals completed! 🐙
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩hxx₀:¬sY_infty = x₀x✝:Xright✝:x✝ < s ⟨Y_infty, hY_inftyΩ₀⟩h✝:x✝ = s ⟨Y_infty, hY_inftyΩ₀⟩⊢ x✝ ∈ Y_inftyX:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩hxx₀:¬sY_infty = x₀x✝:Xright✝:x✝ < s ⟨Y_infty, hY_inftyΩ₀⟩h✝:x✝ ∈ Y_infty⊢ x✝ ∈ Y_infty
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩hxx₀:¬sY_infty = x₀x✝:Xright✝:x✝ < s ⟨Y_infty, hY_inftyΩ₀⟩h✝:x✝ = s ⟨Y_infty, hY_inftyΩ₀⟩⊢ x✝ ∈ Y_infty All goals completed! 🐙
All goals completed! 🐙
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩hxx₀:¬sY_infty = x₀⊢ ¬s ⟨Y_infty, hY_inftyΩ₀⟩ = x₀; specialize hs (y := x₀) (X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩hxx₀:¬sY_infty = x₀⊢ x₀ ∈ Y_infty All goals completed! 🐙); All goals completed! 🐙
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩x:Xhxx₀:¬x = x₀hx:x ∈ Y_inftyhx':x ∈ Y_infty⊢ x = s (F ⟨insert sY_infty Y_infty, ⋯⟩ x); X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩x:Xhxx₀:¬x = x₀hx:x ∈ Y_inftyhx':∃ i, (∃ (x : i ∈ Ω₀), ⟨i, ⋯⟩ ∈ Ω) ∧ x ∈ i⊢ x = s (F ⟨insert sY_infty Y_infty, ⋯⟩ x); X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩x:Xhxx₀:¬x = x₀hx:x ∈ Y_inftyY:Set XhxY:x ∈ YhYΩ₀:Y ∈ Ω₀hYΩ:⟨Y, ⋯⟩ ∈ Ω⊢ x = s (F ⟨insert sY_infty Y_infty, ⋯⟩ x)
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩x:Xhxx₀:¬x = x₀hx:x ∈ Y_inftyY:Set XhxY:x ∈ YhYΩ₀:Y ∈ Ω₀hYΩ:⟨Y, ⋯⟩ ∈ ΩhYΩ':⟨Y, ⋯⟩ ∈ Ω⊢ x = s (F ⟨insert sY_infty Y_infty, ⋯⟩ x); X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩x:Xhxx₀:¬x = x₀hx:x ∈ Y_inftyY:Set XhxY:x ∈ YhYΩ₀:Y ∈ Ω₀hYΩ':⟨Y, ⋯⟩ ∈ ΩhYΩ:∀ x ∈ Y, ¬x = x₀ → x = s (F ⟨Y, ⋯⟩ x)⊢ x = s (F ⟨insert sY_infty Y_infty, ⋯⟩ x)
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩x:Xhxx₀:¬x = x₀hx:x ∈ Y_inftyY:Set XhxY:x ∈ YhYΩ₀:Y ∈ Ω₀hYΩ':⟨Y, ⋯⟩ ∈ ΩhYΩ:∀ x ∈ Y, ¬x = x₀ → x = s (F ⟨Y, ⋯⟩ x)⊢ F ⟨insert sY_infty Y_infty, ⋯⟩ x = F ⟨Y, ⋯⟩ x
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩x:Xhxx₀:¬x = x₀hx:x ∈ Y_inftyY:Set XhxY:x ∈ YhYΩ₀:Y ∈ Ω₀hYΩ':⟨Y, ⋯⟩ ∈ ΩhYΩ:∀ x ∈ Y, ¬x = x₀ → x = s (F ⟨Y, ⋯⟩ x)⊢ ↑(F ⟨insert sY_infty Y_infty, ⋯⟩ x) = ↑(F ⟨Y, ⋯⟩ x)
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩x:Xhxx₀:¬x = x₀hx:x ∈ Y_inftyY:Set XhxY:x ∈ YhYΩ₀:Y ∈ Ω₀hYΩ':⟨Y, ⋯⟩ ∈ ΩhYΩ:∀ x ∈ Y, ¬x = x₀ → x = s (F ⟨Y, ⋯⟩ x)⊢ {y | y ∈ ↑⟨insert sY_infty Y_infty, ⋯⟩ ∧ y < x} = {y | y ∈ ↑⟨Y, ⋯⟩ ∧ y < x}X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩x:Xhxx₀:¬x = x₀hx:x ∈ Y_inftyY:Set XhxY:x ∈ YhYΩ₀:Y ∈ Ω₀hYΩ':⟨Y, ⋯⟩ ∈ ΩhYΩ:∀ x ∈ Y, ¬x = x₀ → x = s (F ⟨Y, ⋯⟩ x)⊢ x ∈ ↑⟨Y, ⋯⟩ \ {x₀}X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩x:Xhxx₀:¬x = x₀hx:x ∈ Y_inftyY:Set XhxY:x ∈ YhYΩ₀:Y ∈ Ω₀hYΩ':⟨Y, ⋯⟩ ∈ ΩhYΩ:∀ x ∈ Y, ¬x = x₀ → x = s (F ⟨Y, ⋯⟩ x)⊢ x ∈ ↑⟨insert sY_infty Y_infty, ⋯⟩ \ {x₀}
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩x:Xhxx₀:¬x = x₀hx:x ∈ Y_inftyY:Set XhxY:x ∈ YhYΩ₀:Y ∈ Ω₀hYΩ':⟨Y, ⋯⟩ ∈ ΩhYΩ:∀ x ∈ Y, ¬x = x₀ → x = s (F ⟨Y, ⋯⟩ x)⊢ {y | y ∈ ↑⟨insert sY_infty Y_infty, ⋯⟩ ∧ y < x} = {y | y ∈ ↑⟨Y, ⋯⟩ ∧ y < x} X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩x:Xhxx₀:¬x = x₀hx:x ∈ Y_inftyY:Set XhxY:x ∈ YhYΩ₀:Y ∈ Ω₀hYΩ':⟨Y, ⋯⟩ ∈ ΩhYΩ:∀ x ∈ Y, ¬x = x₀ → x = s (F ⟨Y, ⋯⟩ x)y:X⊢ y ∈ {y | y ∈ ↑⟨insert sY_infty Y_infty, ⋯⟩ ∧ y < x} ↔ y ∈ {y | y ∈ ↑⟨Y, ⋯⟩ ∧ y < x}; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩x:Xhxx₀:¬x = x₀hx:x ∈ Y_inftyY:Set XhxY:x ∈ YhYΩ₀:Y ∈ Ω₀hYΩ':⟨Y, ⋯⟩ ∈ ΩhYΩ:∀ x ∈ Y, ¬x = x₀ → x = s (F ⟨Y, ⋯⟩ x)y:X⊢ y < x → ((y = sY_infty ∨ ∃ i, (∃ (x : i ∈ Ω₀), ⟨i, ⋯⟩ ∈ Ω) ∧ y ∈ i) ↔ y ∈ Y); X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩x:Xhxx₀:¬x = x₀hx:x ∈ Y_inftyY:Set XhxY:x ∈ YhYΩ₀:Y ∈ Ω₀hYΩ':⟨Y, ⋯⟩ ∈ ΩhYΩ:∀ x ∈ Y, ¬x = x₀ → x = s (F ⟨Y, ⋯⟩ x)y:Xhyx:y < x⊢ (y = sY_infty ∨ ∃ i, (∃ (x : i ∈ Ω₀), ⟨i, ⋯⟩ ∈ Ω) ∧ y ∈ i) ↔ y ∈ Y; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩x:Xhxx₀:¬x = x₀hx:x ∈ Y_inftyY:Set XhxY:x ∈ YhYΩ₀:Y ∈ Ω₀hYΩ':⟨Y, ⋯⟩ ∈ ΩhYΩ:∀ x ∈ Y, ¬x = x₀ → x = s (F ⟨Y, ⋯⟩ x)y:Xhyx:y < x⊢ (y = sY_infty ∨ ∃ i, (∃ (x : i ∈ Ω₀), ⟨i, ⋯⟩ ∈ Ω) ∧ y ∈ i) → y ∈ YX:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩x:Xhxx₀:¬x = x₀hx:x ∈ Y_inftyY:Set XhxY:x ∈ YhYΩ₀:Y ∈ Ω₀hYΩ':⟨Y, ⋯⟩ ∈ ΩhYΩ:∀ x ∈ Y, ¬x = x₀ → x = s (F ⟨Y, ⋯⟩ x)y:Xhyx:y < x⊢ y ∈ Y → y = sY_infty ∨ ∃ i, (∃ (x : i ∈ Ω₀), ⟨i, ⋯⟩ ∈ Ω) ∧ y ∈ i
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩x:Xhxx₀:¬x = x₀hx:x ∈ Y_inftyY:Set XhxY:x ∈ YhYΩ₀:Y ∈ Ω₀hYΩ':⟨Y, ⋯⟩ ∈ ΩhYΩ:∀ x ∈ Y, ¬x = x₀ → x = s (F ⟨Y, ⋯⟩ x)y:Xhyx:y < x⊢ (y = sY_infty ∨ ∃ i, (∃ (x : i ∈ Ω₀), ⟨i, ⋯⟩ ∈ Ω) ∧ y ∈ i) → y ∈ Y X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩x:Xhxx₀:¬x = x₀hx:x ∈ Y_inftyY:Set XhxY:x ∈ YhYΩ₀:Y ∈ Ω₀hYΩ':⟨Y, ⋯⟩ ∈ ΩhYΩ:∀ x ∈ Y, ¬x = x₀ → x = s (F ⟨Y, ⋯⟩ x)hyx:sY_infty < x⊢ sY_infty ∈ YX:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩x:Xhxx₀:¬x = x₀hx:x ∈ Y_inftyY:Set XhxY:x ∈ YhYΩ₀:Y ∈ Ω₀hYΩ':⟨Y, ⋯⟩ ∈ ΩhYΩ:∀ x ∈ Y, ¬x = x₀ → x = s (F ⟨Y, ⋯⟩ x)y:Xhyx:y < xY':Set XhyY':y ∈ Y'hY'Ω₀:Y' ∈ Ω₀hY'Ω:⟨Y', ⋯⟩ ∈ Ω⊢ y ∈ Y
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩x:Xhxx₀:¬x = x₀hx:x ∈ Y_inftyY:Set XhxY:x ∈ YhYΩ₀:Y ∈ Ω₀hYΩ':⟨Y, ⋯⟩ ∈ ΩhYΩ:∀ x ∈ Y, ¬x = x₀ → x = s (F ⟨Y, ⋯⟩ x)hyx:sY_infty < x⊢ sY_infty ∈ Y X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀x:Xhxx₀:¬x = x₀hx:x ∈ Y_inftyY:Set XhxY:x ∈ YhYΩ₀:Y ∈ Ω₀hYΩ':⟨Y, ⋯⟩ ∈ ΩhYΩ:∀ x ∈ Y, ¬x = x₀ → x = s (F ⟨Y, ⋯⟩ x)hyx:sY_infty < xhs:x < s ⟨Y_infty, hY_inftyΩ₀⟩⊢ sY_infty ∈ Y; All goals completed! 🐙
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis✝:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩x:Xhxx₀:¬x = x₀hx:x ∈ Y_inftyY:Set XhxY:x ∈ YhYΩ₀:Y ∈ Ω₀hYΩ':⟨Y, ⋯⟩ ∈ ΩhYΩ:∀ x ∈ Y, ¬x = x₀ → x = s (F ⟨Y, ⋯⟩ x)y:Xhyx:y < xY':Set XhyY':y ∈ Y'hY'Ω₀:Y' ∈ Ω₀hY'Ω:⟨Y', ⋯⟩ ∈ Ωthis:y ∉ Y⊢ False
specialize ex_8_5_13 (Y := ⟨_, hYΩ'⟩) (Y' := ⟨_, hY'Ω⟩) y (X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis✝:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩x:Xhxx₀:¬x = x₀hx:x ∈ Y_inftyY:Set XhxY:x ∈ YhYΩ₀:Y ∈ Ω₀hYΩ':⟨Y, ⋯⟩ ∈ ΩhYΩ:∀ x ∈ Y, ¬x = x₀ → x = s (F ⟨Y, ⋯⟩ x)y:Xhyx:y < xY':Set XhyY':y ∈ Y'hY'Ω₀:Y' ∈ Ω₀hY'Ω:⟨Y', ⋯⟩ ∈ Ωthis:y ∉ Y⊢ y ∈ ↑↑⟨⟨Y', ⋯⟩, hY'Ω⟩ \ ↑↑⟨⟨Y, ⋯⟩, hYΩ'⟩ All goals completed! 🐙)
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωthis✝:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩x:Xhxx₀:¬x = x₀hx:x ∈ Y_inftyY:Set XhxY:x ∈ YhYΩ₀:Y ∈ Ω₀hYΩ':⟨Y, ⋯⟩ ∈ ΩhYΩ:∀ x ∈ Y, ¬x = x₀ → x = s (F ⟨Y, ⋯⟩ x)y:Xhyx:y < xY':Set XhyY':y ∈ Y'hY'Ω₀:Y' ∈ Ω₀hY'Ω:⟨Y', ⋯⟩ ∈ Ωthis:y ∉ Yex_8_5_13:∀ y_1 ∈ ↑↑⟨⟨Y, ⋯⟩, hYΩ'⟩, y_1 < y⊢ False
specialize ex_8_5_13 x (X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωthis✝:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩x:Xhxx₀:¬x = x₀hx:x ∈ Y_inftyY:Set XhxY:x ∈ YhYΩ₀:Y ∈ Ω₀hYΩ':⟨Y, ⋯⟩ ∈ ΩhYΩ:∀ x ∈ Y, ¬x = x₀ → x = s (F ⟨Y, ⋯⟩ x)y:Xhyx:y < xY':Set XhyY':y ∈ Y'hY'Ω₀:Y' ∈ Ω₀hY'Ω:⟨Y', ⋯⟩ ∈ Ωthis:y ∉ Yex_8_5_13:∀ y_1 ∈ ↑↑⟨⟨Y, ⋯⟩, hYΩ'⟩, y_1 < y⊢ x ∈ ↑↑⟨⟨Y, ⋯⟩, hYΩ'⟩ All goals completed! 🐙); All goals completed! 🐙
All goals completed! 🐙
all_goals All goals completed! 🐙
have hs_mem : sY_infty ∈ Y_infty := Set.mem_iUnion_of_mem ⟨ _, hYs_Ω ⟩ (X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hs:∀ y ∈ Y_infty, y < s ⟨Y_infty, hY_inftyΩ₀⟩hYs_Ω:⟨Y_infty ∪ {sY_infty}, hYs_Ω₀⟩ ∈ Ω⊢ sY_infty ∈ ↑↑⟨⟨Y_infty ∪ {sY_infty}, hYs_Ω₀⟩, hYs_Ω⟩ All goals completed! 🐙)
X:Typeinst✝:PartialOrder Xx₀:XΩ₀:Set (Set X) := {Y | IsTotal ↑Y ∧ WellFoundedLT ↑Y ∧ x₀ ∈ Y ∧ ∀ x ∈ Y, x₀ ≤ x}hs✝:∀ Y ∈ Ω₀, ∃ x, IsStrictUpperBound Y xs:↑Ω₀ → X := fun Y ↦ ⋯.choosehpt:{x₀} ∈ Ω₀pt:↑Ω₀ := ⟨{x₀}, hpt⟩hF✝:∀ {Y : Set X}, Y ∈ Ω₀ → ∀ {x : X}, x ∈ Y \ {x₀} → {y | y ∈ Y ∧ y < x} ∈ Ω₀F:↑Ω₀ → X → ↑Ω₀ := fun Y x ↦ if hxy : x ∈ ↑Y \ {x₀} then ⟨{y | y ∈ ↑Y ∧ y < x}, ⋯⟩ else pthF:∀ {Y : ↑Ω₀} {x : X}, x ∈ ↑Y \ {x₀} → ↑(F Y x) = {y | y ∈ ↑Y ∧ y < x}Ω:Set ↑Ω₀ := {Y | ∀ x ∈ ↑Y \ {x₀}, x = s (F Y x)}hΩ:pt ∈ Ωex_8_5_13:∀ {Y Y' : ↑Ω}, ∀ x ∈ ↑↑Y' \ ↑↑Y, IsStrictUpperBound (↑↑Y) xthis:IsTotal ↑ΩY_infty:Set X := ⋃ Y, ↑↑Yhmem:x₀ ∈ Y_inftyhmin:∀ {x : X}, x ∈ Y_infty → x₀ ≤ xhtotal:IsTotal ↑Y_inftyhwell:WellFoundedLT ↑Y_inftyhY_inftyΩ₀:Y_infty ∈ Ω₀sY_infty:X := s ⟨Y_infty, hY_inftyΩ₀⟩hYs_total:IsTotal ↑(Y_infty ∪ {sY_infty})hYs_well:WellFoundedLT ↑(Y_infty ∪ {sY_infty})hYs_mem:x₀ ∈ Y_infty ∪ {sY_infty}hYs_min:∀ x ∈ Y_infty ∪ {sY_infty}, x₀ ≤ xhYs_Ω₀:Y_infty ∪ {sY_infty} ∈ Ω₀hYs_Ω:⟨Y_infty ∪ {sY_infty}, hYs_Ω₀⟩ ∈ Ωhs_mem:sY_infty ∈ Y_inftyhs:sY_infty < s ⟨Y_infty, hY_inftyΩ₀⟩⊢ False; All goals completed! 🐙Lemma 8.5.15 (Zorn's lemma) / Exercise 8.5.14
theorem Zorns_lemma {X:Type} [PartialOrder X] [Nonempty X]
(hchain: ∀ Y:Set X, IsTotal Y ∧ Y.Nonempty → ∃ x, IsUpperBound Y x) : ∃ x:X, IsMax x := X:Typeinst✝¹:PartialOrder Xinst✝:Nonempty Xhchain:∀ (Y : Set X), IsTotal ↑Y ∧ Y.Nonempty → ∃ x, IsUpperBound Y x⊢ ∃ x, IsMax x
All goals completed! 🐙Exercise 8.5.1
def empty_set_partial_order [h₀: LE Empty] : Decidable (∃ h : PartialOrder Empty, h.le = h₀.le) := h₀:LE Empty⊢ Decidable (∃ h, LE.le = LE.le)
All goals completed! 🐙def empty_set_linear_order [h₀: LE Empty] : Decidable (∃ h : LinearOrder Empty, h.le = h₀.le) := h₀:LE Empty⊢ Decidable (∃ h, LE.le = LE.le)
All goals completed! 🐙def empty_set_well_order [h₀: LT Empty]: Decidable (Nonempty (WellFoundedLT Empty)) := h₀:LT Empty⊢ Decidable (Nonempty (WellFoundedLT Empty))
All goals completed! 🐙/-- Exercise 8.5.2 -/
example : ∃ (X:Type) (h₀: LE X), (∀ x:X, x ≤ x) ∧ (∀ x y:X, x ≤ y → y ≤ x → x = y) ∧ ¬ (∀ x y z:X, x ≤ y → y ≤ z → x ≤ z) := ⊢ ∃ X h₀, (∀ (x : X), x ≤ x) ∧ (∀ (x y : X), x ≤ y → y ≤ x → x = y) ∧ ¬∀ (x y z : X), x ≤ y → y ≤ z → x ≤ z All goals completed! 🐙example : ∃ (X:Type) (h₀: LE X), (∀ x:X, x ≤ x) ∧ (∀ x y z:X, x ≤ y → y ≤ z → x ≤ z) ∧ ¬ (∀ x y:X, x ≤ y → y ≤ x → x = y) := ⊢ ∃ X h₀, (∀ (x : X), x ≤ x) ∧ (∀ (x y z : X), x ≤ y → y ≤ z → x ≤ z) ∧ ¬∀ (x y : X), x ≤ y → y ≤ x → x = y All goals completed! 🐙example : ∃ (X:Type) (h₀: LE X), (∀ x y:X, x ≤ y → y ≤ x → x = y) ∧ (∀ x y z:X, x ≤ y → y ≤ z → x ≤ z) ∧ ¬ (∀ x:X, x ≤ x) := ⊢ ∃ X h₀, (∀ (x y : X), x ≤ y → y ≤ x → x = y) ∧ (∀ (x y z : X), x ≤ y → y ≤ z → x ≤ z) ∧ ¬∀ (x : X), x ≤ x All goals completed! 🐙/-- Exercise 8.5.3 -/
example : ∃ (h₀: PartialOrder PNat), h₀.le = (fun x y ↦ ∃ n, y = n * x) := ⊢ ∃ h₀, LE.le = fun x y ↦ ∃ n, y = n * x All goals completed! 🐙example : ¬ ∃ (h₀: LinearOrder PNat), h₀.le = (fun x y ↦ ∃ n, y = n * x) := ⊢ ¬∃ h₀, LE.le = fun x y ↦ ∃ n, y = n * x All goals completed! 🐙/-- Exercise 8.5.4 -/
example : ¬ ∃ x : {x:ℝ| x > 0}, IsMin x := ⊢ ¬∃ x, IsMin x All goals completed! 🐙/-- Exercise 8.5.5 -/
example {X Y:Type} [PartialOrder Y] (f:X → Y) : ∃ h₀: PartialOrder X, h₀.le = (fun x y ↦ f x < f y ∨ x = y) := X:TypeY:Typeinst✝:PartialOrder Yf:X → Y⊢ ∃ h₀, LE.le = fun x y ↦ f x < f y ∨ x = y All goals completed! 🐙def Ex_8_5_5_b : Decidable (∀ (X Y:Type) (h: LinearOrder Y) (f:X → Y), ∃ h₀: LinearOrder X, h₀.le = (fun x y ↦ f x < f y ∨ x = y)) := ⊢ Decidable (∀ (X Y : Type) (h : LinearOrder Y) (f : X → Y), ∃ h₀, LE.le = fun x y ↦ f x < f y ∨ x = y)
All goals completed! 🐙Exercise 8.5.6
-- Final part of Exercise 8.5.5; if the answer to the previous part is "no", modify the hypotheses to make it true.
abbrev OrderIdeals (X: Type) [PartialOrder X] : Set (Set X) := .Iic '' (.univ : Set X)def OrderIdeals.iso {X: Type} [PartialOrder X] : X ≃o OrderIdeals X := {
toFun x := ⟨ .Iic x, X:Typeinst✝:PartialOrder Xx:X⊢ Set.Iic x ∈ OrderIdeals X All goals completed! 🐙 ⟩
invFun := X:Typeinst✝:PartialOrder X⊢ ↑(OrderIdeals X) → X All goals completed! 🐙
left_inv := X:Typeinst✝:PartialOrder X⊢ Function.LeftInverse sorry fun x ↦ ⟨Set.Iic x, ⋯⟩ All goals completed! 🐙
right_inv := X:Typeinst✝:PartialOrder X⊢ Function.RightInverse sorry fun x ↦ ⟨Set.Iic x, ⋯⟩ All goals completed! 🐙
map_rel_iff' := X:Typeinst✝:PartialOrder X⊢ ∀ {a b : X},
{ toFun := fun x ↦ ⟨Set.Iic x, ⋯⟩, invFun := sorry, left_inv := ⋯, right_inv := ⋯ } a ≤
{ toFun := fun x ↦ ⟨Set.Iic x, ⋯⟩, invFun := sorry, left_inv := ⋯, right_inv := ⋯ } b ↔
a ≤ b All goals completed! 🐙
}/-- Exercise 8.5.7 -/
example {Y:Type} [PartialOrder Y] {x y:Y} (hx: IsMin x) (hy: IsMin y) : x = y := Y:Typeinst✝:PartialOrder Yx:Yy:Yhx:IsMin xhy:IsMin y⊢ x = y
All goals completed! 🐙example {Y:Type} [PartialOrder Y] {x y:Y} (hx: IsMax x) (hy: IsMax y) : x = y := Y:Typeinst✝:PartialOrder Yx:Yy:Yhx:IsMax xhy:IsMax y⊢ x = y
All goals completed! 🐙/-- Exercise 8.5.9 -/
example {X:Type} [LinearOrder X] (hmin: ∀ Y: Set X, Y.Nonempty → ∃ x:Y, IsMin x) (hmax: ∀ Y: Set X, Y.Nonempty → ∃ x:Y, IsMax x) : Finite X := X:Typeinst✝:LinearOrder Xhmin:∀ (Y : Set X), Y.Nonempty → ∃ x, IsMin xhmax:∀ (Y : Set X), Y.Nonempty → ∃ x, IsMax x⊢ Finite X All goals completed! 🐙
Exercise 8.5.12. Here we make a copy of Mathlib's Lex wrapper for lexicographical orderings. This wrapper is needed
because products X × Y of ordered sets are given the default instance of the product partial order instead of
the lexicographical one.
def Lex' (α : Type) := αinstance Lex'.partialOrder {X Y: Type} [PartialOrder X] [PartialOrder Y] : PartialOrder (Lex' (X × Y)) := {
le := fun ⟨ x, y ⟩ ⟨ x', y' ⟩ ↦ (x < x') ∨ (x = x' ∧ y ≤ y')
le_refl := X:TypeY:Typeinst✝¹:PartialOrder Xinst✝:PartialOrder Y⊢ ∀ (a : Lex' (X × Y)),
match a with
| (x, y) =>
match a with
| (x', y') => x < x' ∨ x = x' ∧ y ≤ y' All goals completed! 🐙
le_antisymm := X:TypeY:Typeinst✝¹:PartialOrder Xinst✝:PartialOrder Y⊢ ∀ (a b : Lex' (X × Y)),
(match a with
| (x, y) =>
match b with
| (x', y') => x < x' ∨ x = x' ∧ y ≤ y') →
(match b with
| (x, y) =>
match a with
| (x', y') => x < x' ∨ x = x' ∧ y ≤ y') →
a = b All goals completed! 🐙
le_trans := X:TypeY:Typeinst✝¹:PartialOrder Xinst✝:PartialOrder Y⊢ ∀ (a b c : Lex' (X × Y)),
(match a with
| (x, y) =>
match b with
| (x', y') => x < x' ∨ x = x' ∧ y ≤ y') →
(match b with
| (x, y) =>
match c with
| (x', y') => x < x' ∨ x = x' ∧ y ≤ y') →
match a with
| (x, y) =>
match c with
| (x', y') => x < x' ∨ x = x' ∧ y ≤ y' All goals completed! 🐙
}instance Lex'.linearOrder {X Y:Type} [LinearOrder X] [LinearOrder Y] : LinearOrder (Lex' (X × Y)) := X:TypeY:Typeinst✝¹:LinearOrder Xinst✝:LinearOrder Y⊢ LinearOrder (Lex' (X × Y)) All goals completed! 🐙instance Lex'.WellFoundedLT {X Y:Type} [LinearOrder X] [WellFoundedLT X] [LinearOrder Y] [WellFoundedLT Y]:
WellFoundedLT (Lex' (X × Y)) := X:TypeY:Typeinst✝³:LinearOrder Xinst✝²:_root_.WellFoundedLT Xinst✝¹:LinearOrder Yinst✝:_root_.WellFoundedLT Y⊢ _root_.WellFoundedLT (Lex' (X × Y)) All goals completed! 🐙end Chapter8