Documentation

Mathlib.Order.Ideal

Order ideals, cofinal sets, and the Rasiowa–Sikorski lemma #

Main definitions #

Throughout this file, P is at least a preorder, but some sections require more structure, such as a bottom element, a top element, or a join-semilattice structure.

References #

Note that for the Rasiowa–Sikorski lemma, Wikipedia uses the opposite ordering on P, in line with most presentations of forcing.

Tags #

ideal, cofinal, dense, countable, generic

structure Order.Ideal (P : Type u_2) [LE P] extends LowerSet P :
Type u_2

An ideal on an order P is a subset of P that is

  • nonempty
  • upward directed (any pair of elements in the ideal has an upper bound in the ideal)
  • downward closed (any element less than an element of the ideal is in the ideal).
Instances For
    structure Order.IsIdeal {P : Type u_2} [LE P] (I : Set P) :

    A subset of a preorder P is an ideal if it is

    • nonempty
    • upward directed (any pair of elements in the ideal has an upper bound in the ideal)
    • downward closed (any element less than an element of the ideal is in the ideal).
    Instances For
      theorem Order.isIdeal_iff {P : Type u_2} [LE P] (I : Set P) :
      IsIdeal I ↔ IsLowerSet I ∧ I.Nonempty ∧ DirectedOn (fun (x1 x2 : P) => x1 ≀ x2) I
      def Order.IsIdeal.toIdeal {P : Type u_1} [LE P] {I : Set P} (h : IsIdeal I) :

      Create an element of type Order.Ideal from a set satisfying the predicate Order.IsIdeal.

      Equations
        Instances For
          instance Order.Ideal.instSetLike {P : Type u_1} [LE P] :
          Equations
            theorem Order.Ideal.ext {P : Type u_1} [LE P] {s t : Ideal P} :
            ↑s = ↑t β†’ s = t
            theorem Order.Ideal.ext_iff {P : Type u_1} [LE P] {s t : Ideal P} :
            s = t ↔ ↑s = ↑t
            @[simp]
            theorem Order.Ideal.carrier_eq_coe {P : Type u_1} [LE P] (s : Ideal P) :
            s.carrier = ↑s
            @[simp]
            theorem Order.Ideal.coe_toLowerSet {P : Type u_1} [LE P] (s : Ideal P) :
            ↑s.toLowerSet = ↑s
            theorem Order.Ideal.lower {P : Type u_1} [LE P] (s : Ideal P) :
            IsLowerSet ↑s
            theorem Order.Ideal.nonempty {P : Type u_1} [LE P] (s : Ideal P) :
            (↑s).Nonempty
            theorem Order.Ideal.directed {P : Type u_1} [LE P] (s : Ideal P) :
            DirectedOn (fun (x1 x2 : P) => x1 ≀ x2) ↑s
            theorem Order.Ideal.isIdeal {P : Type u_1} [LE P] (s : Ideal P) :
            IsIdeal ↑s
            theorem Order.Ideal.mem_compl_of_ge {P : Type u_1} [LE P] {I : Ideal P} {x y : P} :
            x ≀ y β†’ x ∈ (↑I)ᢜ β†’ y ∈ (↑I)ᢜ

            The partial ordering by subset inclusion, inherited from Set P.

            Equations
              theorem Order.Ideal.coe_subset_coe {P : Type u_1} [LE P] {s t : Ideal P} :
              ↑s βŠ† ↑t ↔ s ≀ t
              theorem Order.Ideal.coe_ssubset_coe {P : Type u_1} [LE P] {s t : Ideal P} :
              ↑s βŠ‚ ↑t ↔ s < t
              theorem Order.Ideal.mem_of_mem_of_le {P : Type u_1} [LE P] {x : P} {I J : Ideal P} :
              x ∈ I β†’ I ≀ J β†’ x ∈ J
              class Order.Ideal.IsProper {P : Type u_1} [LE P] (I : Ideal P) :

              A proper ideal is one that is not the whole set. Note that the whole set might not be an ideal.

              Instances
                theorem Order.Ideal.isProper_of_notMem {P : Type u_1} [LE P] {I : Ideal P} {p : P} (notMem : p βˆ‰ I) :
                class Order.Ideal.IsMaximal {P : Type u_1} [LE P] (I : Ideal P) extends I.IsProper :

                An ideal is maximal if it is maximal in the collection of proper ideals.

                Note that IsCoatom is less general because ideals only have a top element when P is directed and nonempty.

                Instances
                  theorem Order.Ideal.isMaximal_iff {P : Type u_1} [LE P] (I : Ideal P) :
                  I.IsMaximal ↔ I.IsProper ∧ βˆ€ ⦃J : Ideal P⦄, I < J β†’ ↑J = Set.univ
                  theorem Order.Ideal.inter_nonempty {P : Type u_1} [LE P] [IsCodirectedOrder P] (I J : Ideal P) :
                  (↑I ∩ ↑J).Nonempty

                  In a directed and nonempty order, the top ideal is univ.

                  Equations
                    @[simp]
                    theorem Order.Ideal.bot_mem {P : Type u_1} [LE P] [OrderBot P] (s : Ideal P) :
                    theorem Order.Ideal.IsProper.top_notMem {P : Type u_1} [LE P] [OrderTop P] {I : Ideal P} (hI : I.IsProper) :
                    ⊀ βˆ‰ I
                    def Order.Ideal.principal {P : Type u_1} [Preorder P] (p : P) :

                    The smallest ideal containing a given element.

                    Equations
                      Instances For
                        @[simp]
                        theorem Order.Ideal.principal_le_iff {P : Type u_1} [Preorder P] {I : Ideal P} {x : P} :

                        There is a bottom ideal when P has a bottom element.

                        Equations
                          theorem Order.Ideal.sup_mem {P : Type u_1} [SemilatticeSup P] {x y : P} {s : Ideal P} (hx : x ∈ s) (hy : y ∈ s) :
                          x βŠ” y ∈ s

                          A specific witness of I.directed when P has joins.

                          @[simp]
                          theorem Order.Ideal.sup_mem_iff {P : Type u_1} [SemilatticeSup P] {x y : P} {I : Ideal P} :
                          x βŠ” y ∈ I ↔ x ∈ I ∧ y ∈ I
                          @[simp]
                          theorem Order.Ideal.finsetSup_mem_iff {P : Type u_2} [SemilatticeSup P] [OrderBot P] (t : Ideal P) {ΞΉ : Type u_3} {f : ΞΉ β†’ P} {s : Finset ΞΉ} :
                          s.sup f ∈ t ↔ βˆ€ i ∈ s, f i ∈ t

                          The infimum of two ideals of a co-directed order is their intersection.

                          Equations

                            The supremum of two ideals of a co-directed order is the union of the down sets of the pointwise supremum of I and J.

                            Equations
                              @[simp]
                              theorem Order.Ideal.coe_sup {P : Type u_1} [SemilatticeSup P] [IsCodirectedOrder P] {s t : Ideal P} :
                              ↑(s βŠ” t) = {x : P | βˆƒ a ∈ s, βˆƒ b ∈ t, x ≀ a βŠ” b}
                              @[simp]
                              theorem Order.Ideal.coe_inf {P : Type u_1} [SemilatticeSup P] [IsCodirectedOrder P] {s t : Ideal P} :
                              ↑(s βŠ“ t) = ↑s ∩ ↑t
                              @[simp]
                              theorem Order.Ideal.mem_inf {P : Type u_1} [SemilatticeSup P] [IsCodirectedOrder P] {x : P} {I J : Ideal P} :
                              x ∈ I βŠ“ J ↔ x ∈ I ∧ x ∈ J
                              @[simp]
                              theorem Order.Ideal.mem_sup {P : Type u_1} [SemilatticeSup P] [IsCodirectedOrder P] {x : P} {I J : Ideal P} :
                              x ∈ I βŠ” J ↔ βˆƒ i ∈ I, βˆƒ j ∈ J, x ≀ i βŠ” j
                              theorem Order.Ideal.lt_sup_principal_of_notMem {P : Type u_1} [SemilatticeSup P] [IsCodirectedOrder P] {x : P} {I : Ideal P} (hx : x βˆ‰ I) :
                              I < I βŠ” principal x
                              @[simp]
                              theorem Order.Ideal.coe_sInf {P : Type u_1} [SemilatticeSup P] [OrderBot P] {S : Set (Ideal P)} :
                              ↑(sInf S) = β‹‚ s ∈ S, ↑s
                              @[simp]
                              theorem Order.Ideal.mem_sInf {P : Type u_1} [SemilatticeSup P] [OrderBot P] {x : P} {S : Set (Ideal P)} :
                              x ∈ sInf S ↔ βˆ€ s ∈ S, x ∈ s
                              theorem Order.Ideal.eq_sup_of_le_sup {P : Type u_1} [DistribLattice P] {I J : Ideal P} {x i j : P} (hi : i ∈ I) (hj : j ∈ J) (hx : x ≀ i βŠ” j) :
                              βˆƒ i' ∈ I, βˆƒ j' ∈ J, x = i' βŠ” j'
                              theorem Order.Ideal.coe_sup_eq {P : Type u_1} [DistribLattice P] {I J : Ideal P} :
                              ↑(I βŠ” J) = {x : P | βˆƒ i ∈ I, βˆƒ j ∈ J, x = i βŠ” j}
                              theorem Order.Ideal.IsProper.notMem_of_compl_mem {P : Type u_1} [BooleanAlgebra P] {x : P} {I : Ideal P} (hI : I.IsProper) (hxc : xᢜ ∈ I) :
                              x βˆ‰ I
                              theorem Order.Ideal.IsProper.notMem_or_compl_notMem {P : Type u_1} [BooleanAlgebra P] {x : P} {I : Ideal P} (hI : I.IsProper) :
                              x βˆ‰ I ∨ xᢜ βˆ‰ I
                              structure Order.Cofinal (P : Type u_2) [Preorder P] :
                              Type u_2

                              For a preorder P, Cofinal P is the type of subsets of P containing arbitrarily large elements. They are the dense sets in the topology whose open sets are terminal segments.

                              Instances For
                                noncomputable def Order.Cofinal.above {P : Type u_1} [Preorder P] (D : Cofinal P) (x : P) :
                                P

                                A (noncomputable) element of a cofinal set lying above a given element.

                                Equations
                                  Instances For
                                    theorem Order.Cofinal.above_mem {P : Type u_1} [Preorder P] (D : Cofinal P) (x : P) :
                                    theorem Order.Cofinal.le_above {P : Type u_1} [Preorder P] (D : Cofinal P) (x : P) :
                                    noncomputable def Order.sequenceOfCofinals {P : Type u_1} [Preorder P] (p : P) {ΞΉ : Type u_2} [Encodable ΞΉ] (π’Ÿ : ΞΉ β†’ Cofinal P) :
                                    β„• β†’ P

                                    Given a starting point, and a countable family of cofinal sets, this is an increasing sequence that intersects each cofinal set.

                                    Equations
                                      Instances For
                                        theorem Order.sequenceOfCofinals.monotone {P : Type u_1} [Preorder P] (p : P) {ΞΉ : Type u_2} [Encodable ΞΉ] (π’Ÿ : ΞΉ β†’ Cofinal P) :
                                        theorem Order.sequenceOfCofinals.encode_mem {P : Type u_1} [Preorder P] (p : P) {ΞΉ : Type u_2} [Encodable ΞΉ] (π’Ÿ : ΞΉ β†’ Cofinal P) (i : ΞΉ) :
                                        sequenceOfCofinals p π’Ÿ (Encodable.encode i + 1) ∈ π’Ÿ i
                                        def Order.idealOfCofinals {P : Type u_1} [Preorder P] (p : P) {ΞΉ : Type u_2} [Encodable ΞΉ] (π’Ÿ : ΞΉ β†’ Cofinal P) :

                                        Given an element p : P and a family π’Ÿ of cofinal subsets of a preorder P, indexed by a countable type, idealOfCofinals p π’Ÿ is an ideal in P which

                                        This proves the Rasiowa–Sikorski lemma.

                                        Equations
                                          Instances For
                                            theorem Order.mem_idealOfCofinals {P : Type u_1} [Preorder P] (p : P) {ΞΉ : Type u_2} [Encodable ΞΉ] (π’Ÿ : ΞΉ β†’ Cofinal P) :
                                            p ∈ idealOfCofinals p π’Ÿ
                                            theorem Order.cofinal_meets_idealOfCofinals {P : Type u_1} [Preorder P] (p : P) {ΞΉ : Type u_2} [Encodable ΞΉ] (π’Ÿ : ΞΉ β†’ Cofinal P) (i : ΞΉ) :
                                            βˆƒ x ∈ π’Ÿ i, x ∈ idealOfCofinals p π’Ÿ

                                            idealOfCofinals p π’Ÿ is π’Ÿ-generic.

                                            theorem Order.isIdeal_sUnion_of_directedOn {P : Type u_1} [Preorder P] {C : Set (Set P)} (hidl : βˆ€ I ∈ C, IsIdeal I) (hD : DirectedOn (fun (x1 x2 : Set P) => x1 βŠ† x2) C) (hNe : C.Nonempty) :

                                            A non-empty directed union of ideals of sets in a preorder is an ideal.

                                            theorem Order.isIdeal_sUnion_of_isChain {P : Type u_1} [Preorder P] {C : Set (Set P)} (hidl : βˆ€ I ∈ C, IsIdeal I) (hC : IsChain (fun (x1 x2 : Set P) => x1 βŠ† x2) C) (hNe : C.Nonempty) :

                                            A union of a nonempty chain of ideals of sets is an ideal.