Documentation

Mathlib.Order.Hom.CompleteLattice

Complete lattice homomorphisms #

This file defines frame homomorphisms and complete lattice homomorphisms.

We use the FunLike design, so each type of morphisms has a companion typeclass which is meant to be satisfied by itself and all stricter types.

Types of morphisms #

Typeclasses #

Concrete homs #

TODO #

Frame homs are Heyting homs.

structure sSupHom (α : Type u_8) (β : Type u_9) [SupSet α] [SupSet β] :
Type (max u_8 u_9)
  • toFun : αβ

    The underlying function of a sSupHom.

  • map_sSup' : ∀ (s_1 : Set α), sSupHom.toFun s (sSup s_1) = sSup (s.toFun '' s_1)

    The proposition that a sSupHom commutes with arbitrary suprema/joins.

The type of -preserving functions from α to β.

Instances For
    structure sInfHom (α : Type u_8) (β : Type u_9) [InfSet α] [InfSet β] :
    Type (max u_8 u_9)

    The type of -preserving functions from α to β.

    Instances For
      structure FrameHom (α : Type u_8) (β : Type u_9) [CompleteLattice α] [CompleteLattice β] extends InfTopHom :
      Type (max u_8 u_9)

      The type of frame homomorphisms from α to β. They preserve finite meets and arbitrary joins.

      Instances For
        structure CompleteLatticeHom (α : Type u_8) (β : Type u_9) [CompleteLattice α] [CompleteLattice β] extends sInfHom :
        Type (max u_8 u_9)
        • toFun : αβ
        • map_sInf' : ∀ (s_1 : Set α), sInfHom.toFun s.tosInfHom (sInf s_1) = sInf (s.toFun '' s_1)
        • map_sSup' : ∀ (s_1 : Set α), sInfHom.toFun s.tosInfHom (sSup s_1) = sSup (s.toFun '' s_1)

          The proposition that complete lattice homomorphism commutes with arbitrary suprema/joins.

        The type of complete lattice homomorphisms from α to β.

        Instances For
          class sSupHomClass (F : Type u_8) (α : outParam (Type u_9)) (β : outParam (Type u_10)) [SupSet α] [SupSet β] extends FunLike :
          Type (max (max u_10 u_8) u_9)
          • coe : Fαβ
          • coe_injective' : Function.Injective FunLike.coe
          • map_sSup : ∀ (f : F) (s_1 : Set α), f (sSup s_1) = sSup (f '' s_1)

            The proposition that members of sSupHomClasss commute with arbitrary suprema/joins.

          sSupHomClass F α β states that F is a type of -preserving morphisms.

          You should extend this class when you extend sSupHom.

          Instances
            class sInfHomClass (F : Type u_8) (α : outParam (Type u_9)) (β : outParam (Type u_10)) [InfSet α] [InfSet β] extends FunLike :
            Type (max (max u_10 u_8) u_9)
            • coe : Fαβ
            • coe_injective' : Function.Injective FunLike.coe
            • map_sInf : ∀ (f : F) (s_1 : Set α), f (sInf s_1) = sInf (f '' s_1)

              The proposition that members of sInfHomClasss commute with arbitrary infima/meets.

            sInfHomClass F α β states that F is a type of -preserving morphisms.

            You should extend this class when you extend sInfHom.

            Instances
              class FrameHomClass (F : Type u_8) (α : outParam (Type u_9)) (β : outParam (Type u_10)) [CompleteLattice α] [CompleteLattice β] extends InfTopHomClass :
              Type (max (max u_10 u_8) u_9)
              • coe : Fαβ
              • coe_injective' : Function.Injective FunLike.coe
              • map_inf : ∀ (f : F) (a b : α), f (a b) = f a f b
              • map_top : ∀ (f : F), f =
              • map_sSup : ∀ (f : F) (s_1 : Set α), f (sSup s_1) = sSup (f '' s_1)

                The proposition that members of FrameHomClass commute with arbitrary suprema/joins.

              FrameHomClass F α β states that F is a type of frame morphisms. They preserve and .

              You should extend this class when you extend FrameHom.

              Instances
                class CompleteLatticeHomClass (F : Type u_8) (α : outParam (Type u_9)) (β : outParam (Type u_10)) [CompleteLattice α] [CompleteLattice β] extends sInfHomClass :
                Type (max (max u_10 u_8) u_9)

                CompleteLatticeHomClass F α β states that F is a type of complete lattice morphisms.

                You should extend this class when you extend CompleteLatticeHom.

                Instances
                  theorem map_iSup {F : Type u_1} {α : Type u_2} {β : Type u_3} {ι : Sort u_6} [SupSet α] [SupSet β] [sSupHomClass F α β] (f : F) (g : ια) :
                  f (⨆ (i : ι), g i) = ⨆ (i : ι), f (g i)
                  theorem map_iSup₂ {F : Type u_1} {α : Type u_2} {β : Type u_3} {ι : Sort u_6} {κ : ιSort u_7} [SupSet α] [SupSet β] [sSupHomClass F α β] (f : F) (g : (i : ι) → κ iα) :
                  f (⨆ (i : ι) (j : κ i), g i j) = ⨆ (i : ι) (j : κ i), f (g i j)
                  theorem map_iInf {F : Type u_1} {α : Type u_2} {β : Type u_3} {ι : Sort u_6} [InfSet α] [InfSet β] [sInfHomClass F α β] (f : F) (g : ια) :
                  f (⨅ (i : ι), g i) = ⨅ (i : ι), f (g i)
                  theorem map_iInf₂ {F : Type u_1} {α : Type u_2} {β : Type u_3} {ι : Sort u_6} {κ : ιSort u_7} [InfSet α] [InfSet β] [sInfHomClass F α β] (f : F) (g : (i : ι) → κ iα) :
                  f (⨅ (i : ι) (j : κ i), g i j) = ⨅ (i : ι) (j : κ i), f (g i j)
                  instance sSupHomClass.toSupBotHomClass {F : Type u_1} {α : Type u_2} {β : Type u_3} [CompleteLattice α] [CompleteLattice β] [sSupHomClass F α β] :
                  Equations
                  instance sInfHomClass.toInfTopHomClass {F : Type u_1} {α : Type u_2} {β : Type u_3} [CompleteLattice α] [CompleteLattice β] [sInfHomClass F α β] :
                  Equations
                  instance FrameHomClass.tosSupHomClass {F : Type u_1} {α : Type u_2} {β : Type u_3} [CompleteLattice α] [CompleteLattice β] [FrameHomClass F α β] :
                  sSupHomClass F α β
                  Equations
                  instance FrameHomClass.toBoundedLatticeHomClass {F : Type u_1} {α : Type u_2} {β : Type u_3} [CompleteLattice α] [CompleteLattice β] [FrameHomClass F α β] :
                  Equations
                  Equations
                  • CompleteLatticeHomClass.toFrameHomClass = let src := inst; let src_1 := sInfHomClass.toInfTopHomClass; FrameHomClass.mk (_ : ∀ (f : F) (s : Set α), f (sSup s) = sSup (f '' s))
                  Equations
                  • One or more equations did not get rendered due to their size.
                  instance OrderIsoClass.tosSupHomClass {F : Type u_1} {α : Type u_2} {β : Type u_3} [CompleteLattice α] [CompleteLattice β] [OrderIsoClass F α β] :
                  sSupHomClass F α β
                  Equations
                  • OrderIsoClass.tosSupHomClass = let src := let_fun this := inferInstance; this; sSupHomClass.mk (_ : ∀ (f : F) (s : Set α), f (sSup s) = sSup (f '' s))
                  instance OrderIsoClass.tosInfHomClass {F : Type u_1} {α : Type u_2} {β : Type u_3} [CompleteLattice α] [CompleteLattice β] [OrderIsoClass F α β] :
                  sInfHomClass F α β
                  Equations
                  • OrderIsoClass.tosInfHomClass = let src := let_fun this := inferInstance; this; sInfHomClass.mk (_ : ∀ (f : F) (s : Set α), f (sInf s) = sInf (f '' s))
                  Equations
                  • One or more equations did not get rendered due to their size.
                  instance instCoeTCSSupHom {F : Type u_1} {α : Type u_2} {β : Type u_3} [SupSet α] [SupSet β] [sSupHomClass F α β] :
                  CoeTC F (sSupHom α β)
                  Equations
                  • instCoeTCSSupHom = { coe := fun f => { toFun := f, map_sSup' := (_ : ∀ (s : Set α), f (sSup s) = sSup (f '' s)) } }
                  instance instCoeTCSInfHom {F : Type u_1} {α : Type u_2} {β : Type u_3} [InfSet α] [InfSet β] [sInfHomClass F α β] :
                  CoeTC F (sInfHom α β)
                  Equations
                  • instCoeTCSInfHom = { coe := fun f => { toFun := f, map_sInf' := (_ : ∀ (s : Set α), f (sInf s) = sInf (f '' s)) } }
                  instance instCoeTCFrameHom {F : Type u_1} {α : Type u_2} {β : Type u_3} [CompleteLattice α] [CompleteLattice β] [FrameHomClass F α β] :
                  CoeTC F (FrameHom α β)
                  Equations
                  • One or more equations did not get rendered due to their size.
                  instance instCoeTCCompleteLatticeHom {F : Type u_1} {α : Type u_2} {β : Type u_3} [CompleteLattice α] [CompleteLattice β] [CompleteLatticeHomClass F α β] :
                  Equations
                  • One or more equations did not get rendered due to their size.

                  Supremum homomorphisms #

                  instance sSupHom.instSSupHomClassSSupHom {α : Type u_2} {β : Type u_3} [SupSet α] [SupSet β] :
                  sSupHomClass (sSupHom α β) α β
                  Equations
                  @[simp]
                  theorem sSupHom.toFun_eq_coe {α : Type u_2} {β : Type u_3} [SupSet α] [SupSet β] {f : sSupHom α β} :
                  f.toFun = f
                  theorem sSupHom.ext {α : Type u_2} {β : Type u_3} [SupSet α] [SupSet β] {f : sSupHom α β} {g : sSupHom α β} (h : ∀ (a : α), f a = g a) :
                  f = g
                  def sSupHom.copy {α : Type u_2} {β : Type u_3} [SupSet α] [SupSet β] (f : sSupHom α β) (f' : αβ) (h : f' = f) :
                  sSupHom α β

                  Copy of a sSupHom with a new toFun equal to the old one. Useful to fix definitional equalities.

                  Equations
                  Instances For
                    @[simp]
                    theorem sSupHom.coe_copy {α : Type u_2} {β : Type u_3} [SupSet α] [SupSet β] (f : sSupHom α β) (f' : αβ) (h : f' = f) :
                    ↑(sSupHom.copy f f' h) = f'
                    theorem sSupHom.copy_eq {α : Type u_2} {β : Type u_3} [SupSet α] [SupSet β] (f : sSupHom α β) (f' : αβ) (h : f' = f) :
                    sSupHom.copy f f' h = f
                    def sSupHom.id (α : Type u_2) [SupSet α] :
                    sSupHom α α

                    id as a sSupHom.

                    Equations
                    Instances For
                      instance sSupHom.instInhabitedSSupHom (α : Type u_2) [SupSet α] :
                      Equations
                      @[simp]
                      theorem sSupHom.coe_id (α : Type u_2) [SupSet α] :
                      ↑(sSupHom.id α) = id
                      @[simp]
                      theorem sSupHom.id_apply {α : Type u_2} [SupSet α] (a : α) :
                      ↑(sSupHom.id α) a = a
                      def sSupHom.comp {α : Type u_2} {β : Type u_3} {γ : Type u_4} [SupSet α] [SupSet β] [SupSet γ] (f : sSupHom β γ) (g : sSupHom α β) :
                      sSupHom α γ

                      Composition of sSupHoms as a sSupHom.

                      Equations
                      Instances For
                        @[simp]
                        theorem sSupHom.coe_comp {α : Type u_2} {β : Type u_3} {γ : Type u_4} [SupSet α] [SupSet β] [SupSet γ] (f : sSupHom β γ) (g : sSupHom α β) :
                        ↑(sSupHom.comp f g) = f g
                        @[simp]
                        theorem sSupHom.comp_apply {α : Type u_2} {β : Type u_3} {γ : Type u_4} [SupSet α] [SupSet β] [SupSet γ] (f : sSupHom β γ) (g : sSupHom α β) (a : α) :
                        ↑(sSupHom.comp f g) a = f (g a)
                        @[simp]
                        theorem sSupHom.comp_assoc {α : Type u_2} {β : Type u_3} {γ : Type u_4} {δ : Type u_5} [SupSet α] [SupSet β] [SupSet γ] [SupSet δ] (f : sSupHom γ δ) (g : sSupHom β γ) (h : sSupHom α β) :
                        @[simp]
                        theorem sSupHom.comp_id {α : Type u_2} {β : Type u_3} [SupSet α] [SupSet β] (f : sSupHom α β) :
                        @[simp]
                        theorem sSupHom.id_comp {α : Type u_2} {β : Type u_3} [SupSet α] [SupSet β] (f : sSupHom α β) :
                        @[simp]
                        theorem sSupHom.cancel_right {α : Type u_2} {β : Type u_3} {γ : Type u_4} [SupSet α] [SupSet β] [SupSet γ] {g₁ : sSupHom β γ} {g₂ : sSupHom β γ} {f : sSupHom α β} (hf : Function.Surjective f) :
                        sSupHom.comp g₁ f = sSupHom.comp g₂ f g₁ = g₂
                        @[simp]
                        theorem sSupHom.cancel_left {α : Type u_2} {β : Type u_3} {γ : Type u_4} [SupSet α] [SupSet β] [SupSet γ] {g : sSupHom β γ} {f₁ : sSupHom α β} {f₂ : sSupHom α β} (hg : Function.Injective g) :
                        sSupHom.comp g f₁ = sSupHom.comp g f₂ f₁ = f₂
                        instance sSupHom.instPartialOrderSSupHomToSupSet {α : Type u_2} {β : Type u_3} [SupSet α] :
                        {x : CompleteLattice β} → PartialOrder (sSupHom α β)
                        Equations
                        instance sSupHom.instBotSSupHomToSupSet {α : Type u_2} {β : Type u_3} [SupSet α] :
                        {x : CompleteLattice β} → Bot (sSupHom α β)
                        Equations
                        • sSupHom.instBotSSupHomToSupSet = { bot := { toFun := fun x => , map_sSup' := (_ : ∀ (s : Set α), (fun x => ) (sSup s) = sSup ((fun x => ) '' s)) } }
                        Equations
                        • sSupHom.instOrderBotSSupHomToSupSetToLEToPreorderInstPartialOrderSSupHomToSupSet = OrderBot.mk (_ : ∀ (x : sSupHom α β) (x_1 : α), (fun f => f) x x_1)
                        @[simp]
                        theorem sSupHom.coe_bot {α : Type u_2} {β : Type u_3} [SupSet α] :
                        ∀ {x : CompleteLattice β}, =
                        @[simp]
                        theorem sSupHom.bot_apply {α : Type u_2} {β : Type u_3} [SupSet α] :
                        ∀ {x : CompleteLattice β} (a : α), a =

                        Infimum homomorphisms #

                        instance sInfHom.instSInfHomClassSInfHom {α : Type u_2} {β : Type u_3} [InfSet α] [InfSet β] :
                        sInfHomClass (sInfHom α β) α β
                        Equations
                        @[simp]
                        theorem sInfHom.toFun_eq_coe {α : Type u_2} {β : Type u_3} [InfSet α] [InfSet β] {f : sInfHom α β} :
                        f.toFun = f
                        theorem sInfHom.ext {α : Type u_2} {β : Type u_3} [InfSet α] [InfSet β] {f : sInfHom α β} {g : sInfHom α β} (h : ∀ (a : α), f a = g a) :
                        f = g
                        def sInfHom.copy {α : Type u_2} {β : Type u_3} [InfSet α] [InfSet β] (f : sInfHom α β) (f' : αβ) (h : f' = f) :
                        sInfHom α β

                        Copy of a sInfHom with a new toFun equal to the old one. Useful to fix definitional equalities.

                        Equations
                        Instances For
                          @[simp]
                          theorem sInfHom.coe_copy {α : Type u_2} {β : Type u_3} [InfSet α] [InfSet β] (f : sInfHom α β) (f' : αβ) (h : f' = f) :
                          ↑(sInfHom.copy f f' h) = f'
                          theorem sInfHom.copy_eq {α : Type u_2} {β : Type u_3} [InfSet α] [InfSet β] (f : sInfHom α β) (f' : αβ) (h : f' = f) :
                          sInfHom.copy f f' h = f
                          def sInfHom.id (α : Type u_2) [InfSet α] :
                          sInfHom α α

                          id as an sInfHom.

                          Equations
                          Instances For
                            instance sInfHom.instInhabitedSInfHom (α : Type u_2) [InfSet α] :
                            Equations
                            @[simp]
                            theorem sInfHom.coe_id (α : Type u_2) [InfSet α] :
                            ↑(sInfHom.id α) = id
                            @[simp]
                            theorem sInfHom.id_apply {α : Type u_2} [InfSet α] (a : α) :
                            ↑(sInfHom.id α) a = a
                            def sInfHom.comp {α : Type u_2} {β : Type u_3} {γ : Type u_4} [InfSet α] [InfSet β] [InfSet γ] (f : sInfHom β γ) (g : sInfHom α β) :
                            sInfHom α γ

                            Composition of sInfHoms as a sInfHom.

                            Equations
                            Instances For
                              @[simp]
                              theorem sInfHom.coe_comp {α : Type u_2} {β : Type u_3} {γ : Type u_4} [InfSet α] [InfSet β] [InfSet γ] (f : sInfHom β γ) (g : sInfHom α β) :
                              ↑(sInfHom.comp f g) = f g
                              @[simp]
                              theorem sInfHom.comp_apply {α : Type u_2} {β : Type u_3} {γ : Type u_4} [InfSet α] [InfSet β] [InfSet γ] (f : sInfHom β γ) (g : sInfHom α β) (a : α) :
                              ↑(sInfHom.comp f g) a = f (g a)
                              @[simp]
                              theorem sInfHom.comp_assoc {α : Type u_2} {β : Type u_3} {γ : Type u_4} {δ : Type u_5} [InfSet α] [InfSet β] [InfSet γ] [InfSet δ] (f : sInfHom γ δ) (g : sInfHom β γ) (h : sInfHom α β) :
                              @[simp]
                              theorem sInfHom.comp_id {α : Type u_2} {β : Type u_3} [InfSet α] [InfSet β] (f : sInfHom α β) :
                              @[simp]
                              theorem sInfHom.id_comp {α : Type u_2} {β : Type u_3} [InfSet α] [InfSet β] (f : sInfHom α β) :
                              @[simp]
                              theorem sInfHom.cancel_right {α : Type u_2} {β : Type u_3} {γ : Type u_4} [InfSet α] [InfSet β] [InfSet γ] {g₁ : sInfHom β γ} {g₂ : sInfHom β γ} {f : sInfHom α β} (hf : Function.Surjective f) :
                              sInfHom.comp g₁ f = sInfHom.comp g₂ f g₁ = g₂
                              @[simp]
                              theorem sInfHom.cancel_left {α : Type u_2} {β : Type u_3} {γ : Type u_4} [InfSet α] [InfSet β] [InfSet γ] {g : sInfHom β γ} {f₁ : sInfHom α β} {f₂ : sInfHom α β} (hg : Function.Injective g) :
                              sInfHom.comp g f₁ = sInfHom.comp g f₂ f₁ = f₂
                              Equations
                              instance sInfHom.instTopSInfHomToInfSet {α : Type u_2} {β : Type u_3} [InfSet α] [CompleteLattice β] :
                              Top (sInfHom α β)
                              Equations
                              • sInfHom.instTopSInfHomToInfSet = { top := { toFun := fun x => , map_sInf' := (_ : ∀ (s : Set α), (fun x => ) (sInf s) = sInf ((fun x => ) '' s)) } }
                              Equations
                              • sInfHom.instOrderTopSInfHomToInfSetToLEToPreorderInstPartialOrderSInfHomToInfSet = OrderTop.mk (_ : ∀ (x : sInfHom α β) (x_1 : α), (fun f => f) x x_1 )
                              @[simp]
                              theorem sInfHom.coe_top {α : Type u_2} {β : Type u_3} [InfSet α] [CompleteLattice β] :
                              =
                              @[simp]
                              theorem sInfHom.top_apply {α : Type u_2} {β : Type u_3} [InfSet α] [CompleteLattice β] (a : α) :
                              a =

                              Frame homomorphisms #

                              instance FrameHom.instFrameHomClassFrameHom {α : Type u_2} {β : Type u_3} [CompleteLattice α] [CompleteLattice β] :
                              FrameHomClass (FrameHom α β) α β
                              Equations
                              def FrameHom.toLatticeHom {α : Type u_2} {β : Type u_3} [CompleteLattice α] [CompleteLattice β] (f : FrameHom α β) :

                              Reinterpret a FrameHom as a LatticeHom.

                              Equations
                              • FrameHom.toLatticeHom f = { toSupHom := { toFun := f, map_sup' := (_ : ∀ (a b : α), f (a b) = f a f b) }, map_inf' := (_ : ∀ (a b : α), f (a b) = f a f b) }
                              Instances For
                                theorem FrameHom.toFun_eq_coe {α : Type u_2} {β : Type u_3} [CompleteLattice α] [CompleteLattice β] {f : FrameHom α β} :
                                f.toFun = f
                                @[simp]
                                theorem FrameHom.toFun_eq_coe_aux {α : Type u_2} {β : Type u_3} [CompleteLattice α] [CompleteLattice β] {f : FrameHom α β} :
                                f.toInfTopHom = f
                                theorem FrameHom.ext {α : Type u_2} {β : Type u_3} [CompleteLattice α] [CompleteLattice β] {f : FrameHom α β} {g : FrameHom α β} (h : ∀ (a : α), f a = g a) :
                                f = g
                                def FrameHom.copy {α : Type u_2} {β : Type u_3} [CompleteLattice α] [CompleteLattice β] (f : FrameHom α β) (f' : αβ) (h : f' = f) :
                                FrameHom α β

                                Copy of a FrameHom with a new toFun equal to the old one. Useful to fix definitional equalities.

                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For
                                  @[simp]
                                  theorem FrameHom.coe_copy {α : Type u_2} {β : Type u_3} [CompleteLattice α] [CompleteLattice β] (f : FrameHom α β) (f' : αβ) (h : f' = f) :
                                  ↑(FrameHom.copy f f' h) = f'
                                  theorem FrameHom.copy_eq {α : Type u_2} {β : Type u_3} [CompleteLattice α] [CompleteLattice β] (f : FrameHom α β) (f' : αβ) (h : f' = f) :
                                  FrameHom.copy f f' h = f
                                  def FrameHom.id (α : Type u_2) [CompleteLattice α] :
                                  FrameHom α α

                                  id as a FrameHom.

                                  Equations
                                  Instances For
                                    @[simp]
                                    theorem FrameHom.coe_id (α : Type u_2) [CompleteLattice α] :
                                    ↑(FrameHom.id α) = id
                                    @[simp]
                                    theorem FrameHom.id_apply {α : Type u_2} [CompleteLattice α] (a : α) :
                                    ↑(FrameHom.id α) a = a
                                    def FrameHom.comp {α : Type u_2} {β : Type u_3} {γ : Type u_4} [CompleteLattice α] [CompleteLattice β] [CompleteLattice γ] (f : FrameHom β γ) (g : FrameHom α β) :
                                    FrameHom α γ

                                    Composition of FrameHoms as a FrameHom.

                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For
                                      @[simp]
                                      theorem FrameHom.coe_comp {α : Type u_2} {β : Type u_3} {γ : Type u_4} [CompleteLattice α] [CompleteLattice β] [CompleteLattice γ] (f : FrameHom β γ) (g : FrameHom α β) :
                                      ↑(FrameHom.comp f g) = f g
                                      @[simp]
                                      theorem FrameHom.comp_apply {α : Type u_2} {β : Type u_3} {γ : Type u_4} [CompleteLattice α] [CompleteLattice β] [CompleteLattice γ] (f : FrameHom β γ) (g : FrameHom α β) (a : α) :
                                      ↑(FrameHom.comp f g) a = f (g a)
                                      @[simp]
                                      theorem FrameHom.comp_assoc {α : Type u_2} {β : Type u_3} {γ : Type u_4} {δ : Type u_5} [CompleteLattice α] [CompleteLattice β] [CompleteLattice γ] [CompleteLattice δ] (f : FrameHom γ δ) (g : FrameHom β γ) (h : FrameHom α β) :
                                      @[simp]
                                      theorem FrameHom.comp_id {α : Type u_2} {β : Type u_3} [CompleteLattice α] [CompleteLattice β] (f : FrameHom α β) :
                                      @[simp]
                                      theorem FrameHom.id_comp {α : Type u_2} {β : Type u_3} [CompleteLattice α] [CompleteLattice β] (f : FrameHom α β) :
                                      @[simp]
                                      theorem FrameHom.cancel_right {α : Type u_2} {β : Type u_3} {γ : Type u_4} [CompleteLattice α] [CompleteLattice β] [CompleteLattice γ] {g₁ : FrameHom β γ} {g₂ : FrameHom β γ} {f : FrameHom α β} (hf : Function.Surjective f) :
                                      FrameHom.comp g₁ f = FrameHom.comp g₂ f g₁ = g₂
                                      @[simp]
                                      theorem FrameHom.cancel_left {α : Type u_2} {β : Type u_3} {γ : Type u_4} [CompleteLattice α] [CompleteLattice β] [CompleteLattice γ] {g : FrameHom β γ} {f₁ : FrameHom α β} {f₂ : FrameHom α β} (hg : Function.Injective g) :
                                      FrameHom.comp g f₁ = FrameHom.comp g f₂ f₁ = f₂
                                      Equations

                                      Complete lattice homomorphisms #

                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      def CompleteLatticeHom.tosSupHom {α : Type u_2} {β : Type u_3} [CompleteLattice α] [CompleteLattice β] (f : CompleteLatticeHom α β) :
                                      sSupHom α β

                                      Reinterpret a CompleteLatticeHom as a sSupHom.

                                      Equations
                                      Instances For

                                        Reinterpret a CompleteLatticeHom as a BoundedLatticeHom.

                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For
                                          theorem CompleteLatticeHom.toFun_eq_coe {α : Type u_2} {β : Type u_3} [CompleteLattice α] [CompleteLattice β] {f : CompleteLatticeHom α β} :
                                          f.toFun = f
                                          @[simp]
                                          theorem CompleteLatticeHom.toFun_eq_coe_aux {α : Type u_2} {β : Type u_3} [CompleteLattice α] [CompleteLattice β] {f : CompleteLatticeHom α β} :
                                          f.tosInfHom = f
                                          theorem CompleteLatticeHom.ext {α : Type u_2} {β : Type u_3} [CompleteLattice α] [CompleteLattice β] {f : CompleteLatticeHom α β} {g : CompleteLatticeHom α β} (h : ∀ (a : α), f a = g a) :
                                          f = g
                                          def CompleteLatticeHom.copy {α : Type u_2} {β : Type u_3} [CompleteLattice α] [CompleteLattice β] (f : CompleteLatticeHom α β) (f' : αβ) (h : f' = f) :

                                          Copy of a CompleteLatticeHom with a new toFun equal to the old one. Useful to fix definitional equalities.

                                          Equations
                                          • One or more equations did not get rendered due to their size.
                                          Instances For
                                            @[simp]
                                            theorem CompleteLatticeHom.coe_copy {α : Type u_2} {β : Type u_3} [CompleteLattice α] [CompleteLattice β] (f : CompleteLatticeHom α β) (f' : αβ) (h : f' = f) :
                                            ↑(CompleteLatticeHom.copy f f' h) = f'
                                            theorem CompleteLatticeHom.copy_eq {α : Type u_2} {β : Type u_3} [CompleteLattice α] [CompleteLattice β] (f : CompleteLatticeHom α β) (f' : αβ) (h : f' = f) :

                                            id as a CompleteLatticeHom.

                                            Equations
                                            • One or more equations did not get rendered due to their size.
                                            Instances For
                                              @[simp]
                                              @[simp]
                                              theorem CompleteLatticeHom.id_apply {α : Type u_2} [CompleteLattice α] (a : α) :
                                              def CompleteLatticeHom.comp {α : Type u_2} {β : Type u_3} {γ : Type u_4} [CompleteLattice α] [CompleteLattice β] [CompleteLattice γ] (f : CompleteLatticeHom β γ) (g : CompleteLatticeHom α β) :

                                              Composition of CompleteLatticeHoms as a CompleteLatticeHom.

                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              Instances For
                                                @[simp]
                                                theorem CompleteLatticeHom.coe_comp {α : Type u_2} {β : Type u_3} {γ : Type u_4} [CompleteLattice α] [CompleteLattice β] [CompleteLattice γ] (f : CompleteLatticeHom β γ) (g : CompleteLatticeHom α β) :
                                                ↑(CompleteLatticeHom.comp f g) = f g
                                                @[simp]
                                                theorem CompleteLatticeHom.comp_apply {α : Type u_2} {β : Type u_3} {γ : Type u_4} [CompleteLattice α] [CompleteLattice β] [CompleteLattice γ] (f : CompleteLatticeHom β γ) (g : CompleteLatticeHom α β) (a : α) :
                                                ↑(CompleteLatticeHom.comp f g) a = f (g a)
                                                @[simp]
                                                theorem CompleteLatticeHom.cancel_right {α : Type u_2} {β : Type u_3} {γ : Type u_4} [CompleteLattice α] [CompleteLattice β] [CompleteLattice γ] {g₁ : CompleteLatticeHom β γ} {g₂ : CompleteLatticeHom β γ} {f : CompleteLatticeHom α β} (hf : Function.Surjective f) :
                                                @[simp]
                                                theorem CompleteLatticeHom.cancel_left {α : Type u_2} {β : Type u_3} {γ : Type u_4} [CompleteLattice α] [CompleteLattice β] [CompleteLattice γ] {g : CompleteLatticeHom β γ} {f₁ : CompleteLatticeHom α β} {f₂ : CompleteLatticeHom α β} (hg : Function.Injective g) :

                                                Dual homs #

                                                @[simp]
                                                theorem sSupHom.dual_apply_toFun {α : Type u_2} {β : Type u_3} [SupSet α] [SupSet β] (f : sSupHom α β) :
                                                ∀ (a : αᵒᵈ), ↑(sSupHom.dual f) a = (OrderDual.toDual f OrderDual.ofDual) a
                                                @[simp]
                                                theorem sSupHom.dual_symm_apply_toFun {α : Type u_2} {β : Type u_3} [SupSet α] [SupSet β] (f : sInfHom αᵒᵈ βᵒᵈ) :
                                                ∀ (a : α), ↑(sSupHom.dual.symm f) a = (OrderDual.ofDual f OrderDual.toDual) a
                                                def sSupHom.dual {α : Type u_2} {β : Type u_3} [SupSet α] [SupSet β] :

                                                Reinterpret a -homomorphism as an -homomorphism between the dual orders.

                                                Equations
                                                • One or more equations did not get rendered due to their size.
                                                Instances For
                                                  @[simp]
                                                  theorem sSupHom.dual_id {α : Type u_2} [SupSet α] :
                                                  sSupHom.dual (sSupHom.id α) = sInfHom.id αᵒᵈ
                                                  @[simp]
                                                  theorem sSupHom.dual_comp {α : Type u_2} {β : Type u_3} {γ : Type u_4} [SupSet α] [SupSet β] [SupSet γ] (g : sSupHom β γ) (f : sSupHom α β) :
                                                  sSupHom.dual (sSupHom.comp g f) = sInfHom.comp (sSupHom.dual g) (sSupHom.dual f)
                                                  @[simp]
                                                  theorem sSupHom.symm_dual_id {α : Type u_2} [SupSet α] :
                                                  sSupHom.dual.symm (sInfHom.id αᵒᵈ) = sSupHom.id α
                                                  @[simp]
                                                  theorem sSupHom.symm_dual_comp {α : Type u_2} {β : Type u_3} {γ : Type u_4} [SupSet α] [SupSet β] [SupSet γ] (g : sInfHom βᵒᵈ γᵒᵈ) (f : sInfHom αᵒᵈ βᵒᵈ) :
                                                  sSupHom.dual.symm (sInfHom.comp g f) = sSupHom.comp (sSupHom.dual.symm g) (sSupHom.dual.symm f)
                                                  @[simp]
                                                  theorem sInfHom.dual_symm_apply_toFun {α : Type u_2} {β : Type u_3} [InfSet α] [InfSet β] (f : sSupHom αᵒᵈ βᵒᵈ) :
                                                  ∀ (a : α), ↑(sInfHom.dual.symm f) a = (OrderDual.ofDual f OrderDual.toDual) a
                                                  @[simp]
                                                  theorem sInfHom.dual_apply_toFun {α : Type u_2} {β : Type u_3} [InfSet α] [InfSet β] (f : sInfHom α β) :
                                                  ∀ (a : αᵒᵈ), ↑(sInfHom.dual f) a = (OrderDual.toDual f OrderDual.ofDual) a
                                                  def sInfHom.dual {α : Type u_2} {β : Type u_3} [InfSet α] [InfSet β] :

                                                  Reinterpret an -homomorphism as a -homomorphism between the dual orders.

                                                  Equations
                                                  • One or more equations did not get rendered due to their size.
                                                  Instances For
                                                    @[simp]
                                                    theorem sInfHom.dual_id {α : Type u_2} [InfSet α] :
                                                    sInfHom.dual (sInfHom.id α) = sSupHom.id αᵒᵈ
                                                    @[simp]
                                                    theorem sInfHom.dual_comp {α : Type u_2} {β : Type u_3} {γ : Type u_4} [InfSet α] [InfSet β] [InfSet γ] (g : sInfHom β γ) (f : sInfHom α β) :
                                                    sInfHom.dual (sInfHom.comp g f) = sSupHom.comp (sInfHom.dual g) (sInfHom.dual f)
                                                    @[simp]
                                                    theorem sInfHom.symm_dual_id {α : Type u_2} [InfSet α] :
                                                    sInfHom.dual.symm (sSupHom.id αᵒᵈ) = sInfHom.id α
                                                    @[simp]
                                                    theorem sInfHom.symm_dual_comp {α : Type u_2} {β : Type u_3} {γ : Type u_4} [InfSet α] [InfSet β] [InfSet γ] (g : sSupHom βᵒᵈ γᵒᵈ) (f : sSupHom αᵒᵈ βᵒᵈ) :
                                                    sInfHom.dual.symm (sSupHom.comp g f) = sInfHom.comp (sInfHom.dual.symm g) (sInfHom.dual.symm f)
                                                    @[simp]
                                                    theorem CompleteLatticeHom.dual_symm_apply_toFun {α : Type u_2} {β : Type u_3} [CompleteLattice α] [CompleteLattice β] (f : CompleteLatticeHom αᵒᵈ βᵒᵈ) :
                                                    ∀ (a : αᵒᵈᵒᵈ), ↑(CompleteLatticeHom.dual.symm f) a = OrderDual.toDual (↑(CompleteLatticeHom.tosSupHom f) (OrderDual.ofDual a))
                                                    @[simp]
                                                    theorem CompleteLatticeHom.dual_apply_toFun {α : Type u_2} {β : Type u_3} [CompleteLattice α] [CompleteLattice β] (f : CompleteLatticeHom α β) :
                                                    ∀ (a : αᵒᵈ), ↑(CompleteLatticeHom.dual f) a = OrderDual.toDual (↑(CompleteLatticeHom.tosSupHom f) (OrderDual.ofDual a))

                                                    Reinterpret a complete lattice homomorphism as a complete lattice homomorphism between the dual lattices.

                                                    Equations
                                                    • One or more equations did not get rendered due to their size.
                                                    Instances For
                                                      @[simp]
                                                      theorem CompleteLatticeHom.dual_id {α : Type u_2} [CompleteLattice α] :
                                                      CompleteLatticeHom.dual (CompleteLatticeHom.id α) = CompleteLatticeHom.id αᵒᵈ
                                                      @[simp]
                                                      theorem CompleteLatticeHom.dual_comp {α : Type u_2} {β : Type u_3} {γ : Type u_4} [CompleteLattice α] [CompleteLattice β] [CompleteLattice γ] (g : CompleteLatticeHom β γ) (f : CompleteLatticeHom α β) :
                                                      CompleteLatticeHom.dual (CompleteLatticeHom.comp g f) = CompleteLatticeHom.comp (CompleteLatticeHom.dual g) (CompleteLatticeHom.dual f)
                                                      @[simp]
                                                      theorem CompleteLatticeHom.symm_dual_id {α : Type u_2} [CompleteLattice α] :
                                                      CompleteLatticeHom.dual.symm (CompleteLatticeHom.id αᵒᵈ) = CompleteLatticeHom.id α
                                                      @[simp]
                                                      theorem CompleteLatticeHom.symm_dual_comp {α : Type u_2} {β : Type u_3} {γ : Type u_4} [CompleteLattice α] [CompleteLattice β] [CompleteLattice γ] (g : CompleteLatticeHom βᵒᵈ γᵒᵈ) (f : CompleteLatticeHom αᵒᵈ βᵒᵈ) :
                                                      CompleteLatticeHom.dual.symm (CompleteLatticeHom.comp g f) = CompleteLatticeHom.comp (CompleteLatticeHom.dual.symm g) (CompleteLatticeHom.dual.symm f)

                                                      Concrete homs #

                                                      def CompleteLatticeHom.setPreimage {α : Type u_2} {β : Type u_3} (f : αβ) :

                                                      Set.preimage as a complete lattice homomorphism.

                                                      See also sSupHom.setImage.

                                                      Equations
                                                      • One or more equations did not get rendered due to their size.
                                                      Instances For
                                                        @[simp]
                                                        theorem CompleteLatticeHom.coe_setPreimage {α : Type u_2} {β : Type u_3} (f : αβ) :
                                                        @[simp]
                                                        theorem CompleteLatticeHom.setPreimage_apply {α : Type u_2} {β : Type u_3} (f : αβ) (s : Set β) :
                                                        theorem Set.image_sSup {α : Type u_2} {β : Type u_3} {f : αβ} (s : Set (Set α)) :
                                                        f '' sSup s = sSup (Set.image f '' s)
                                                        @[simp]
                                                        theorem sSupHom.setImage_toFun {α : Type u_2} {β : Type u_3} (f : αβ) (s : Set α) :
                                                        ↑(sSupHom.setImage f) s = f '' s
                                                        def sSupHom.setImage {α : Type u_2} {β : Type u_3} (f : αβ) :
                                                        sSupHom (Set α) (Set β)

                                                        Using Set.image, a function between types yields a sSupHom between their lattices of subsets.

                                                        See also CompleteLatticeHom.setPreimage.

                                                        Equations
                                                        Instances For
                                                          @[simp]
                                                          theorem Equiv.toOrderIsoSet_symm_apply {α : Type u_2} {β : Type u_3} (e : α β) (s : Set β) :
                                                          ↑(RelIso.symm (Equiv.toOrderIsoSet e)) s = e.symm '' s
                                                          @[simp]
                                                          theorem Equiv.toOrderIsoSet_apply {α : Type u_2} {β : Type u_3} (e : α β) (s : Set α) :
                                                          ↑(Equiv.toOrderIsoSet e) s = e '' s
                                                          def Equiv.toOrderIsoSet {α : Type u_2} {β : Type u_3} (e : α β) :
                                                          Set α ≃o Set β

                                                          An equivalence of types yields an order isomorphism between their lattices of subsets.

                                                          Equations
                                                          • One or more equations did not get rendered due to their size.
                                                          Instances For
                                                            def supsSupHom {α : Type u_2} [CompleteLattice α] :
                                                            sSupHom (α × α) α

                                                            The map (a, b) ↦ a ⊔ b as a sSupHom.

                                                            Equations
                                                            • supsSupHom = { toFun := fun x => x.fst x.snd, map_sSup' := (_ : ∀ (s : Set (α × α)), (fun x => x.fst x.snd) (sSup s) = sSup ((fun x => x.fst x.snd) '' s)) }
                                                            Instances For
                                                              def infsInfHom {α : Type u_2} [CompleteLattice α] :
                                                              sInfHom (α × α) α

                                                              The map (a, b) ↦ a ⊓ b as an sInfHom.

                                                              Equations
                                                              • infsInfHom = { toFun := fun x => x.fst x.snd, map_sInf' := (_ : ∀ (s : Set (α × α)), (fun x => x.fst x.snd) (sInf s) = sInf ((fun x => x.fst x.snd) '' s)) }
                                                              Instances For
                                                                @[simp]
                                                                theorem supsSupHom_apply {α : Type u_2} [CompleteLattice α] (x : α × α) :
                                                                supsSupHom x = x.fst x.snd
                                                                @[simp]
                                                                theorem infsInfHom_apply {α : Type u_2} [CompleteLattice α] (x : α × α) :
                                                                infsInfHom x = x.fst x.snd