Documentation

Mathlib.Topology.Order.Hom.Esakia

Esakia morphisms #

This file defines pseudo-epimorphisms and Esakia morphisms.

We use the DFunLike 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 β.

  • toFun : αβ
  • monotone' : Monotone self.toFun
  • exists_map_eq_of_map_le' : ∀ ⦃a : α⦄ ⦃b : β⦄, self.toOrderHom.toFun a b∃ (c : α), a c self.toOrderHom.toFun c = b
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 β.

    • toFun : αβ
    • monotone' : Monotone self.toFun
    • continuous_toFun : Continuous self.toFun
    • exists_map_eq_of_map_le' : ∀ ⦃a : α⦄ ⦃b : β⦄, self.toOrderHom.toFun a b∃ (c : α), a c self.toOrderHom.toFun c = b
    Instances For
      class PseudoEpimorphismClass (F : Type u_6) (α : outParam (Type u_7)) (β : outParam (Type u_8)) [Preorder α] [Preorder β] [FunLike F α β] extends RelHomClass :

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

      You should extend this class when you extend PseudoEpimorphism.

      • map_rel : ∀ (f : F) {a b : α}, a bf a f b
      • exists_map_eq_of_map_le : ∀ (f : F) ⦃a : α⦄ ⦃b : β⦄, f a b∃ (c : α), a c f c = b
      Instances
        class EsakiaHomClass (F : Type u_6) (α : outParam (Type u_7)) (β : outParam (Type u_8)) [TopologicalSpace α] [Preorder α] [TopologicalSpace β] [Preorder β] [FunLike F α β] extends ContinuousOrderHomClass :

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

        You should extend this class when you extend EsakiaHom.

        • map_continuous : ∀ (f : F), Continuous f
        • map_monotone : ∀ (f : F), Monotone f
        • exists_map_eq_of_map_le : ∀ (f : F) ⦃a : α⦄ ⦃b : β⦄, f a b∃ (c : α), a c f c = b
        Instances
          instance PseudoEpimorphismClass.toTopHomClass {F : Type u_1} {α : Type u_2} {β : Type u_3} [FunLike F α β] [PartialOrder α] [OrderTop α] [Preorder β] [OrderTop β] [PseudoEpimorphismClass F α β] :
          TopHomClass F α β
          Equations
          instance EsakiaHomClass.toPseudoEpimorphismClass {F : Type u_1} {α : Type u_2} {β : Type u_3} [FunLike F α β] [TopologicalSpace α] [Preorder α] [TopologicalSpace β] [Preorder β] [EsakiaHomClass F α β] :
          Equations
          instance instCoeTCPseudoEpimorphism {F : Type u_1} {α : Type u_2} {β : Type u_3} [FunLike F α β] [Preorder α] [Preorder β] [PseudoEpimorphismClass F α β] :
          Equations
          • instCoeTCPseudoEpimorphism = { coe := fun (f : F) => { toOrderHom := f, exists_map_eq_of_map_le' := (_ : ∀ ⦃a : α⦄ ⦃b : β⦄, f a b∃ (c : α), a c f c = b) } }
          instance instCoeTCEsakiaHom {F : Type u_1} {α : Type u_2} {β : Type u_3} [FunLike F α β] [TopologicalSpace α] [Preorder α] [TopologicalSpace β] [Preorder β] [EsakiaHomClass F α β] :
          CoeTC F (EsakiaHom α β)
          Equations
          • instCoeTCEsakiaHom = { coe := fun (f : F) => { toContinuousOrderHom := f, exists_map_eq_of_map_le' := (_ : ∀ ⦃a : α⦄ ⦃b : β⦄, f a b∃ (c : α), a c f c = b) } }
          instance OrderIsoClass.toPseudoEpimorphismClass {F : Type u_1} {α : Type u_2} {β : Type u_3} [Preorder α] [Preorder β] [EquivLike F α β] [OrderIsoClass F α β] :
          Equations

          Pseudo-epimorphisms #

          instance PseudoEpimorphism.instFunLike {α : Type u_2} {β : Type u_3} [Preorder α] [Preorder β] :
          Equations
          • One or more equations did not get rendered due to their size.
          @[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.

          Equations
          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.

            Equations
            • PseudoEpimorphism.id α = { toOrderHom := OrderHom.id, exists_map_eq_of_map_le' := (_ : ∀ (x b : α), OrderHom.id.toFun x b∃ (c : α), x c OrderHom.id.toFun c = b) }
            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.

              Equations
              • One or more equations did not get rendered due to their size.
              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 #

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  instance EsakiaHom.instFunLike {α : Type u_2} {β : Type u_3} [TopologicalSpace α] [Preorder α] [TopologicalSpace β] [Preorder β] :
                  FunLike (EsakiaHom α β) α β
                  Equations
                  • One or more equations did not get rendered due to their size.
                  Equations
                  @[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.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  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.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    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 b∃ (c : α), 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.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      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 b∃ (c : α), a c (EsakiaHom.comp g f) c = b) } = PseudoEpimorphism.comp { toOrderHom := g, exists_map_eq_of_map_le' := (_ : ∀ ⦃a : β⦄ ⦃b : γ⦄, g a b∃ (c : β), a c g c = b) } { toOrderHom := f, exists_map_eq_of_map_le' := (_ : ∀ ⦃a : α⦄ ⦃b : β⦄, f a b∃ (c : α), 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₂