Documentation

Mathlib.Topology.Order.Hom.Esakia

Esakia morphisms #

This file defines pseudo-epimorphisms and Esakia morphisms.

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 #

References #

structure PseudoEpimorphism (α : Type u_6) (β : Type u_7) [Preorder α] [Preorder β] extends OrderHom :
Type (max u_6 u_7)

The type of pseudo-epimorphisms, aka p-morphisms, aka bounded maps, from α to β.

Instances For
    structure EsakiaHom (α : Type u_6) (β : Type u_7) [TopologicalSpace α] [Preorder α] [TopologicalSpace β] [Preorder β] extends ContinuousOrderHom :
    Type (max u_6 u_7)

    The type of Esakia morphisms, aka continuous pseudo-epimorphisms, from α to β.

    Instances For
      class PseudoEpimorphismClass (F : Type u_6) (α : outParam (Type u_7)) (β : outParam (Type u_8)) [Preorder α] [Preorder β] extends RelHomClass :
      Type (max (max u_6 u_7) u_8)
      • coe : Fαβ
      • coe_injective' : Function.Injective FunLike.coe
      • map_rel : ∀ (f : F) {a b : α}, a bf a f b
      • exists_map_eq_of_map_le : ∀ (f : F) ⦃a : α⦄ ⦃b : β⦄, f a bc, a c f c = b

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

      You should extend this class when you extend PseudoEpimorphism.

      Instances
        class EsakiaHomClass (F : Type u_6) (α : outParam (Type u_7)) (β : outParam (Type u_8)) [TopologicalSpace α] [Preorder α] [TopologicalSpace β] [Preorder β] extends ContinuousOrderHomClass :
        Type (max (max u_6 u_7) u_8)
        • coe : Fαβ
        • coe_injective' : Function.Injective FunLike.coe
        • map_continuous : ∀ (f : F), Continuous f
        • map_monotone : ∀ (f : F), Monotone f
        • exists_map_eq_of_map_le : ∀ (f : F) ⦃a : α⦄ ⦃b : β⦄, f a bc, a c f c = b

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

        You should extend this class when you extend EsakiaHom.

        Instances
          instance PseudoEpimorphismClass.toTopHomClass {F : Type u_1} {α : Type u_2} {β : Type u_3} [PartialOrder α] [OrderTop α] [Preorder β] [OrderTop β] [PseudoEpimorphismClass F α β] :
          TopHomClass F α β
          instance OrderIsoClass.toPseudoEpimorphismClass {F : Type u_1} {α : Type u_2} {β : Type u_3} [Preorder α] [Preorder β] [OrderIsoClass F α β] :
          instance instCoeTCPseudoEpimorphism {F : Type u_1} {α : Type u_2} {β : Type u_3} [Preorder α] [Preorder β] [PseudoEpimorphismClass F α β] :
          instance instCoeTCEsakiaHom {F : Type u_1} {α : Type u_2} {β : Type u_3} [TopologicalSpace α] [Preorder α] [TopologicalSpace β] [Preorder β] [EsakiaHomClass F α β] :
          CoeTC F (EsakiaHom α β)

          Pseudo-epimorphisms #

          instance PseudoEpimorphism.instCoeFunPseudoEpimorphismForAll {α : Type u_2} {β : Type u_3} [Preorder α] [Preorder β] :
          CoeFun (PseudoEpimorphism α β) fun x => αβ

          Helper instance for when there's too many metavariables to apply FunLike.hasCoeToFun directly.

          @[simp]
          theorem PseudoEpimorphism.toOrderHom_eq_coe {α : Type u_2} {β : Type u_3} [Preorder α] [Preorder β] (f : PseudoEpimorphism α β) :
          f.toOrderHom = f
          theorem PseudoEpimorphism.toFun_eq_coe {α : Type u_2} {β : Type u_3} [Preorder α] [Preorder β] {f : PseudoEpimorphism α β} :
          f.toFun = f
          theorem PseudoEpimorphism.ext {α : Type u_2} {β : Type u_3} [Preorder α] [Preorder β] {f : PseudoEpimorphism α β} {g : PseudoEpimorphism α β} (h : ∀ (a : α), f a = g a) :
          f = g
          def PseudoEpimorphism.copy {α : Type u_2} {β : Type u_3} [Preorder α] [Preorder β] (f : PseudoEpimorphism α β) (f' : αβ) (h : f' = f) :

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

          Instances For
            @[simp]
            theorem PseudoEpimorphism.coe_copy {α : Type u_2} {β : Type u_3} [Preorder α] [Preorder β] (f : PseudoEpimorphism α β) (f' : αβ) (h : f' = f) :
            ↑(PseudoEpimorphism.copy f f' h) = f'
            theorem PseudoEpimorphism.copy_eq {α : Type u_2} {β : Type u_3} [Preorder α] [Preorder β] (f : PseudoEpimorphism α β) (f' : αβ) (h : f' = f) :

            id as a PseudoEpimorphism.

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

              Composition of PseudoEpimorphisms as a PseudoEpimorphism.

              Instances For
                @[simp]
                theorem PseudoEpimorphism.coe_comp {α : Type u_2} {β : Type u_3} {γ : Type u_4} [Preorder α] [Preorder β] [Preorder γ] (g : PseudoEpimorphism β γ) (f : PseudoEpimorphism α β) :
                ↑(PseudoEpimorphism.comp g f) = g f
                @[simp]
                theorem PseudoEpimorphism.coe_comp_orderHom {α : Type u_2} {β : Type u_3} {γ : Type u_4} [Preorder α] [Preorder β] [Preorder γ] (g : PseudoEpimorphism β γ) (f : PseudoEpimorphism α β) :
                @[simp]
                theorem PseudoEpimorphism.comp_apply {α : Type u_2} {β : Type u_3} {γ : Type u_4} [Preorder α] [Preorder β] [Preorder γ] (g : PseudoEpimorphism β γ) (f : PseudoEpimorphism α β) (a : α) :
                ↑(PseudoEpimorphism.comp g f) a = g (f a)
                @[simp]
                @[simp]
                @[simp]
                @[simp]
                theorem PseudoEpimorphism.cancel_right {α : Type u_2} {β : Type u_3} {γ : Type u_4} [Preorder α] [Preorder β] [Preorder γ] {g₁ : PseudoEpimorphism β γ} {g₂ : PseudoEpimorphism β γ} {f : PseudoEpimorphism α β} (hf : Function.Surjective f) :
                @[simp]
                theorem PseudoEpimorphism.cancel_left {α : Type u_2} {β : Type u_3} {γ : Type u_4} [Preorder α] [Preorder β] [Preorder γ] {g : PseudoEpimorphism β γ} {f₁ : PseudoEpimorphism α β} {f₂ : PseudoEpimorphism α β} (hg : Function.Injective g) :

                Esakia morphisms #

                Instances For
                  instance EsakiaHom.instCoeFunEsakiaHomForAll {α : Type u_2} {β : Type u_3} [TopologicalSpace α] [Preorder α] [TopologicalSpace β] [Preorder β] :
                  CoeFun (EsakiaHom α β) fun x => αβ

                  Helper instance for when there's too many metavariables to apply FunLike.hasCoeToFun directly.

                  @[simp]
                  theorem EsakiaHom.toContinuousOrderHom_coe {α : Type u_2} {β : Type u_3} [TopologicalSpace α] [Preorder α] [TopologicalSpace β] [Preorder β] {f : EsakiaHom α β} :
                  f.toContinuousOrderHom = f
                  theorem EsakiaHom.toFun_eq_coe {α : Type u_2} {β : Type u_3} [TopologicalSpace α] [Preorder α] [TopologicalSpace β] [Preorder β] {f : EsakiaHom α β} :
                  f.toFun = f
                  theorem EsakiaHom.ext {α : Type u_2} {β : Type u_3} [TopologicalSpace α] [Preorder α] [TopologicalSpace β] [Preorder β] {f : EsakiaHom α β} {g : EsakiaHom α β} (h : ∀ (a : α), f a = g a) :
                  f = g
                  def EsakiaHom.copy {α : Type u_2} {β : Type u_3} [TopologicalSpace α] [Preorder α] [TopologicalSpace β] [Preorder β] (f : EsakiaHom α β) (f' : αβ) (h : f' = f) :
                  EsakiaHom α β

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

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

                    id as an EsakiaHom.

                    Instances For
                      @[simp]
                      theorem EsakiaHom.coe_id (α : Type u_2) [TopologicalSpace α] [Preorder α] :
                      ↑(EsakiaHom.id α) = id
                      @[simp]
                      theorem EsakiaHom.coe_id_pseudoEpimorphism (α : Type u_2) [TopologicalSpace α] [Preorder α] :
                      { toOrderHom := ↑(EsakiaHom.id α), exists_map_eq_of_map_le' := (_ : ∀ ⦃a b : α⦄, ↑(EsakiaHom.id α) a bc, a c ↑(EsakiaHom.id α) c = b) } = PseudoEpimorphism.id α
                      @[simp]
                      theorem EsakiaHom.id_apply {α : Type u_2} [TopologicalSpace α] [Preorder α] (a : α) :
                      ↑(EsakiaHom.id α) a = a
                      def EsakiaHom.comp {α : Type u_2} {β : Type u_3} {γ : Type u_4} [TopologicalSpace α] [Preorder α] [TopologicalSpace β] [Preorder β] [TopologicalSpace γ] [Preorder γ] (g : EsakiaHom β γ) (f : EsakiaHom α β) :
                      EsakiaHom α γ

                      Composition of EsakiaHoms as an EsakiaHom.

                      Instances For
                        @[simp]
                        theorem EsakiaHom.coe_comp_continuousOrderHom {α : Type u_2} {β : Type u_3} {γ : Type u_4} [TopologicalSpace α] [Preorder α] [TopologicalSpace β] [Preorder β] [TopologicalSpace γ] [Preorder γ] (g : EsakiaHom β γ) (f : EsakiaHom α β) :
                        @[simp]
                        theorem EsakiaHom.coe_comp_pseudoEpimorphism {α : Type u_2} {β : Type u_3} {γ : Type u_4} [TopologicalSpace α] [Preorder α] [TopologicalSpace β] [Preorder β] [TopologicalSpace γ] [Preorder γ] (g : EsakiaHom β γ) (f : EsakiaHom α β) :
                        { toOrderHom := ↑(EsakiaHom.comp g f), exists_map_eq_of_map_le' := (_ : ∀ ⦃a : α⦄ ⦃b : γ⦄, ↑(EsakiaHom.comp g f) a bc, a c ↑(EsakiaHom.comp g f) c = b) } = PseudoEpimorphism.comp { toOrderHom := g, exists_map_eq_of_map_le' := (_ : ∀ ⦃a : β⦄ ⦃b : γ⦄, g a bc, a c g c = b) } { toOrderHom := f, exists_map_eq_of_map_le' := (_ : ∀ ⦃a : α⦄ ⦃b : β⦄, f a bc, a c f c = b) }
                        @[simp]
                        theorem EsakiaHom.coe_comp {α : Type u_2} {β : Type u_3} {γ : Type u_4} [TopologicalSpace α] [Preorder α] [TopologicalSpace β] [Preorder β] [TopologicalSpace γ] [Preorder γ] (g : EsakiaHom β γ) (f : EsakiaHom α β) :
                        ↑(EsakiaHom.comp g f) = g f
                        @[simp]
                        theorem EsakiaHom.comp_apply {α : Type u_2} {β : Type u_3} {γ : Type u_4} [TopologicalSpace α] [Preorder α] [TopologicalSpace β] [Preorder β] [TopologicalSpace γ] [Preorder γ] (g : EsakiaHom β γ) (f : EsakiaHom α β) (a : α) :
                        ↑(EsakiaHom.comp g f) a = g (f a)
                        @[simp]
                        theorem EsakiaHom.comp_assoc {α : Type u_2} {β : Type u_3} {γ : Type u_4} {δ : Type u_5} [TopologicalSpace α] [Preorder α] [TopologicalSpace β] [Preorder β] [TopologicalSpace γ] [Preorder γ] [TopologicalSpace δ] [Preorder δ] (h : EsakiaHom γ δ) (g : EsakiaHom β γ) (f : EsakiaHom α β) :
                        @[simp]
                        theorem EsakiaHom.comp_id {α : Type u_2} {β : Type u_3} [TopologicalSpace α] [Preorder α] [TopologicalSpace β] [Preorder β] (f : EsakiaHom α β) :
                        @[simp]
                        theorem EsakiaHom.id_comp {α : Type u_2} {β : Type u_3} [TopologicalSpace α] [Preorder α] [TopologicalSpace β] [Preorder β] (f : EsakiaHom α β) :
                        @[simp]
                        theorem EsakiaHom.cancel_right {α : Type u_2} {β : Type u_3} {γ : Type u_4} [TopologicalSpace α] [Preorder α] [TopologicalSpace β] [Preorder β] [TopologicalSpace γ] [Preorder γ] {g₁ : EsakiaHom β γ} {g₂ : EsakiaHom β γ} {f : EsakiaHom α β} (hf : Function.Surjective f) :
                        EsakiaHom.comp g₁ f = EsakiaHom.comp g₂ f g₁ = g₂
                        @[simp]
                        theorem EsakiaHom.cancel_left {α : Type u_2} {β : Type u_3} {γ : Type u_4} [TopologicalSpace α] [Preorder α] [TopologicalSpace β] [Preorder β] [TopologicalSpace γ] [Preorder γ] {g : EsakiaHom β γ} {f₁ : EsakiaHom α β} {f₂ : EsakiaHom α β} (hg : Function.Injective g) :
                        EsakiaHom.comp g f₁ = EsakiaHom.comp g f₂ f₁ = f₂