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.carrier → sSup s ∈ self.carrier
  • sInfClosed' : ∀ ⦃s : Set α⦄, s ⊆ self.carrier → sInf s ∈ self.carrier
Instances For
    @[simp]
    theorem CompleteSublattice.mk'_carrier {α : Type u_1} [CompleteLattice α] (carrier : Set α) (sSupClosed' : ∀ ⦃s : Set α⦄, s ⊆ carrier → sSup s ∈ carrier) (sInfClosed' : ∀ ⦃s : Set α⦄, s ⊆ carrier → sInf s ∈ carrier) :
    (CompleteSublattice.mk' carrier sSupClosed' sInfClosed').carrier = carrier
    def CompleteSublattice.mk' {α : Type u_1} [CompleteLattice α] (carrier : Set α) (sSupClosed' : ∀ ⦃s : Set α⦄, s ⊆ carrier → sSup s ∈ carrier) (sInfClosed' : ∀ ⦃s : Set α⦄, s ⊆ carrier → sInf 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 ↔ ∀ a ∈ L, ∃ 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