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
    @[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
    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' = { toSublattice := { carrier := carrier, supClosed' := , infClosed' := }, sSupClosed' := sSupClosed', sInfClosed' := sInfClosed' }
    Instances For
      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 := { val := , property := } }
      instance CompleteSublattice.instTop {α : Type u_1} [CompleteLattice α] {L : CompleteSublattice α} :
      Top L
      Equations
      • CompleteSublattice.instTop = { top := { val := , property := } }
      Equations
      • CompleteSublattice.instSupSet = { sSup := fun (s : Set L) => { val := sSup (Subtype.val '' s), property := } }
      Equations
      • CompleteSublattice.instInfSet = { sInf := fun (s : Set L) => { val := sInf (Subtype.val '' s), property := } }
      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 : α | ∃ s ∈ S, s = x}
      theorem CompleteSublattice.coe_sSup' {α : Type u_1} [CompleteLattice α] {L : CompleteSublattice α} (S : Set L) :
      (sSup S) = ⨆ N ∈ S, N
      @[simp]
      theorem CompleteSublattice.coe_sInf {α : Type u_1} [CompleteLattice α] {L : CompleteSublattice α} (S : Set L) :
      (sInf S) = sInf {x : α | ∃ s ∈ S, s = x}
      theorem CompleteSublattice.coe_sInf' {α : Type u_1} [CompleteLattice α] {L : CompleteSublattice α} (S : Set L) :
      (sInf S) = ⨅ N ∈ S, N
      Equations
      @[simp]
      theorem CompleteSublattice.map_carrier {α : Type u_1} {β : Type u_2} [CompleteLattice α] [CompleteLattice β] (f : CompleteLatticeHom α β) (L : CompleteSublattice α) :
      (CompleteSublattice.map f L).carrier = f '' L

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

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

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

        Equations
        • CompleteSublattice.comap f L = { toSublattice := { carrier := f ⁻¹' L, supClosed' := , infClosed' := }, sSupClosed' := , sInfClosed' := }
        Instances For
          @[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, ∃ b ∈ L, 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) :
            theorem CompleteSublattice.copy_eq {α : Type u_1} [CompleteLattice α] (L : CompleteSublattice α) (s : Set α) (hs : s = L) :

            The range of a CompleteLatticeHom is a CompleteSublattice.

            See Note [range copy pattern].

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

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

              Equations
              Instances For