Documentation

LeanPool.QuasiBorelSpaces.OmegaHom

Exponentials for ω-quasi-borel spaces #

This file defines the function space OmegaQuasiBorelHom X Y (written X →ω𝒒 Y) of Scott-continuous QBS morphisms. It proves that this space is itself an ωQBS.

structure OmegaQuasiBorelHom (X : Type u_1) (Y : Type u_2) [OmegaQuasiBorelSpace X] [OmegaQuasiBorelSpace Y] :
Type (max u_1 u_2)

Exponential objects: functions that are both Scott-Continuous and Measurable (QBS Morphisms)

Instances For

    Exponential objects: functions that are both Scott-Continuous and Measurable (QBS Morphisms)

    Equations
    Instances For
      @[instance_reducible]
      Equations

      A simps projection for function coercion.

      Equations
      Instances For
        theorem OmegaQuasiBorelHom.ext {X : Type u_1} {Y : Type u_2} [OmegaQuasiBorelSpace X] [OmegaQuasiBorelSpace Y] {f g : X →ω𝒒 Y} (h : ∀ (x : X), f x = g x) :
        f = g
        theorem OmegaQuasiBorelHom.ext_iff {X : Type u_1} {Y : Type u_2} [OmegaQuasiBorelSpace X] [OmegaQuasiBorelSpace Y] {f g : X →ω𝒒 Y} :
        f = g ↔ ∀ (x : X), f x = g x
        def OmegaQuasiBorelHom.copy {X : Type u_1} {Y : Type u_2} [OmegaQuasiBorelSpace X] [OmegaQuasiBorelSpace Y] (f : X →ω𝒒 Y) (f' : X → Y) (h : f' = ⇑f) :

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

        Equations
        • f.copy f' h = { toFun := f', isHom' := ⋯, ωScottContinuous' := ⋯ }
        Instances For
          @[simp]
          theorem OmegaQuasiBorelHom.coe_mk {X : Type u_1} {Y : Type u_2} [OmegaQuasiBorelSpace X] [OmegaQuasiBorelSpace Y] {f : X → Y} (hf₁ : QuasiBorelSpace.IsHom f) (hf₂ : OmegaCompletePartialOrder.ωScottContinuous f) :
          ⇑{ toFun := f, isHom' := hf₁, ωScottContinuous' := hf₂ } = f
          @[simp]
          theorem OmegaQuasiBorelHom.eta {X : Type u_1} {Y : Type u_2} [OmegaQuasiBorelSpace X] [OmegaQuasiBorelSpace Y] (f : X →ω𝒒 Y) :
          { toFun := ⇑f, isHom' := ⋯, ωScottContinuous' := ⋯ } = f
          @[simp]

          Converts an ωQBS Hom to a Poset Hom.

          Equations
          • ↑f = { toFun := ⇑f, monotone' := ⋯ }
          Instances For
            @[simp]
            theorem OmegaQuasiBorelHom.toOrderHom_coe {X : Type u_1} {Y : Type u_2} [OmegaQuasiBorelSpace X] [OmegaQuasiBorelSpace Y] (f : X →ω𝒒 Y) (a : X) :
            ↑f a = f a

            Converts a ωQBS Hom to an ωCPO Hom.

            Equations
            • ↑f = { toFun := ⇑f, monotone' := ⋯, map_ωSup' := ⋯ }
            Instances For
              @[simp]
              theorem OmegaQuasiBorelHom.toContinuousHom_apply {X : Type u_1} {Y : Type u_2} [OmegaQuasiBorelSpace X] [OmegaQuasiBorelSpace Y] (f : X →ω𝒒 Y) (a : X) :
              ↑f a = f a

              Converts a ωQBS Hom to a quasi-Borel Hom.

              Equations
              • ↑f = { toFun := ⇑f, property := ⋯ }
              Instances For
                @[simp]
                theorem OmegaQuasiBorelHom.toQuasiBorelHom_coe {X : Type u_1} {Y : Type u_2} [OmegaQuasiBorelSpace X] [OmegaQuasiBorelSpace Y] (f : X →ω𝒒 Y) (a : X) :
                ↑f a = f a

                The underlying pointwise function as an order homomorphism.

                Equations
                Instances For
                  @[instance_reducible]

                  The ωCPO structure on the exponential is the pointwise order.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  @[simp]
                  theorem OmegaQuasiBorelHom.le_def {X : Type u_1} {Y : Type u_2} [OmegaQuasiBorelSpace X] [OmegaQuasiBorelSpace Y] (a b : X →ω𝒒 Y) :
                  (a ≤ b) = (⇑a ≤ ⇑b)
                  @[simp]
                  theorem OmegaQuasiBorelHom.lt_def {X : Type u_1} {Y : Type u_2} [OmegaQuasiBorelSpace X] [OmegaQuasiBorelSpace Y] (a b : X →ω𝒒 Y) :
                  (a < b) = (⇑a < ⇑b)
                  @[instance_reducible]

                  The QBS structure on the ωHoms is identical to normal QBS Homs.

                  Equations
                  @[simp]
                  theorem OmegaQuasiBorelHom.isHom_eval {X : Type u_1} {Y : Type u_2} [OmegaQuasiBorelSpace X] [OmegaQuasiBorelSpace Y] :
                  QuasiBorelSpace.IsHom fun (p : (X →ω𝒒 Y) × X) => p.1 p.2
                  theorem OmegaQuasiBorelHom.isHom_eval' {X : Type u_1} {Y : Type u_2} {Z : Type u_3} [OmegaQuasiBorelSpace Y] [OmegaQuasiBorelSpace Z] [QuasiBorelSpace X] {f : X → Y →ω𝒒 Z} (hf : QuasiBorelSpace.IsHom f) {g : X → Y} (hg : QuasiBorelSpace.IsHom g) :
                  QuasiBorelSpace.IsHom fun (x : X) => (f x) (g x)
                  @[simp]
                  theorem OmegaQuasiBorelHom.isHom_iff {X : Type u_1} {Y : Type u_2} {Z : Type u_3} [OmegaQuasiBorelSpace Y] [OmegaQuasiBorelSpace Z] [QuasiBorelSpace X] (f : X → Y →ω𝒒 Z) :
                  QuasiBorelSpace.IsHom f ↔ QuasiBorelSpace.IsHom fun (x : X × Y) => (f x.1) x.2
                  theorem OmegaQuasiBorelHom.isHom_mk {X : Type u_1} {Y : Type u_2} {Z : Type u_3} [OmegaQuasiBorelSpace X] [OmegaQuasiBorelSpace Y] [OmegaQuasiBorelSpace Z] {f : X → Y → Z} (h₁ : QuasiBorelSpace.IsHom fun (x : X × Y) => f x.1 x.2) (h₂ : ∀ (x : X), OmegaCompletePartialOrder.ωScottContinuous (f x)) :
                  QuasiBorelSpace.IsHom fun (x : X) => { toFun := f x, isHom' := ⋯, ωScottContinuous' := ⋯ }
                  theorem OmegaQuasiBorelHom.ωScottContinuous_mk {X : Type u_1} {Y : Type u_2} {Z : Type u_3} [OmegaQuasiBorelSpace X] [OmegaQuasiBorelSpace Y] [OmegaQuasiBorelSpace Z] {f : X → Y → Z} (h₁ : ∀ (x : X), QuasiBorelSpace.IsHom (f x)) (h₂ : OmegaCompletePartialOrder.ωScottContinuous fun (x : X × Y) => f x.1 x.2) :
                  OmegaCompletePartialOrder.ωScottContinuous fun (x : X) => { toFun := f x, isHom' := ⋯, ωScottContinuous' := ⋯ }
                  @[instance_reducible]

                  The exponential object is an ωQBS.

                  Equations
                  • One or more equations did not get rendered due to their size.

                  Operations #

                  Identity OmegaQuasiBorelHoms.

                  Equations
                  Instances For
                    @[simp]
                    theorem OmegaQuasiBorelHom.id_coe {X : Type u_1} [OmegaQuasiBorelSpace X] (x : X) :
                    id x = x

                    Function composition for OmegaQuasiBorelHoms.

                    Equations
                    • f.comp g = { toFun := fun (x : X) => f (g x), isHom' := ⋯, ωScottContinuous' := ⋯ }
                    Instances For
                      @[simp]
                      theorem OmegaQuasiBorelHom.comp_coe {X : Type u_1} {Y : Type u_2} {Z : Type u_3} [OmegaQuasiBorelSpace X] [OmegaQuasiBorelSpace Y] [OmegaQuasiBorelSpace Z] (f : Y →ω𝒒 Z) (g : X →ω𝒒 Y) (x : X) :
                      (f.comp g) x = f (g x)

                      Product construction as an OmegaQuasiBorelHom.

                      Equations
                      Instances For
                        @[simp]
                        theorem OmegaQuasiBorelHom.Prod.mk_coe {X : Type u_1} {Y : Type u_2} {Z : Type u_3} [OmegaQuasiBorelSpace X] [OmegaQuasiBorelSpace Y] [OmegaQuasiBorelSpace Z] (f : X →ω𝒒 Y) (g : X →ω𝒒 Z) (x : X) :
                        (mk f g) x = (f x, g x)

                        First product projection.

                        Equations
                        Instances For
                          @[simp]
                          theorem OmegaQuasiBorelHom.Prod.fst_coe {X : Type u_1} {Y : Type u_2} [OmegaQuasiBorelSpace X] [OmegaQuasiBorelSpace Y] (x : X × Y) :
                          fst x = x.1

                          Second product projection.

                          Equations
                          Instances For
                            @[simp]
                            theorem OmegaQuasiBorelHom.Prod.snd_coe {X : Type u_1} {Y : Type u_2} [OmegaQuasiBorelSpace X] [OmegaQuasiBorelSpace Y] (x : X × Y) :
                            snd x = x.2

                            Currying for OmegaQuasiBorelHoms.

                            Equations
                            • f.curry = { toFun := fun (x : Z) => { toFun := fun (y : X) => f (x, y), isHom' := ⋯, ωScottContinuous' := ⋯ }, isHom' := ⋯, ωScottContinuous' := ⋯ }
                            Instances For
                              @[simp]
                              theorem OmegaQuasiBorelHom.curry_coe {X : Type u_1} {Y : Type u_2} {Z : Type u_3} [OmegaQuasiBorelSpace X] [OmegaQuasiBorelSpace Y] [OmegaQuasiBorelSpace Z] (f : Z × X →ω𝒒 Y) (x : Z) :
                              f.curry x = { toFun := fun (y : X) => f (x, y), isHom' := ⋯, ωScottContinuous' := ⋯ }

                              Function application is an OmegaQuasiBorelHom.

                              Equations
                              Instances For
                                @[simp]
                                theorem OmegaQuasiBorelHom.eval_coe {X : Type u_1} {Y : Type u_2} [OmegaQuasiBorelSpace X] [OmegaQuasiBorelSpace Y] (x : (X →ω𝒒 Y) × X) :
                                eval x = x.1 x.2
                                @[simp]
                                theorem OmegaQuasiBorelHom.uncurry_coe {X : Type u_1} {Y : Type u_2} {Z : Type u_3} [OmegaQuasiBorelSpace X] [OmegaQuasiBorelSpace Y] [OmegaQuasiBorelSpace Z] (f : X →ω𝒒 Y →ω𝒒 Z) (x : X × Y) :
                                f.uncurry x = (f x.1) x.2