Analysis 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:

namespace Chapter8

Definition 8.5.1 - Here we just review the Mathlib PartialOrder.{u_2} (α : Type u_2) : Type u_2PartialOrder class.

example {X:Type} [PartialOrder X] (x:X) : x x := le_refl x
example {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_nedef 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:TypePartialOrder (Set X) All goals completed! 🐙example {X:Type} (A B: Set X) : A B A B := X:TypeA:Set XB:Set XA B A B All goals completed! 🐙

Definition 8.5.3. Here we just review the Mathlib LinearOrder.{u_2} (α : Type u_2) : Type u_2LinearOrder class.

example {X:Type} [LinearOrder X] : PartialOrder X := X:Typeinst✝:LinearOrder XPartialOrder 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 noncomputable def LinearOrder.mk {X:Type} [PartialOrder X] (htotal: IsTotal X) : LinearOrder X := { le_total := htotal toDecidableLE := decRel LE.le }
inferInstanceAs (LinearOrder ) : LinearOrder 
inferInstanceAs (LinearOrder ) : LinearOrder 
inferInstanceAs (LinearOrder ) : LinearOrder 
inferInstanceAs (LinearOrder EReal) : LinearOrder EReal
noncomputable def declaration uses 'sorry'LinearOrder.subtype {X:Type} [LinearOrder X] (A: Set X) : LinearOrder A := LinearOrder.mk (X:Typeinst✝:LinearOrder XA:Set XIsTotal 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 XIsTotal A X:Typeinst✝:PartialOrder XA:Set XhA:IsTotal Xx:Xhx:x Ay:Xhy:y Ax, hx y, hy y, hy x, hx X:Typeinst✝:PartialOrder XA:Set Xx:Xhx:x Ay:Xhy:y AhA:x y y xx, 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 AIsTotal B X:Typeinst✝:PartialOrder XA:Set XB:Set XhA:IsTotal AhAB:B Ax:Xhx:x By:Xhy:y Bx, 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} }declaration uses 'sorry'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.{u_1} {α : Type u_1} [LE α] (a : α) : PropIsMax and IsMin.{u_1} {α : Type u_1} [LE α] (a : α) : PropIsMin.

theorem IsMax.iff {X:Type} [PartialOrder X] (x:X) : IsMax x ¬ y, x < y := X:Typeinst✝:PartialOrder Xx:XIsMax 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:XIsMin x ¬ y, x > y X:Typeinst✝:PartialOrder Xx:X(∀ (b : X), ¬b < x) ¬ y, x > y; All goals completed! 🐙

Examples 8.5.6

declaration uses 'sorry'example : IsMin ( {2}, {2} X_8_5_4 All goals completed! 🐙 : X_8_5_4) := IsMin {2}, All goals completed! 🐙
declaration uses 'sorry'example : IsMax ( {1,2}, {1, 2} X_8_5_4 All goals completed! 🐙 : X_8_5_4) := IsMax {1, 2}, All goals completed! 🐙declaration uses 'sorry'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! 🐙declaration uses 'sorry'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! 🐙declaration uses 'sorry'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

declaration uses 'sorry'example : IsMin (0:) := IsMin 0 All goals completed! 🐙
declaration uses 'sorry'example (n:) : ¬ IsMax n := n:¬IsMax n All goals completed! 🐙declaration uses 'sorry'example (n:): ¬ IsMin n ¬ IsMax n := n:¬IsMin n ¬IsMax n All goals completed! 🐙

