Documentation

Mathlib.Order.CompleteSublattice

Complete Sublattices #

This file defines complete sublattices. These are subsets of complete lattices which are closed under arbitrary suprema and infima. As a standard example one could take the complete sublattice of invariant submodules of some module with respect to a linear map.

Main definitions: #

structure CompleteSublattice (α : Type u_1) [CompleteLattice α] extends Sublattice :
Type u_1

A complete sublattice is a subset of a complete lattice that is closed under arbitrary suprema and infima.

  • carrier : Set α
  • supClosed' : SupClosed self.carrier
  • infClosed' : InfClosed self.carrier
  • sSupClosed' : ∀ ⦃s : Set α⦄, s self.carriersSup s self.carrier
  • sInfClosed' : ∀ ⦃s : Set α⦄, s self.carriersInf s self.carrier
Instances For
    theorem CompleteSublattice.sSupClosed' {α : Type u_1} [CompleteLattice α] (self : CompleteSublattice α) ⦃s : Set α :
    s self.carriersSup s self.carrier
    theorem CompleteSublattice.sInfClosed' {α : Type u_1} [CompleteLattice α] (self : CompleteSublattice α) ⦃s : Set α :
    s self.carriersInf s self.carrier
    def CompleteSublattice.mk' {α : Type u_1} [CompleteLattice α] (carrier : Set α) (sSupClosed' : ∀ ⦃s : Set α⦄, s carriersSup s carrier) (sInfClosed' : ∀ ⦃s : Set α⦄, s carriersInf s carrier) :

    To check that a subset is a complete sublattice, one does not need to check that it is closed under binary Sup since this follows from the stronger sSup condition. Likewise for infima.

    Equations
    • CompleteSublattice.mk' carrier sSupClosed' sInfClosed' = { carrier := carrier, supClosed' := , infClosed' := , sSupClosed' := sSupClosed', sInfClosed' := sInfClosed' }
    Instances For
      @[simp]
      theorem CompleteSublattice.mk'_carrier {α : Type u_1} [CompleteLattice α] (carrier : Set α) (sSupClosed' : ∀ ⦃s : Set α⦄, s carriersSup s carrier) (sInfClosed' : ∀ ⦃s : Set α⦄, s carriersInf s carrier) :
      (CompleteSublattice.mk' carrier sSupClosed' sInfClosed').carrier = carrier
      Equations
      • CompleteSublattice.instSetLike = { coe := fun (L : CompleteSublattice α) => L.carrier, coe_injective' := }
      instance CompleteSublattice.instBot {α : Type u_1} [CompleteLattice α] {L : CompleteSublattice α} :
      Bot L
      Equations
      • CompleteSublattice.instBot = { bot := , }
      instance CompleteSublattice.instTop {α : Type u_1} [CompleteLattice α] {L : CompleteSublattice α} :
      Top L
      Equations
      • CompleteSublattice.instTop = { top := , }
      Equations
      • CompleteSublattice.instSupSet = { sSup := fun (s : Set L) => sSup (Subtype.val '' s), }
      Equations
      • CompleteSublattice.instInfSet = { sInf := fun (s : Set L) => sInf (Subtype.val '' s), }
      theorem CompleteSublattice.sSupClosed {α : Type u_1} [CompleteLattice α] {L : CompleteSublattice α} {s : Set α} (h : s L) :
      sSup s L
      theorem CompleteSublattice.sInfClosed {α : Type u_1} [CompleteLattice α] {L : CompleteSublattice α} {s : Set α} (h : s L) :
      sInf s L
      @[simp]
      @[simp]
      @[simp]
      theorem CompleteSublattice.coe_sSup {α : Type u_1} [CompleteLattice α] {L : CompleteSublattice α} (S : Set L) :
      (sSup S) = sSup {x : α | sS, s = x}
      theorem CompleteSublattice.coe_sSup' {α : Type u_1} [CompleteLattice α] {L : CompleteSublattice α} (S : Set L) :
      (sSup S) = NS, N
      @[simp]
      theorem CompleteSublattice.coe_sInf {α : Type u_1} [CompleteLattice α] {L : CompleteSublattice α} (S : Set L) :
      (sInf S) = sInf {x : α | sS, s = x}
      theorem CompleteSublattice.coe_sInf' {α : Type u_1} [CompleteLattice α] {L : CompleteSublattice α} (S : Set L) :
      (sInf S) = NS, N
      Equations
      • CompleteSublattice.instSupSubtypeMem = Sublattice.instSupCoe
      Equations
      • CompleteSublattice.instInfSubtypeMem = Sublattice.instInfCoe
      Equations

      The push forward of a complete sublattice under a complete lattice hom is a complete sublattice.

      Equations
      • CompleteSublattice.map f L = { carrier := f '' L, supClosed' := , infClosed' := , sSupClosed' := , sInfClosed' := }
      Instances For
        @[simp]
        theorem CompleteSublattice.map_carrier {α : Type u_1} {β : Type u_2} [CompleteLattice α] [CompleteLattice β] (f : CompleteLatticeHom α β) (L : CompleteSublattice α) :
        (CompleteSublattice.map f L).carrier = f '' L
        @[simp]
        theorem CompleteSublattice.mem_map {α : Type u_1} {β : Type u_2} [CompleteLattice α] [CompleteLattice β] (f : CompleteLatticeHom α β) {L : CompleteSublattice α} {b : β} :
        b CompleteSublattice.map f L aL, f a = b

        The pull back of a complete sublattice under a complete lattice hom is a complete sublattice.

        Equations
        Instances For
          @[simp]
          theorem CompleteSublattice.comap_carrier {α : Type u_1} {β : Type u_2} [CompleteLattice α] [CompleteLattice β] (f : CompleteLatticeHom α β) (L : CompleteSublattice β) :
          (CompleteSublattice.comap f L).carrier = f ⁻¹' L
          @[simp]
          theorem CompleteSublattice.mem_comap {α : Type u_1} {β : Type u_2} [CompleteLattice α] [CompleteLattice β] (f : CompleteLatticeHom α β) {L : CompleteSublattice β} {a : α} :
          theorem CompleteSublattice.disjoint_iff {α : Type u_1} [CompleteLattice α] {L : CompleteSublattice α} {a : L} {b : L} :
          Disjoint a b Disjoint a b
          theorem CompleteSublattice.codisjoint_iff {α : Type u_1} [CompleteLattice α] {L : CompleteSublattice α} {a : L} {b : L} :
          Codisjoint a b Codisjoint a b
          theorem CompleteSublattice.isCompl_iff {α : Type u_1} [CompleteLattice α] {L : CompleteSublattice α} {a : L} {b : L} :
          IsCompl a b IsCompl a b
          theorem CompleteSublattice.isComplemented_iff {α : Type u_1} [CompleteLattice α] {L : CompleteSublattice α} :
          ComplementedLattice L aL, bL, IsCompl a b
          Equations
          def CompleteSublattice.copy {α : Type u_1} [CompleteLattice α] (L : CompleteSublattice α) (s : Set α) (hs : s = L) :

          Copy of a complete sublattice with a new carrier equal to the old one. Useful to fix definitional equalities.

          Equations
          Instances For
            @[simp]
            theorem CompleteSublattice.coe_copy {α : Type u_1} [CompleteLattice α] (L : CompleteSublattice α) (s : Set α) (hs : s = L) :
            (L.copy s hs) = s
            theorem CompleteSublattice.copy_eq {α : Type u_1} [CompleteLattice α] (L : CompleteSublattice α) (s : Set α) (hs : s = L) :
            L.copy s hs = L

            The range of a CompleteLatticeHom is a CompleteSublattice.

            See Note [range copy pattern].

            Equations
            Instances For
              theorem CompleteLatticeHom.range_coe {α : Type u_1} {β : Type u_2} [CompleteLattice α] [CompleteLattice β] (f : CompleteLatticeHom α β) :
              f.range = Set.range f
              noncomputable def CompleteLatticeHom.toOrderIsoRangeOfInjective {α : Type u_1} {β : Type u_2} [CompleteLattice α] [CompleteLattice β] (f : CompleteLatticeHom α β) (hf : Function.Injective f) :
              α ≃o f.range

              We can regard a complete lattice homomorphism as an order equivalence to its range.

              Equations
              • f.toOrderIsoRangeOfInjective hf = OrderEmbedding.orderIso
              Instances For
                @[simp]
                theorem CompleteLatticeHom.toOrderIsoRangeOfInjective_apply {α : Type u_1} {β : Type u_2} [CompleteLattice α] [CompleteLattice β] (f : CompleteLatticeHom α β) (hf : Function.Injective f) (a : α) :
                (f.toOrderIsoRangeOfInjective hf) a = f a,