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.

Instances For
    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.instMaxSubtypeMem = Sublattice.instSupCoe
      Equations
      • CompleteSublattice.instMinSubtypeMem = Sublattice.instInfCoe
      Equations

      The natural complete lattice hom from a complete sublattice to the original lattice.

      Equations
      • L.subtype = { toFun := Subtype.val, map_sInf' := , map_sSup' := }
      Instances For
        @[simp]
        theorem CompleteSublattice.coe_subtype {α : Type u_1} [CompleteLattice α] (L : CompleteSublattice α) :
        L.subtype = Subtype.val
        theorem CompleteSublattice.subtype_apply {α : Type u_1} [CompleteLattice α] (L : Sublattice α) (a : L) :
        L.subtype a = a

        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 b : L} :
            Disjoint a b Disjoint a b
            theorem CompleteSublattice.codisjoint_iff {α : Type u_1} [CompleteLattice α] {L : CompleteSublattice α} {a b : L} :
            Codisjoint a b Codisjoint a b
            theorem CompleteSublattice.isCompl_iff {α : Type u_1} [CompleteLattice α] {L : CompleteSublattice α} {a 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,