Documentation

BourbakiLean2.Order.WellOrder

class WellOrder (α : Type u_1) extends TotalOrder α :
Type u_1
Instances
    noncomputable def WellOrder.least {α : Type u} [WellOrder α] {s : Set α} (h : s.Nonempty) :
    α
    Equations
    Instances For
      @[simp]
      theorem WellOrder.least_mem {α : Type u} [WellOrder α] {s : Set α} (h : s.Nonempty) :
      @[simp]
      theorem WellOrder.least_least {α : Type u} [WellOrder α] {s : Set α} (h : s.Nonempty) {x : s} :
      class IsWellOrder {α : Type u} (r : Relation α α) extends IsTotalOrder r :
      Instances
        instance instWellOrderRelAsLEOfIsWellOrder {α : Type u} {r : Relation α α} [inst : IsWellOrder r] :
        Equations
        theorem WellOrder.isWellOrder {α : Type u} [WellOrder α] :
        IsWellOrder {p : α × α | p.fst p.snd}
        noncomputable instance WellOrder.ne_has_least {α : Type u} [ne : Nonempty α] [WellOrder α] :
        Equations
        • WellOrder.ne_has_least = { least := .choose, least_le := }
        instance instWellOrderSubtype {α : Type u} [WellOrder α] {p : αProp} :
        WellOrder { x : α // p x }
        Equations
        Equations
        def totalOrder_of_exists_least {α : Type u} [PartialOrder α] (h : ∀ {s : Set α}, s.Nonempty∃ (a : α), ∃ (h : a s), Least a, h) :
        Equations
        Instances For
          def IsOrderIso.wellOrder {α : Type u} {β : Type u_1} [WellOrder α] [Preorder β] {f : αβ} (h : IsOrderIso f) :
          Equations
          Instances For
            def WellOrder.carry_bij {α : Type u} [WellOrder α] {β : Type u_1} (f : Function.Bijection α β) :
            Equations
            Instances For
              theorem WellOrder.hasLUB_of_bounded_above {α : Type u} [WellOrder α] {s : Set α} (h : s.BoundedAbove) :
              ∃ (x : α), IsLUB s x
              theorem WellOrder.isIio_of_downwardsClosed {α : Type u} [WellOrder α] {s : Set α} (h : s.IsDownwardsClosed) (h' : s Set.univ) :
              ∃ (x : α), s = Set.Iio x
              Equations
              Instances For
                Equations
                Instances For
                  Equations
                  • WellOrder.InitialSegment.univ = Set.univ,
                  Instances For
                    noncomputable def WellOrder.InitialSegment.succ_mk {α : Type u} [WellOrder α] (a : α) :
                    Equations
                    Instances For
                      theorem WellOrder.InitialSegment.mk_inj {α : Type u} [WellOrder α] :
                      Function.Injective WellOrder.InitialSegment.mk
                      @[simp]
                      theorem WellOrder.InitialSegment.univ_neq_mk {α : Type u} [WellOrder α] {a : α} :
                      WellOrder.InitialSegment.univ WellOrder.InitialSegment.mk a
                      Equations
                      @[simp]
                      theorem WellOrder.InitialSegment.le_univ {α : Type u} [WellOrder α] {a : WellOrder.InitialSegment α} :
                      a WellOrder.InitialSegment.univ
                      theorem WellOrder.InitialSegment.univ_greatest {α : Type u} [WellOrder α] :
                      Greatest WellOrder.InitialSegment.univ
                      theorem WellOrder.InitialSegment.mk_or_univ {α : Type u} [WellOrder α] (i : WellOrder.InitialSegment α) :
                      (∃ (a : α), i = WellOrder.InitialSegment.mk a) i = WellOrder.InitialSegment.univ
                      Equations
                      theorem WellOrder.InitialSegment.adjoinGreatest_iso_is_iso {α : Type u} [WellOrder α] :
                      IsOrderIso WellOrder.InitialSegment.adjoinGreatest_iso
                      Equations
                      • WellOrder.instInitialSegment = .wellOrder
                      instance WellOrder.instIsDownwardsClosedValSet {α : Type u} [WellOrder α] {a : WellOrder.InitialSegment α} :
                      a.val.IsDownwardsClosed
                      Equations
                      • =
                      theorem WellOrder.InitialSegment.induction {α : Type u} [WellOrder α] {p : WellOrder.InitialSegment αProp} {x : WellOrder.InitialSegment α} (h_union : ∀ (ι : Type u) (f : ιWellOrder.InitialSegment α), (∀ (i : ι), p (f i))p i : ι, (f i).val, ) (h_succ : ∀ (a : α), p (WellOrder.InitialSegment.mk a)p (WellOrder.InitialSegment.succ_mk a)) :
                      p x
                      theorem WellOrder.wf_induction {α : Type u} [WellOrder α] {p : αProp} (h : ∀ (x : α), (∀ (y : α), y < xp y)p x) (x : α) :
                      p x
                      theorem WellOrder.wf_recursion_all_eq {α : Type u} [WellOrder α] {p : αType u_1} {f g : (x : α) → p x} (h : (x : α) → ((y : α) → y < xp y)p x) (eqf : ∀ (x : α), (h x fun (y : α) (x : y < x) => f y) = f x) (eqg : ∀ (x : α), (h x fun (y : α) (x : y < x) => g y) = g x) :
                      f = g
                      theorem WellOrder.wf_recursion_exists {α : Type u} [WellOrder α] {p : αType u_1} (h : (x : α) → ((y : α) → y < xp y)p x) :
                      ∃ (f : (x : α) → p x), ∀ (x : α), f x = h x fun (y : α) (x : y < x) => f y
                      noncomputable def WellOrder.wf_recursion {α : Type u} [WellOrder α] {p : αType u_1} (h : (x : α) → ((y : α) → y < xp y)p x) (x : α) :
                      p x
                      Equations
                      Instances For
                        theorem WellOrder.wf_recursion_eq {α : Type u} [WellOrder α] {p : αType u_1} (h : (x : α) → ((y : α) → y < xp y)p x) (x : α) :
                        WellOrder.wf_recursion h x = h x fun (y : α) (x : y < x) => WellOrder.wf_recursion h y
                        @[simp]
                        theorem WellOrder.InitialSegment.lift_double_mono {α : Type u} [WellOrder α] {x : WellOrder.InitialSegment α} :
                        Monotone WellOrder.InitialSegment.lift_double
                        instance ZermeloTheorem.isWellOrderColimit {α : Type u} {ι : Type u_1} {x : ιSet α} [RightDirected (x '' Set.univ)] (h : Set.IsCovering x) {f : (i : ι) → Relation (x i) (x i)} [inst : ∀ (i : ι), IsWellOrder (f i)] (h' : ∀ (i j : ι) (sub : x i x j) (a b : α) (ha : a x i) (hb : b x i), (a, ha, b, hb) f i (a, , b, ) f j) (h'' : ∀ (i j : ι) (sub : x i x j) (a b : α) (ha : a x i) (hb : b x j), (b, hb, a, ) f jb x i) (h''' : ∀ (i j : ι), x i x j x j x i) :
                        IsWellOrder (h.glue_rel f)
                        Equations
                        • =
                        structure ZermeloTheorem.PartialWellOrder (α : Type u_1) (s : Set (Set α)) (p : sα) :
                        Type u_1
                        • domain : Set α
                        • order : WellOrder self.domain
                        • iic_mem : ∀ (x : self.domain), {x_1 : α | ∃ (a : self.domain), a Set.Iic x a.val = x_1} s
                        • iic_func : ∀ (x : self.domain), p {x_1 : α | ∃ (a : self.domain), a Set.Iic x a.val = x_1}, = x.val
                        • domain_not_mem : ¬self.domain s
                        Instances For
                          def ZermeloTheorem.make_partialWellOrder {α : Type u} {s : Set (Set α)} (p : sα) (hf : ∀ (a : s), ¬p a a.val) :
                          Equations
                          Instances For
                            Equations
                            Instances For