Documentation

Mathlib.Order.Partition.Basic

Partitions #

A Partition of an element a in a complete lattice is an independent family of nontrivial elements whose supremum is a.

An important special case is where s : Set α, where a Partition s corresponds to a partition of the elements of s into a family of nonempty sets. This is equivalent to a transitive and symmetric binary relation r : α → α → Prop where s is the set of all x for which r x x.

Partitions are ordered by refinement: P ≤ Q if every part of P is less than or equal to a part of Q.

Main definitions #

TODO #

structure Partition {α : Type u_1} [CompleteLattice α] (s : α) :
Type u_1

A Partition of an element s of a CompleteLattice is a collection of independent nontrivial elements whose supremum is s.

Instances For
    @[implicit_reducible]
    instance Partition.instSetLike {α : Type u_1} [CompleteLattice α] {s : α} :
    Equations
    def Partition.Simps.coe {α : Type u_1} [CompleteLattice α] {s : α} (P : Partition s) :
    Set α

    See Note [custom simps projection].

    Equations
    Instances For
      @[simp]
      theorem Partition.coe_parts {α : Type u_1} {s : α} [CompleteLattice α] {P : Partition s} :
      P.parts = P
      theorem Partition.ext {α : Type u_1} {s : α} [CompleteLattice α] {P Q : Partition s} (hP : ∀ (x : α), x P x Q) :
      P = Q
      theorem Partition.ext_iff {α : Type u_1} {s : α} [CompleteLattice α] {P Q : Partition s} :
      P = Q ∀ (x : α), x P x Q
      @[simp]
      theorem Partition.sSupIndep {α : Type u_1} {s : α} [CompleteLattice α] (P : Partition s) :
      theorem Partition.disjoint {α : Type u_1} {s x y : α} [CompleteLattice α] {P : Partition s} (hx : x P) (hy : y P) (hxy : x y) :
      theorem Partition.pairwiseDisjoint {α : Type u_1} {s : α} [CompleteLattice α] {P : Partition s} :
      theorem Partition.eq_or_disjoint {α : Type u_1} {s x y : α} [CompleteLattice α] {P : Partition s} (hx : x P) (hy : y P) :
      x = y Disjoint x y
      theorem Partition.eq_of_not_disjoint {α : Type u_1} {s x y : α} [CompleteLattice α] {P : Partition s} (hx : x P) (hy : y P) (hxy : ¬Disjoint x y) :
      x = y
      @[simp]
      theorem Partition.sSup_eq {α : Type u_1} {s : α} [CompleteLattice α] (P : Partition s) :
      sSup P = s
      @[simp]
      theorem Partition.iSup_eq {α : Type u_1} {s : α} [CompleteLattice α] (P : Partition s) :
      xP, x = s
      theorem Partition.le_of_mem {α : Type u_1} {s x : α} [CompleteLattice α] (P : Partition s) (hx : x P) :
      x s
      theorem Partition.parts_nonempty {α : Type u_1} {s : α} [CompleteLattice α] (P : Partition s) (hs : s ) :
      (↑P).Nonempty
      @[simp]
      theorem Partition.bot_notMem {α : Type u_1} {s : α} [CompleteLattice α] (P : Partition s) :
      P
      theorem Partition.ne_bot_of_mem {α : Type u_1} {s x : α} [CompleteLattice α] {P : Partition s} (hx : x P) :
      theorem Partition.bot_lt_of_mem {α : Type u_1} {s x : α} [CompleteLattice α] {P : Partition s} (hx : x P) :
      < x
      def Partition.copy {α : Type u_1} {s t : α} [CompleteLattice α] (P : Partition s) (hst : s = t) :

      Convert a Partition s into a Partition t via an equality s = t.

      Equations
      • P.copy hst = { parts := P, sSupIndep' := , bot_notMem' := , sSup_eq' := }
      Instances For
        @[simp]
        theorem Partition.coe_copy {α : Type u_1} {s t : α} [CompleteLattice α] (P : Partition s) (hst : s = t) :
        (P.copy hst) = P
        @[simp]
        theorem Partition.mem_copy_iff {α : Type u_1} {s t x : α} [CompleteLattice α] {P : Partition s} (hst : s = t) :
        x P.copy hst x P
        def Partition.partscopyEquiv {α : Type u_1} {s t : α} [CompleteLattice α] (P : Partition s) (hst : s = t) :
        (P.copy hst) P

        The natural equivalence between the subtype of parts and the subtype of parts of a copy.

        Equations
        Instances For
          @[simp]
          theorem Partition.partscopyEquiv_symm_apply_coe {α : Type u_1} {s t : α} [CompleteLattice α] (P : Partition s) (hst : s = t) (b : { b : α // (fun (x : α) => x P) b }) :
          ((P.partscopyEquiv hst).symm b) = b
          @[simp]
          theorem Partition.partscopyEquiv_apply_coe {α : Type u_1} {s t : α} [CompleteLattice α] (P : Partition s) (hst : s = t) (a : { a : α // (fun (x : α) => x (P.copy hst)) a }) :
          ((P.partscopyEquiv hst) a) = a
          def Partition.removeBot {α : Type u_1} {s : α} [CompleteLattice α] (P : Set α) (indep : _root_.sSupIndep P) (sSup_eq : sSup P = s) :

          A constructor for Partition s that removes from the set of parts.

          Equations
          Instances For
            @[simp]
            theorem Partition.coe_removeBot {α : Type u_1} {s : α} [CompleteLattice α] (P : Set α) (indep : _root_.sSupIndep P) (sSup_eq : sSup P = s) :
            (removeBot P indep sSup_eq) = P \ {}
            @[simp]
            theorem Partition.mem_removeBot {α : Type u_1} {s x : α} [CompleteLattice α] (P : Set α) (indep : _root_.sSupIndep P) (sSup_eq : sSup P = s) :
            x removeBot P indep sSup_eq x P x
            @[simp]
            theorem Partition.notMem_of_bot {α : Type u_1} [CompleteLattice α] (P : Partition ) (x : α) :
            xP
            @[implicit_reducible]

            There is a unique partition of .

            Equations
            theorem Partition.ne_bot_of_mem' {α : Type u_1} {s x : α} [CompleteLattice α] {P : Partition s} (hxP : x P) :
            @[implicit_reducible]

            Partitions on s are ordered by refinement: P ≤ Q if every part of P is contained in a part of Q.

            Equations
            theorem Partition.le_def {α : Type u_1} {s : α} [CompleteLattice α] {P Q : Partition s} :
            P Q xP, yQ, x y
            theorem Partition.exists_le_of_mem_le {α : Type u_1} {s x : α} [CompleteLattice α] {P Q : Partition s} (h : P Q) (hx : x P) :
            yQ, x y
            theorem Partition.existsUnique_of_mem_le {α : Type u_1} {s x : α} [CompleteLattice α] {P Q : Partition s} (h : P Q) (hx : x P) :
            ∃! y : α, y Q x y
            @[implicit_reducible]
            instance Partition.instOrderTop {α : Type u_1} {s : α} [CompleteLattice α] :

            The top partition of s is the partition with the single part s.

            Equations
            theorem Partition.top_def {α : Type u_1} {s : α} [CompleteLattice α] :
            = removeBot {s}
            @[simp]
            theorem Partition.parts_top {α : Type u_1} {s : α} [CompleteLattice α] (hs : s ) :
            = {s}
            @[simp]
            theorem Partition.mem_top_iff {α : Type u_1} {s : α} [CompleteLattice α] {a : α} :
            a a = s a
            theorem Partition.parts_top_subset {α : Type u_1} {s : α} [CompleteLattice α] :
            {s}