Definition 8.5.8. We use [LinearOrder Unknown identifier `X`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 XWellFoundedLT 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; X:Typeinst✝:LinearOrder XA:Set XhA:A.Nonemptyx:XhxA:x Ah: x_1 A, ¬x_1 < xy:Xhy:y Athis:y, hy x, hxAx, hxA y, hy; X:Typeinst✝:LinearOrder XA:Set XhA:A.Nonemptyx:XhxA:x Ay:Xhy:y Athis:y, hy x, hxAh:¬y < xx, hxA y, hy X:Typeinst✝:LinearOrder XA:Set XhA:A.Nonemptyx:XhxA:x Ay:Xhy:y Athis:y xh:x yx 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; 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 < xy x y < x; X:Typeinst✝:LinearOrder XA:Set XhA:A.Nonemptyx:Xhx:x Ay:Xhy:y Ah:y < xy 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 A:Set hA:A.Nonempty x, IsMin x; A:Set hA:A.NonemptyIsMin 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

declaration uses 'sorry'example : ¬ WellFoundedLT := ¬WellFoundedLT All goals completed! 🐙
declaration uses 'sorry'example : ¬ WellFoundedLT := ¬WellFoundedLT All goals completed! 🐙declaration uses 'sorry'example : ¬ WellFoundedLT := ¬WellFoundedLT All goals completed! 🐙

Exercise 8.5.8

theorem declaration uses 'sorry'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 declaration uses 'sorry'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 declaration uses 'sorry'WellFoundedLT.ofFinite {X:Type} [LinearOrder X] [Finite X] : WellFoundedLT X := X:Typeinst✝¹:LinearOrder Xinst✝:Finite XWellFoundedLT X All goals completed! 🐙
declaration uses 'sorry'example {X:Type} [LinearOrder X] [WellFoundedLT X] (A: Set X) : WellFoundedLT A := X:Typeinst✝¹:LinearOrder Xinst✝:WellFoundedLT XA:Set XWellFoundedLT 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 AWellFoundedLT B X:Typeinst✝:PartialOrder XA:Set XB:Set XhA:IsTotal Ahwell:WellFoundedLT AhAB:B AhAlin:LinearOrder _fvar.63122 := Chapter8.LinearOrder.mk _fvar.63124WellFoundedLT B X:Typeinst✝:PartialOrder XA:Set XB:Set XhA:IsTotal Ahwell:WellFoundedLT AhAB:B AhAlin:LinearOrder _fvar.63122 := Chapter8.LinearOrder.mk _fvar.63124hBlin:LinearOrder _fvar.63123 := Chapter8.LinearOrder.mk WellFoundedLT B X:Typeinst✝:PartialOrder XA:Set XB:Set XhA:IsTotal AhAB:B AhAlin:LinearOrder _fvar.63122 := Chapter8.LinearOrder.mk _fvar.63124hwell: (A_1 : Set A), A_1.Nonempty x, IsMin xhBlin:LinearOrder _fvar.63123 := Chapter8.LinearOrder.mk (A : Set B), A.Nonempty x, IsMin x; X:Typeinst✝:PartialOrder XA:Set XB:Set XhA:IsTotal AhAB:B AhAlin:LinearOrder _fvar.63122 := Chapter8.LinearOrder.mk _fvar.63124hwell: (A_1 : Set A), A_1.Nonempty x, IsMin xhBlin:LinearOrder _fvar.63123 := Chapter8.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 AhAB:B AhAlin:LinearOrder _fvar.63122 := Chapter8.LinearOrder.mk _fvar.63124hwell: (A_1 : Set A), A_1.Nonempty x, IsMin xhBlin:LinearOrder _fvar.63123 := Chapter8.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 AhAB:B AhAlin:LinearOrder _fvar.63122 := Chapter8.LinearOrder.mk _fvar.63124hwell: (A_1 : Set A), A_1.Nonempty x, IsMin xhBlin:LinearOrder _fvar.63123 := Chapter8.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 AhAB:B AhAlin:LinearOrder _fvar.63122 := Chapter8.LinearOrder.mk _fvar.63124hwell: (A_1 : Set A), A_1.Nonempty x, IsMin xhBlin:LinearOrder _fvar.63123 := Chapter8.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 AhAB:B AhAlin:LinearOrder _fvar.63122 := Chapter8.LinearOrder.mk _fvar.63124hwell: (A_1 : Set A), A_1.Nonempty x, IsMin xhBlin:LinearOrder _fvar.63123 := Chapter8.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, hxIsMin y, hy, hyC X:Typeinst✝:PartialOrder XA:Set XB:Set XhA:IsTotal AhAB:B AhAlin:LinearOrder _fvar.63122 := Chapter8.LinearOrder.mk _fvar.63124hBlin:LinearOrder _fvar.63123 := Chapter8.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 A, (x_1 : X) (x_2 : x_1 B), x_1, C x_1 = a a x x athis:y = x (a : X) (b : a B), a, b C a x x a; All goals completed! 🐙

Proposition 8.5.10 / Exercise 8.5.10

theorem declaration uses 'sorry'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.{u_1} {α : Type u_1} [LE α] (s : Set α) : Set α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:XIsUpperBound 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 declaration uses 'sorry'IsStrictUpperBound.iff {X:Type} [PartialOrder X] (A:Set X) (x:X) : IsStrictUpperBound A x y A, y < x := X:Typeinst✝:PartialOrder XA:Set Xx:XIsStrictUpperBound 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:XIsStrictUpperBound A x x upperBounds A \ A All goals completed! 🐙declaration uses 'sorry'example : IsUpperBound (.Icc 1 2: Set ) 2 := IsUpperBound (Set.Icc 1 2) 2 All goals completed! 🐙declaration uses 'sorry'example : ¬ IsStrictUpperBound (.Icc 1 2: Set ) 2 := ¬IsStrictUpperBound (Set.Icc 1 2) 2 All goals completed! 🐙declaration uses 'sorry'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 Unknown identifier `x₀`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₀ xx₀ 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, hxx₀ 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₀ xIsMin 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

declaration uses 'sorry'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 declaration uses 'sorry'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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x} Y, IsTotal Y WellFoundedLT Y (∃ (hx₀ : x₀ Y), IsMin x₀, hx₀) ¬ x, IsStrictUpperBound Y x X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x} Y Ω₀, ¬ x, IsStrictUpperBound Y x X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}this: Y Ω₀, ¬ x, IsStrictUpperBound Y xY:Set XhY:IsTotal YhY':WellFoundedLT Y x₀ Y x Y, x₀ xhstrict:¬ x, IsStrictUpperBound Y xWellFoundedLT Y (∃ (hx₀ : x₀ Y), IsMin x₀, hx₀) ¬ x, IsStrictUpperBound Y x X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}this: Y Ω₀, ¬ x, IsStrictUpperBound Y xY:Set XhY:IsTotal YhY':WellFoundedLT Y x₀ Y x Y, x₀ xhstrict:¬ x, IsStrictUpperBound Y xWellFoundedLT Y (x₀ Y x Y, x₀ x) ¬ x, IsStrictUpperBound Y x; All goals completed! 🐙 X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs: Y Ω₀, x, IsStrictUpperBound Y xFalse X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )False X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) 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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))htotal:Chapter8.IsTotal {_fvar.548712} := ?_mvar.552025_lin:LinearOrder {_fvar.548712} := Chapter8.LinearOrder.mk _fvar.552026{x₀} Ω₀ X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))htotal:Chapter8.IsTotal {_fvar.548712} := ?_mvar.552025_lin:LinearOrder {_fvar.548712} := Chapter8.LinearOrder.mk _fvar.552026WellFoundedLT {x₀}; All goals completed! 🐙 X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760False -- 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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760Y: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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760Y: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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760Y: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₀ xWellFoundedLT { x_1 // x_1 Y x_1 < x } x₀ < x X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760Y: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₀ xWellFoundedLT { x_1 // x_1 Y x_1 < x }X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760Y: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₀ xx₀ < x X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760Y: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₀ xWellFoundedLT { x_1 // x_1 Y x_1 < x } X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760Y: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₀ xIsTotal YX:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760Y: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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760Y: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₀ xIsTotal Y X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760Y: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✝ Yval✝¹, property✝¹ val✝, property✝ val✝, property✝ val✝¹, property✝¹; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760Y: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✝ Yval✝¹ val✝ val✝ val✝¹; All goals completed! 🐙 X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760Y: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✝:Xa✝ {y | y Y y < x} a✝ Y; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760Y: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✝:Xa✝ Y a✝ < x a✝ Y; All goals completed! 🐙 X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760Y: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:?_mvar.651430 := @_fvar.645109 ?_mvar.651431 x₀ < x; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760Y: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:?_mvar.651430 := @_fvar.645109 ?_mvar.651431 hxy:¬x₀ < xx Y x = x₀; All goals completed! 🐙 classical X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231False 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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}False have : 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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x h (x y : Ω), x y y x; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis: x y, ¬x y ¬y xFalse; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hY:Set XhY1:Y Ω₀hY2:Y, hY1 ΩY':Set XhY'1:Y' Ω₀hY'2:Y', hY'1 Ωh1:¬Y, hY1, hY2 Y', hY'1, hY'2h2:¬Y', hY'1, hY'2 Y, hY1, hY2False X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231Ω:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 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}: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 YFalse X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231Ω:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 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}: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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231Ω:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 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}: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₂ YFalse X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231Ω:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 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}: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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231Ω:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 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}: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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231Ω:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 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}: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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231Ω:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 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}: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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231Ω:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 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}: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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, YFalse 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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Y i, (∃ (x : i Ω₀), i, Ω) x₀ i; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := 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 X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxx:Xhx:x Y_inftyx':Xhx':x' Y_inftyx, hx x', hx' x', hx' x, hx; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxx:Xhx✝:x Y_inftyx':Xhx'✝:x' Y_inftyhx: i, (∃ (x : i Ω₀), i, Ω) x ihx': i, (∃ (x : i Ω₀), i, Ω) x' ix, hx✝ x', hx'✝ x', hx'✝ x, hx✝ X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxx: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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxx: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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hY_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxx: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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hY_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxx: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' Yx x' x' x X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hY_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxx: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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hY_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxx: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' Yx x' x' x X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hY_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxx: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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hY_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxx: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'Ω₀:?_mvar.1047951 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)x x' x' x; All goals completed! 🐙 X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hY_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxx: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' YhYΩ₀:?_mvar.1050468 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633 (A : Set Y_infty), A.Nonempty x, IsMin x; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633A:Set Y_inftya:Xha:a Y_inftyhaA:a, ha A x, IsMin x X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633A:Set Y_inftya:Xha✝:a Y_inftyhaA:a, ha✝ Aha: i, (∃ (x : i Ω₀), i, Ω) a i x, IsMin x; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633A: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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633A: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 _fvar.548710) := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:{_fvar.548712} _fvar.549299 := have htotal := of_eq_true (Eq.trans (forall_congr fun x => Eq.trans (forall_congr fun y => Eq.trans (congr (congrArg Or le_of_subsingleton._simp_1) le_of_subsingleton._simp_1) (or_self True)) (implies_true {_fvar.548712})) (implies_true {_fvar.548712})); let _lin := Chapter8.LinearOrder.mk htotal; @Eq.mpr ({_fvar.548712} _fvar.549299) (WellFoundedLT {_fvar.548712}) (id (Eq.trans (congr (congrArg And (eq_true htotal)) (Eq.trans (congrArg (And (WellFoundedLT {_fvar.548712})) (Eq.trans (congr (congrArg And (Eq.trans Set.mem_singleton_iff._simp_1 (eq_self _fvar.548712))) (Eq.trans (Eq.trans (forall_congr fun x => implies_congr Set.mem_singleton_iff._simp_1 (Eq.refl (_fvar.548712 x))) forall_eq._simp_1) (le_refl._simp_1 _fvar.548712))) (and_self True))) (and_true (WellFoundedLT {_fvar.548712})))) (true_and (WellFoundedLT {_fvar.548712})))) Chapter8.WellFoundedLT.ofFinitept:_fvar.549299 := {_fvar.548712}, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)F:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => of_eq_true (Eq.trans (congrArg (fun x_1 => x_1 = {y | y Y y < x}) (Eq.trans (congrArg (fun x_1 => x_1 Y x) (funext fun Y => funext fun x => dite_congr (Eq.trans (Set.mem_diff._simp_1 x) (congrArg (fun x_1 => x Y ¬x_1) Set.mem_singleton_iff._simp_1)) (fun h => Eq.refl {y | y Y y < x}, @_fvar.557581 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y) x (Eq.mpr_prop (Eq.trans (Set.mem_diff._simp_1 x) (congrArg (fun x_1 => x Y ¬x_1) Set.mem_singleton_iff._simp_1)) h)) fun h => Eq.refl _fvar.557231)) (dite_cond_eq_true (Eq.trans (congr (congrArg And (eq_true (id (Eq.mp (Eq.trans (Set.mem_diff._simp_1 x) (congrArg (fun x_1 => x Y ¬x_1) Set.mem_singleton_iff._simp_1)) hxy)).1)) (Eq.trans (congrArg Not (eq_false (id (Eq.mp (Eq.trans (Set.mem_diff._simp_1 x) (congrArg (fun x_1 => x Y ¬x_1) Set.mem_singleton_iff._simp_1)) hxy)).2)) not_false_eq_true)) (and_self True))))) (eq_self {y | y Y y < x}))Ω:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := sorryex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => sorrythis:Chapter8.IsTotal _fvar.684489 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := @Eq.mpr (_fvar.548712 _fvar.908527) (∃ i, (∃ (x : i _fvar.549299), i, (Iff.of_eq (Eq.refl (i _fvar.549299))).mpr (i _fvar.549299) (i _fvar.549299) ((Iff.of_eq (Eq.refl (i _fvar.549299))).mpr (i _fvar.549299) (i _fvar.549299) x) _fvar.684489) _fvar.548712 i) (id (Eq.trans (Eq.trans (congrArg (fun x => _fvar.548712 x) (Eq.trans (Set.iUnion_coe_set _fvar.684489 fun i => i) (Eq.trans (Eq.trans (congrArg Set.iUnion (funext fun i => Set.iUnion_congr_Prop (Iff.of_eq (Eq.refl (i _fvar.684489))) fun x => Eq.refl i)) (Set.iUnion_coe_set _fvar.549299 fun i => (_ : i _fvar.684489), i)) (congrArg Set.iUnion (funext fun i => Set.iUnion_congr_Prop (Iff.of_eq (Eq.refl (i _fvar.549299))) fun x => Set.iUnion_congr_Prop (Iff.of_eq (Eq.refl (i, (Iff.of_eq (Eq.refl (i _fvar.549299))).mpr (i _fvar.549299) (i _fvar.549299) x _fvar.684489))) fun x => Eq.refl i))))) Set.mem_iUnion._simp_1) (congrArg Exists (funext fun i => Eq.trans Set.mem_iUnion._simp_1 (Eq.trans (propext (exists_prop_congr (fun h => Iff.of_eq (Eq.trans Set.mem_iUnion._simp_1 exists_prop._simp_1)) (Iff.of_eq (Eq.refl (i _fvar.549299))))) exists_and_right._simp_1))))) (Exists.intro (↑_fvar.557231) (Chapter8.WellFoundedLT.partialOrder._proof_7 _fvar.548712 _fvar.551104 _fvar.551527 _fvar.551760 _fvar.557581 _fvar.664494 _fvar.684711 _fvar.685361 _fvar.685636))hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => sorryhtotal:Chapter8.IsTotal _fvar.908527 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)A: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 _fvar.548710) := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:{_fvar.548712} _fvar.549299 := have htotal := of_eq_true (Eq.trans (forall_congr fun x => Eq.trans (forall_congr fun y => Eq.trans (congr (congrArg Or le_of_subsingleton._simp_1) le_of_subsingleton._simp_1) (or_self True)) (implies_true {_fvar.548712})) (implies_true {_fvar.548712})); let _lin := Chapter8.LinearOrder.mk htotal; @Eq.mpr ({_fvar.548712} _fvar.549299) (WellFoundedLT {_fvar.548712}) (id (Eq.trans (congr (congrArg And (eq_true htotal)) (Eq.trans (congrArg (And (WellFoundedLT {_fvar.548712})) (Eq.trans (congr (congrArg And (Eq.trans Set.mem_singleton_iff._simp_1 (eq_self _fvar.548712))) (Eq.trans (Eq.trans (forall_congr fun x => implies_congr Set.mem_singleton_iff._simp_1 (Eq.refl (_fvar.548712 x))) forall_eq._simp_1) (le_refl._simp_1 _fvar.548712))) (and_self True))) (and_true (WellFoundedLT {_fvar.548712})))) (true_and (WellFoundedLT {_fvar.548712})))) Chapter8.WellFoundedLT.ofFinitept:_fvar.549299 := {_fvar.548712}, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)F:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => of_eq_true (Eq.trans (congrArg (fun x_1 => x_1 = {y | y Y y < x}) (Eq.trans (congrArg (fun x_1 => x_1 Y x) (funext fun Y => funext fun x => dite_congr (Eq.trans (Set.mem_diff._simp_1 x) (congrArg (fun x_1 => x Y ¬x_1) Set.mem_singleton_iff._simp_1)) (fun h => Eq.refl {y | y Y y < x}, @_fvar.557581 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y) x (Eq.mpr_prop (Eq.trans (Set.mem_diff._simp_1 x) (congrArg (fun x_1 => x Y ¬x_1) Set.mem_singleton_iff._simp_1)) h)) fun h => Eq.refl _fvar.557231)) (dite_cond_eq_true (Eq.trans (congr (congrArg And (eq_true (id (Eq.mp (Eq.trans (Set.mem_diff._simp_1 x) (congrArg (fun x_1 => x Y ¬x_1) Set.mem_singleton_iff._simp_1)) hxy)).1)) (Eq.trans (congrArg Not (eq_false (id (Eq.mp (Eq.trans (Set.mem_diff._simp_1 x) (congrArg (fun x_1 => x Y ¬x_1) Set.mem_singleton_iff._simp_1)) hxy)).2)) not_false_eq_true)) (and_self True))))) (eq_self {y | y Y y < x}))Ω:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := sorryex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => sorrythis:Chapter8.IsTotal _fvar.684489 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := @Eq.mpr (_fvar.548712 _fvar.908527) (∃ i, (∃ (x : i _fvar.549299), i, (Iff.of_eq (Eq.refl (i _fvar.549299))).mpr (i _fvar.549299) (i _fvar.549299) ((Iff.of_eq (Eq.refl (i _fvar.549299))).mpr (i _fvar.549299) (i _fvar.549299) x) _fvar.684489) _fvar.548712 i) (id (Eq.trans (Eq.trans (congrArg (fun x => _fvar.548712 x) (Eq.trans (Set.iUnion_coe_set _fvar.684489 fun i => i) (Eq.trans (Eq.trans (congrArg Set.iUnion (funext fun i => Set.iUnion_congr_Prop (Iff.of_eq (Eq.refl (i _fvar.684489))) fun x => Eq.refl i)) (Set.iUnion_coe_set _fvar.549299 fun i => (_ : i _fvar.684489), i)) (congrArg Set.iUnion (funext fun i => Set.iUnion_congr_Prop (Iff.of_eq (Eq.refl (i _fvar.549299))) fun x => Set.iUnion_congr_Prop (Iff.of_eq (Eq.refl (i, (Iff.of_eq (Eq.refl (i _fvar.549299))).mpr (i _fvar.549299) (i _fvar.549299) x _fvar.684489))) fun x => Eq.refl i))))) Set.mem_iUnion._simp_1) (congrArg Exists (funext fun i => Eq.trans Set.mem_iUnion._simp_1 (Eq.trans (propext (exists_prop_congr (fun h => Iff.of_eq (Eq.trans Set.mem_iUnion._simp_1 exists_prop._simp_1)) (Iff.of_eq (Eq.refl (i _fvar.549299))))) exists_and_right._simp_1))))) (Exists.intro (↑_fvar.557231) (Chapter8.WellFoundedLT.partialOrder._proof_7 _fvar.548712 _fvar.551104 _fvar.551527 _fvar.551760 _fvar.557581 _fvar.664494 _fvar.684711 _fvar.685361 _fvar.685636))hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => sorryhtotal:Chapter8.IsTotal _fvar.908527 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)A: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₀ xa, haY {x | x', x = x'}; All goals completed! 🐙) X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633A: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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633A: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, hbYhbY_infty:b Y_inftyhbA:b, A x, IsMin x X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633A: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, hbYhbY_infty:b Y_inftyhbA:b, A x₀ A, x A, x₀ x X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633A: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, hbYhbY_infty:b Y_inftyhbA:b, A x A, b, hbY_infty x; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633A: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, hbYhbY_infty:b Y_inftyhbA:b, Ax:Xhx:x Y_inftyhxA:x, hx Ab, hbY_infty x, hx X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633A: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, hbYhbY_infty:b Y_inftyhbA:b, Ax:Xhx✝:x Y_inftyhxA:x, hx✝ Ahx: i, (∃ (x : i Ω₀), i, Ω) x ib x; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633A: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, hbYhbY_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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hs: (Y : _fvar.549299), Chapter8.IsStrictUpperBound (↑Y) (@_fvar.551233 Y) := fun Y => Exists.choose_spec (@_fvar.551104 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y))hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633hwell:WellFoundedLT _fvar.908527 := ?_mvar.1053094hY_inftyΩ₀:_fvar.908527 _fvar.549299 := ?_mvar.1270591sY_infty:_fvar.548710 := @_fvar.551233 _fvar.908527, _fvar.1270592False 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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633hwell:WellFoundedLT _fvar.908527 := ?_mvar.1053094hY_inftyΩ₀:_fvar.908527 _fvar.549299 := ?_mvar.1270591sY_infty:_fvar.548710 := @_fvar.551233 _fvar.908527, _fvar.1270592hYs_total:Chapter8.IsTotal (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271132hYs_well:WellFoundedLT (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271425hYs_mem:_fvar.548712 _fvar.908527 {_fvar.1270609} := ?_mvar.1271571hYs_min: x _fvar.908527 {_fvar.1270609}, _fvar.548712 x := ?_mvar.1271740hYs_Ω₀:_fvar.908527 {_fvar.1270609} _fvar.549299 := ?_mvar.1271888hs:IsStrictUpperBound (↑Y_infty, hY_inftyΩ₀) (s Y_infty, hY_inftyΩ₀)False X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633hwell:WellFoundedLT _fvar.908527 := ?_mvar.1053094hY_inftyΩ₀:_fvar.908527 _fvar.549299 := ?_mvar.1270591sY_infty:_fvar.548710 := @_fvar.551233 _fvar.908527, _fvar.1270592hYs_total:Chapter8.IsTotal (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271132hYs_well:WellFoundedLT (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271425hYs_mem:_fvar.548712 _fvar.908527 {_fvar.1270609} := ?_mvar.1271571hYs_min: x _fvar.908527 {_fvar.1270609}, _fvar.548712 x := ?_mvar.1271740hYs_Ω₀:_fvar.908527 {_fvar.1270609} _fvar.549299 := ?_mvar.1271888hs: 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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633hwell:WellFoundedLT _fvar.908527 := ?_mvar.1053094hY_inftyΩ₀:_fvar.908527 _fvar.549299 := ?_mvar.1270591sY_infty:_fvar.548710 := @_fvar.551233 _fvar.908527, _fvar.1270592hYs_total:Chapter8.IsTotal (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271132hYs_well:WellFoundedLT (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271425hYs_mem:_fvar.548712 _fvar.908527 {_fvar.1270609} := ?_mvar.1271571hYs_min: x _fvar.908527 {_fvar.1270609}, _fvar.548712 x := ?_mvar.1271740hYs_Ω₀:_fvar.908527 {_fvar.1270609} _fvar.549299 := ?_mvar.1271888hs: y Y_infty, y < s Y_infty, hY_inftyΩ₀ (x : X), x insert sY_infty Y_infty ¬x = x₀ x = s (F insert sY_infty Y_infty, x) X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633hwell:WellFoundedLT _fvar.908527 := ?_mvar.1053094hY_inftyΩ₀:_fvar.908527 _fvar.549299 := ?_mvar.1270591sY_infty:_fvar.548710 := @_fvar.551233 _fvar.908527, _fvar.1270592hYs_total:Chapter8.IsTotal (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271132hYs_well:WellFoundedLT (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271425hYs_mem:_fvar.548712 _fvar.908527 {_fvar.1270609} := ?_mvar.1271571hYs_min: x _fvar.908527 {_fvar.1270609}, _fvar.548712 x := ?_mvar.1271740hYs_Ω₀:_fvar.908527 {_fvar.1270609} _fvar.549299 := ?_mvar.1271888hs: 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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633hwell:WellFoundedLT _fvar.908527 := ?_mvar.1053094hY_inftyΩ₀:_fvar.908527 _fvar.549299 := ?_mvar.1270591sY_infty:_fvar.548710 := @_fvar.551233 _fvar.908527, _fvar.1270592hYs_total:Chapter8.IsTotal (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271132hYs_well:WellFoundedLT (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271425hYs_mem:_fvar.548712 _fvar.908527 {_fvar.1270609} := ?_mvar.1271571hYs_min: x _fvar.908527 {_fvar.1270609}, _fvar.548712 x := ?_mvar.1271740hYs_Ω₀:_fvar.908527 {_fvar.1270609} _fvar.549299 := ?_mvar.1271888hs: y Y_infty, y < s Y_infty, hY_inftyΩ₀x:Xhxx₀:¬x = x₀hx:x Y_inftyx = s (F insert sY_infty Y_infty, x) X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633hwell:WellFoundedLT _fvar.908527 := ?_mvar.1053094hY_inftyΩ₀:_fvar.908527 _fvar.549299 := ?_mvar.1270591sY_infty:_fvar.548710 := @_fvar.551233 _fvar.908527, _fvar.1270592hYs_total:Chapter8.IsTotal (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271132hYs_well:WellFoundedLT (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271425hYs_mem:_fvar.548712 _fvar.908527 {_fvar.1270609} := ?_mvar.1271571hYs_min: x _fvar.908527 {_fvar.1270609}, _fvar.548712 x := ?_mvar.1271740hYs_Ω₀:_fvar.908527 {_fvar.1270609} _fvar.549299 := ?_mvar.1271888hs: 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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633hwell:WellFoundedLT _fvar.908527 := ?_mvar.1053094hY_inftyΩ₀:_fvar.908527 _fvar.549299 := ?_mvar.1270591sY_infty:_fvar.548710 := @_fvar.551233 _fvar.908527, _fvar.1270592hYs_total:Chapter8.IsTotal (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271132hYs_well:WellFoundedLT (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271425hYs_mem:_fvar.548712 _fvar.908527 {_fvar.1270609} := ?_mvar.1271571hYs_min: x _fvar.908527 {_fvar.1270609}, _fvar.548712 x := ?_mvar.1271740hYs_Ω₀:_fvar.908527 {_fvar.1270609} _fvar.549299 := ?_mvar.1271888hs: 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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633hwell:WellFoundedLT _fvar.908527 := ?_mvar.1053094hY_inftyΩ₀:_fvar.908527 _fvar.549299 := ?_mvar.1270591sY_infty:_fvar.548710 := @_fvar.551233 _fvar.908527, _fvar.1270592hYs_total:Chapter8.IsTotal (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271132hYs_well:WellFoundedLT (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271425hYs_mem:_fvar.548712 _fvar.908527 {_fvar.1270609} := ?_mvar.1271571hYs_min: x _fvar.908527 {_fvar.1270609}, _fvar.548712 x := ?_mvar.1271740hYs_Ω₀:_fvar.908527 {_fvar.1270609} _fvar.549299 := ?_mvar.1271888hs: 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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633hwell:WellFoundedLT _fvar.908527 := ?_mvar.1053094hY_inftyΩ₀:_fvar.908527 _fvar.549299 := ?_mvar.1270591sY_infty:_fvar.548710 := @_fvar.551233 _fvar.908527, _fvar.1270592hYs_total:Chapter8.IsTotal (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271132hYs_well:WellFoundedLT (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271425hYs_mem:_fvar.548712 _fvar.908527 {_fvar.1270609} := ?_mvar.1271571hYs_min: x _fvar.908527 {_fvar.1270609}, _fvar.548712 x := ?_mvar.1271740hYs_Ω₀:_fvar.908527 {_fvar.1270609} _fvar.549299 := ?_mvar.1271888hs: 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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633hwell:WellFoundedLT _fvar.908527 := ?_mvar.1053094hY_inftyΩ₀:_fvar.908527 _fvar.549299 := ?_mvar.1270591sY_infty:_fvar.548710 := @_fvar.551233 _fvar.908527, _fvar.1270592hYs_total:Chapter8.IsTotal (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271132hYs_well:WellFoundedLT (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271425hYs_mem:_fvar.548712 _fvar.908527 {_fvar.1270609} := ?_mvar.1271571hYs_min: x _fvar.908527 {_fvar.1270609}, _fvar.548712 x := ?_mvar.1271740hYs_Ω₀:_fvar.908527 {_fvar.1270609} _fvar.549299 := ?_mvar.1271888hs: 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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633hwell:WellFoundedLT _fvar.908527 := ?_mvar.1053094hY_inftyΩ₀:_fvar.908527 _fvar.549299 := ?_mvar.1270591sY_infty:_fvar.548710 := @_fvar.551233 _fvar.908527, _fvar.1270592hYs_total:Chapter8.IsTotal (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271132hYs_well:WellFoundedLT (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271425hYs_mem:_fvar.548712 _fvar.908527 {_fvar.1270609} := ?_mvar.1271571hYs_min: x _fvar.908527 {_fvar.1270609}, _fvar.548712 x := ?_mvar.1271740hYs_Ω₀:_fvar.908527 {_fvar.1270609} _fvar.549299 := ?_mvar.1271888hs: 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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633hwell:WellFoundedLT _fvar.908527 := ?_mvar.1053094hY_inftyΩ₀:_fvar.908527 _fvar.549299 := ?_mvar.1270591sY_infty:_fvar.548710 := @_fvar.551233 _fvar.908527, _fvar.1270592hYs_total:Chapter8.IsTotal (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271132hYs_well:WellFoundedLT (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271425hYs_mem:_fvar.548712 _fvar.908527 {_fvar.1270609} := ?_mvar.1271571hYs_min: x _fvar.908527 {_fvar.1270609}, _fvar.548712 x := ?_mvar.1271740hYs_Ω₀:_fvar.908527 {_fvar.1270609} _fvar.549299 := ?_mvar.1271888hs: 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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633hwell:WellFoundedLT _fvar.908527 := ?_mvar.1053094hY_inftyΩ₀:_fvar.908527 _fvar.549299 := ?_mvar.1270591sY_infty:_fvar.548710 := @_fvar.551233 _fvar.908527, _fvar.1270592hYs_total:Chapter8.IsTotal (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271132hYs_well:WellFoundedLT (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271425hYs_mem:_fvar.548712 _fvar.908527 {_fvar.1270609} := ?_mvar.1271571hYs_min: x _fvar.908527 {_fvar.1270609}, _fvar.548712 x := ?_mvar.1271740hYs_Ω₀:_fvar.908527 {_fvar.1270609} _fvar.549299 := ?_mvar.1271888hs: 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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633hwell:WellFoundedLT _fvar.908527 := ?_mvar.1053094hY_inftyΩ₀:_fvar.908527 _fvar.549299 := ?_mvar.1270591sY_infty:_fvar.548710 := @_fvar.551233 _fvar.908527, _fvar.1270592hYs_total:Chapter8.IsTotal (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271132hYs_well:WellFoundedLT (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271425hYs_mem:_fvar.548712 _fvar.908527 {_fvar.1270609} := ?_mvar.1271571hYs_min: x _fvar.908527 {_fvar.1270609}, _fvar.548712 x := ?_mvar.1271740hYs_Ω₀:_fvar.908527 {_fvar.1270609} _fvar.549299 := ?_mvar.1271888hs: y Y_infty, y < s Y_infty, hY_inftyΩ₀hxx₀:¬sY_infty = x₀x✝:Xx✝ 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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633hwell:WellFoundedLT _fvar.908527 := ?_mvar.1053094hY_inftyΩ₀:_fvar.908527 _fvar.549299 := ?_mvar.1270591sY_infty:_fvar.548710 := @_fvar.551233 _fvar.908527, _fvar.1270592hYs_total:Chapter8.IsTotal (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271132hYs_well:WellFoundedLT (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271425hYs_mem:_fvar.548712 _fvar.908527 {_fvar.1270609} := ?_mvar.1271571hYs_min: x _fvar.908527 {_fvar.1270609}, _fvar.548712 x := ?_mvar.1271740hYs_Ω₀:_fvar.908527 {_fvar.1270609} _fvar.549299 := ?_mvar.1271888hs: y Y_infty, y < s Y_infty, hY_inftyΩ₀hxx₀:¬sY_infty = x₀x✝:Xx✝ Y_infty (x✝ = s Y_infty, hY_inftyΩ₀ x✝ Y_infty) x✝ < s Y_infty, hY_inftyΩ₀; X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633hwell:WellFoundedLT _fvar.908527 := ?_mvar.1053094hY_inftyΩ₀:_fvar.908527 _fvar.549299 := ?_mvar.1270591sY_infty:_fvar.548710 := @_fvar.551233 _fvar.908527, _fvar.1270592hYs_total:Chapter8.IsTotal (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271132hYs_well:WellFoundedLT (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271425hYs_mem:_fvar.548712 _fvar.908527 {_fvar.1270609} := ?_mvar.1271571hYs_min: x _fvar.908527 {_fvar.1270609}, _fvar.548712 x := ?_mvar.1271740hYs_Ω₀:_fvar.908527 {_fvar.1270609} _fvar.549299 := ?_mvar.1271888hs: y Y_infty, y < s Y_infty, hY_inftyΩ₀hxx₀:¬sY_infty = x₀x✝:Xx✝ Y_infty (x✝ = s Y_infty, hY_inftyΩ₀ x✝ Y_infty) x✝ < s Y_infty, hY_inftyΩ₀X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633hwell:WellFoundedLT _fvar.908527 := ?_mvar.1053094hY_inftyΩ₀:_fvar.908527 _fvar.549299 := ?_mvar.1270591sY_infty:_fvar.548710 := @_fvar.551233 _fvar.908527, _fvar.1270592hYs_total:Chapter8.IsTotal (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271132hYs_well:WellFoundedLT (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271425hYs_mem:_fvar.548712 _fvar.908527 {_fvar.1270609} := ?_mvar.1271571hYs_min: x _fvar.908527 {_fvar.1270609}, _fvar.548712 x := ?_mvar.1271740hYs_Ω₀:_fvar.908527 {_fvar.1270609} _fvar.549299 := ?_mvar.1271888hs: 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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633hwell:WellFoundedLT _fvar.908527 := ?_mvar.1053094hY_inftyΩ₀:_fvar.908527 _fvar.549299 := ?_mvar.1270591sY_infty:_fvar.548710 := @_fvar.551233 _fvar.908527, _fvar.1270592hYs_total:Chapter8.IsTotal (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271132hYs_well:WellFoundedLT (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271425hYs_mem:_fvar.548712 _fvar.908527 {_fvar.1270609} := ?_mvar.1271571hYs_min: x _fvar.908527 {_fvar.1270609}, _fvar.548712 x := ?_mvar.1271740hYs_Ω₀:_fvar.908527 {_fvar.1270609} _fvar.549299 := ?_mvar.1271888hs: y Y_infty, y < s Y_infty, hY_inftyΩ₀hxx₀:¬sY_infty = x₀x✝:Xx✝ 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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633hwell:WellFoundedLT _fvar.908527 := ?_mvar.1053094hY_inftyΩ₀:_fvar.908527 _fvar.549299 := ?_mvar.1270591sY_infty:_fvar.548710 := @_fvar.551233 _fvar.908527, _fvar.1270592hYs_total:Chapter8.IsTotal (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271132hYs_well:WellFoundedLT (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271425hYs_mem:_fvar.548712 _fvar.908527 {_fvar.1270609} := ?_mvar.1271571hYs_min: x _fvar.908527 {_fvar.1270609}, _fvar.548712 x := ?_mvar.1271740hYs_Ω₀:_fvar.908527 {_fvar.1270609} _fvar.549299 := ?_mvar.1271888hs: 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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633hwell:WellFoundedLT _fvar.908527 := ?_mvar.1053094hY_inftyΩ₀:_fvar.908527 _fvar.549299 := ?_mvar.1270591sY_infty:_fvar.548710 := @_fvar.551233 _fvar.908527, _fvar.1270592hYs_total:Chapter8.IsTotal (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271132hYs_well:WellFoundedLT (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271425hYs_mem:_fvar.548712 _fvar.908527 {_fvar.1270609} := ?_mvar.1271571hYs_min: x _fvar.908527 {_fvar.1270609}, _fvar.548712 x := ?_mvar.1271740hYs_Ω₀:_fvar.908527 {_fvar.1270609} _fvar.549299 := ?_mvar.1271888hs: y Y_infty, y < s Y_infty, hY_inftyΩ₀hxx₀:¬sY_infty = x₀x✝:Xright✝:x✝ < s Y_infty, hY_inftyΩ₀h✝:x✝ Y_inftyx✝ Y_infty X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633hwell:WellFoundedLT _fvar.908527 := ?_mvar.1053094hY_inftyΩ₀:_fvar.908527 _fvar.549299 := ?_mvar.1270591sY_infty:_fvar.548710 := @_fvar.551233 _fvar.908527, _fvar.1270592hYs_total:Chapter8.IsTotal (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271132hYs_well:WellFoundedLT (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271425hYs_mem:_fvar.548712 _fvar.908527 {_fvar.1270609} := ?_mvar.1271571hYs_min: x _fvar.908527 {_fvar.1270609}, _fvar.548712 x := ?_mvar.1271740hYs_Ω₀:_fvar.908527 {_fvar.1270609} _fvar.549299 := ?_mvar.1271888hs: 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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633hwell:WellFoundedLT _fvar.908527 := ?_mvar.1053094hY_inftyΩ₀:_fvar.908527 _fvar.549299 := ?_mvar.1270591sY_infty:_fvar.548710 := @_fvar.551233 _fvar.908527, _fvar.1270592hYs_total:Chapter8.IsTotal (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271132hYs_well:WellFoundedLT (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271425hYs_mem:_fvar.548712 _fvar.908527 {_fvar.1270609} := ?_mvar.1271571hYs_min: x _fvar.908527 {_fvar.1270609}, _fvar.548712 x := ?_mvar.1271740hYs_Ω₀:_fvar.908527 {_fvar.1270609} _fvar.549299 := ?_mvar.1271888hs: 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 _fvar.548710) := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:{_fvar.548712} _fvar.549299 := have htotal := of_eq_true (Eq.trans (forall_congr fun x => Eq.trans (forall_congr fun y => Eq.trans (congr (congrArg Or le_of_subsingleton._simp_1) le_of_subsingleton._simp_1) (or_self True)) (implies_true {_fvar.548712})) (implies_true {_fvar.548712})); let _lin := Chapter8.LinearOrder.mk htotal; @Eq.mpr ({_fvar.548712} _fvar.549299) (WellFoundedLT {_fvar.548712}) (id (Eq.trans (congr (congrArg And (eq_true htotal)) (Eq.trans (congrArg (And (WellFoundedLT {_fvar.548712})) (Eq.trans (congr (congrArg And (Eq.trans Set.mem_singleton_iff._simp_1 (eq_self _fvar.548712))) (Eq.trans (Eq.trans (forall_congr fun x => implies_congr Set.mem_singleton_iff._simp_1 (Eq.refl (_fvar.548712 x))) forall_eq._simp_1) (le_refl._simp_1 _fvar.548712))) (and_self True))) (and_true (WellFoundedLT {_fvar.548712})))) (true_and (WellFoundedLT {_fvar.548712})))) Chapter8.WellFoundedLT.ofFinitept:_fvar.549299 := {_fvar.548712}, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)F:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => of_eq_true (Eq.trans (congrArg (fun x_1 => x_1 = {y | y Y y < x}) (Eq.trans (congrArg (fun x_1 => x_1 Y x) (funext fun Y => funext fun x => dite_congr (Eq.trans (Set.mem_diff._simp_1 x) (congrArg (fun x_1 => x Y ¬x_1) Set.mem_singleton_iff._simp_1)) (fun h => Eq.refl {y | y Y y < x}, @_fvar.557581 (↑Y) (@Subtype.property (Set _fvar.548710) (fun x => x _fvar.549299) Y) x (Eq.mpr_prop (Eq.trans (Set.mem_diff._simp_1 x) (congrArg (fun x_1 => x Y ¬x_1) Set.mem_singleton_iff._simp_1)) h)) fun h => Eq.refl _fvar.557231)) (dite_cond_eq_true (Eq.trans (congr (congrArg And (eq_true (id (Eq.mp (Eq.trans (Set.mem_diff._simp_1 x) (congrArg (fun x_1 => x Y ¬x_1) Set.mem_singleton_iff._simp_1)) hxy)).1)) (Eq.trans (congrArg Not (eq_false (id (Eq.mp (Eq.trans (Set.mem_diff._simp_1 x) (congrArg (fun x_1 => x Y ¬x_1) Set.mem_singleton_iff._simp_1)) hxy)).2)) not_false_eq_true)) (and_self True))))) (eq_self {y | y Y y < x}))Ω:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := sorryex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => sorrythis:Chapter8.IsTotal _fvar.684489 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := @Eq.mpr (_fvar.548712 _fvar.908527) (∃ i, (∃ (x : i _fvar.549299), i, (Iff.of_eq (Eq.refl (i _fvar.549299))).mpr (i _fvar.549299) (i _fvar.549299) ((Iff.of_eq (Eq.refl (i _fvar.549299))).mpr (i _fvar.549299) (i _fvar.549299) x) _fvar.684489) _fvar.548712 i) (id (Eq.trans (Eq.trans (congrArg (fun x => _fvar.548712 x) (Eq.trans (Set.iUnion_coe_set _fvar.684489 fun i => i) (Eq.trans (Eq.trans (congrArg Set.iUnion (funext fun i => Set.iUnion_congr_Prop (Iff.of_eq (Eq.refl (i _fvar.684489))) fun x => Eq.refl i)) (Set.iUnion_coe_set _fvar.549299 fun i => (_ : i _fvar.684489), i)) (congrArg Set.iUnion (funext fun i => Set.iUnion_congr_Prop (Iff.of_eq (Eq.refl (i _fvar.549299))) fun x => Set.iUnion_congr_Prop (Iff.of_eq (Eq.refl (i, (Iff.of_eq (Eq.refl (i _fvar.549299))).mpr (i _fvar.549299) (i _fvar.549299) x _fvar.684489))) fun x => Eq.refl i))))) Set.mem_iUnion._simp_1) (congrArg Exists (funext fun i => Eq.trans Set.mem_iUnion._simp_1 (Eq.trans (propext (exists_prop_congr (fun h => Iff.of_eq (Eq.trans Set.mem_iUnion._simp_1 exists_prop._simp_1)) (Iff.of_eq (Eq.refl (i _fvar.549299))))) exists_and_right._simp_1))))) (Exists.intro (↑_fvar.557231) (Chapter8.WellFoundedLT.partialOrder._proof_7 _fvar.548712 _fvar.551104 _fvar.551527 _fvar.551760 _fvar.557581 _fvar.664494 _fvar.684711 _fvar.685361 _fvar.685636))hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => sorryhtotal:Chapter8.IsTotal _fvar.908527 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hwell:WellFoundedLT _fvar.908527 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hY_inftyΩ₀:_fvar.908527 _fvar.549299 := sorrysY_infty:_fvar.548710 := @_fvar.551233 _fvar.908527, _fvar.1270592hYs_total:Chapter8.IsTotal (_fvar.908527 {_fvar.1270609}) := sorryhYs_well:WellFoundedLT (_fvar.908527 {_fvar.1270609}) := sorryhYs_mem:_fvar.548712 _fvar.908527 {_fvar.1270609} := sorryhYs_min: x _fvar.908527 {_fvar.1270609}, _fvar.548712 x := sorryhYs_Ω₀:_fvar.908527 {_fvar.1270609} _fvar.549299 := @Eq.mpr (_fvar.908527 {_fvar.1270609} _fvar.549299) (∀ (x : _fvar.548710), x _fvar.908527 x = _fvar.1270609 _fvar.548712 x) (id (Eq.trans (congr (congrArg And (eq_true _fvar.1271133)) (Eq.trans (congr (congrArg And (eq_true _fvar.1271426)) (Eq.trans (congr (congrArg And (eq_true _fvar.1271572)) (forall_congr fun x => implies_congr (Eq.trans (Set.mem_union._simp_1 x _fvar.908527 {_fvar.1270609}) (congrArg (Or (x _fvar.908527)) Set.mem_singleton_iff._simp_1)) (Eq.refl (_fvar.548712 x)))) (true_and (∀ (x : _fvar.548710), x _fvar.908527 x = _fvar.1270609 _fvar.548712 x)))) (true_and (∀ (x : _fvar.548710), x _fvar.908527 x = _fvar.1270609 _fvar.548712 x)))) (true_and (∀ (x : _fvar.548710), x _fvar.908527 x = _fvar.1270609 _fvar.548712 x)))) _fvar.1271741hs: 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Ω₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633hwell:WellFoundedLT _fvar.908527 := ?_mvar.1053094hY_inftyΩ₀:_fvar.908527 _fvar.549299 := ?_mvar.1270591sY_infty:_fvar.548710 := @_fvar.551233 _fvar.908527, _fvar.1270592hYs_total:Chapter8.IsTotal (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271132hYs_well:WellFoundedLT (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271425hYs_mem:_fvar.548712 _fvar.908527 {_fvar.1270609} := ?_mvar.1271571hYs_min: x _fvar.908527 {_fvar.1270609}, _fvar.548712 x := ?_mvar.1271740hYs_Ω₀:_fvar.908527 {_fvar.1270609} _fvar.549299 := ?_mvar.1271888hs: y Y_infty, y < s Y_infty, hY_inftyΩ₀x:Xhxx₀:¬x = x₀hx:x Y_inftyhx':?_mvar.1306060 := _fvar.1287233x = s (F insert sY_infty Y_infty, x); X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633hwell:WellFoundedLT _fvar.908527 := ?_mvar.1053094hY_inftyΩ₀:_fvar.908527 _fvar.549299 := ?_mvar.1270591sY_infty:_fvar.548710 := @_fvar.551233 _fvar.908527, _fvar.1270592hYs_total:Chapter8.IsTotal (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271132hYs_well:WellFoundedLT (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271425hYs_mem:_fvar.548712 _fvar.908527 {_fvar.1270609} := ?_mvar.1271571hYs_min: x _fvar.908527 {_fvar.1270609}, _fvar.548712 x := ?_mvar.1271740hYs_Ω₀:_fvar.908527 {_fvar.1270609} _fvar.549299 := ?_mvar.1271888hs: y Y_infty, y < s Y_infty, hY_inftyΩ₀x:Xhxx₀:¬x = x₀hx:x Y_inftyhx': i, (∃ (x : i Ω₀), i, Ω) x ix = s (F insert sY_infty Y_infty, x); X:Typeinst✝:PartialOrder Xx₀:XΩ₀:?_mvar.548715 := {Y | Chapter8.IsTotal Y WellFoundedLT Y _fvar.548712 Y x Y, _fvar.548712 x}hs✝: Y Ω₀, x, IsStrictUpperBound Y xs:_fvar.549299 _fvar.548710 := fun Y => @Exists.choose _fvar.548710 (Chapter8.IsStrictUpperBound Y) (@_fvar.551104 Y )hpt:?_mvar.551696 _fvar.549299 := ?_mvar.551759pt:_fvar.549299 := ?_mvar.557220, _fvar.551760hF✝: {Y : Set _fvar.548710}, Y _fvar.549299 {x : _fvar.548710}, x Y \ {_fvar.548712} {y | y Y y < x} _fvar.549299 := fun {Y} hY {x} hxy => @?_mvar.557580 Y hY x hxyF:_fvar.549299 _fvar.548710 _fvar.549299 := fun Y x => if hxy : x Y \ {_fvar.548712} then {y | y Y y < x}, @_fvar.557581 Y x hxy else _fvar.557231hF: {Y : _fvar.549299} {x : _fvar.548710}, x Y \ {_fvar.548712} (@_fvar.654847 Y x) = {y | y Y y < x} := fun {Y} {x} hxy => @?_mvar.664493 Y x hxyΩ:Set _fvar.549299 := {Y | x Y \ {_fvar.548712}, x = @_fvar.551233 (@_fvar.654847 Y x)}:_fvar.557231 _fvar.684489 := ?_mvar.684710ex_8_5_13: {Y Y' : _fvar.684489}, x Y' \ Y, Chapter8.IsStrictUpperBound (↑Y) x := fun {Y Y'} x h => @?_mvar.685360 Y Y' x hthis:Chapter8.IsTotal _fvar.684489 := ?_mvar.685635Y_infty:Set _fvar.548710 := Y, Yhmem:_fvar.548712 _fvar.908527 := ?_mvar.908793hmin: {x : _fvar.548710}, x _fvar.908527 _fvar.548712 x := fun {x} hx => @?_mvar.952396 x hxhtotal:Chapter8.IsTotal _fvar.908527 := ?_mvar.952633hwell:WellFoundedLT _fvar.908527 := ?_mvar.1053094hY_inftyΩ₀:_fvar.908527 _fvar.549299 := ?_mvar.1270591sY_infty:_fvar.548710 := @_fvar.551233 _fvar.908527, _fvar.1270592hYs_total:Chapter8.IsTotal (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271132hYs_well:WellFoundedLT (_fvar.908527 {_fvar.1270609}) := ?_mvar.1271425hYs_mem:_fvar.548712 _fvar.908527 {_fvar.1270609} := ?_mvar.1271571hYs_min: x _fvar.908527 {_fvar.1270609}, _fvar.548712 x := ?_mvar.1271740hYs_Ω₀:_fvar.908527 {_fvar.1270609} _fvar.549299 := ?_mvar.1271888hs: