Documentation

QuasiBorelSpaces.Sigma

Small Coproducts of Quasi-Borel Spaces #

This file defines small coproducts of quasi-borel spaces by giving a QuasiBorelSpace instance for the Σ type.

See [HKSY17], Proposition 17.

structure QuasiBorelSpace.Sigma.Var (I : Type u_8) (P : IType u_9) [(i : I) → QuasiBorelSpace (P i)] :
Type (max u_8 u_9)

Represents a variable for a Σ-type. Intuitively, a variable in Σi, P i is a gluing of a countable number of variables, each in some P i.

  • embed : I

    Each index represents some I.

  • index :

    Obtains the index of the underlying variable, given the intended input.

  • var (i : ) : P (self.embed i)

    The family of variables.

  • isHom_var (i : ) : IsHom (self.var i)

    Each variable is, in fact, a variable.

  • measurable_index : Measurable self.index

    The index function is measurable.

Instances For
    def QuasiBorelSpace.Sigma.Var.apply {I : Type u_1} {P : IType u_2} [(i : I) → QuasiBorelSpace (P i)] (x : Var I P) (r : ) :

    Since every Var represents a variable, each Var induces a function ℝ → Σi, P i.

    Equations
    Instances For
      @[simp]
      theorem QuasiBorelSpace.Sigma.Var.apply_mk {I : Type u_1} {P : IType u_2} [(i : I) → QuasiBorelSpace (P i)] {f : I} {i : } {φ : (i : ) → P (f i)} {r : } ( : ∀ (i : ), IsHom (φ i)) (hi : Measurable i) :
      { embed := f, index := i, var := φ, isHom_var := , measurable_index := hi }.apply r = f (i r), φ (i r) r
      def QuasiBorelSpace.Sigma.Var.mk' {I : Type u_1} {P : IType u_2} [(i : I) → QuasiBorelSpace (P i)] (Index : Type u_8) [Encodable Index] (embed : IndexI) (index : Index) (var : (i : Index) → P (embed i)) (isHom_var : ∀ (i : Index), IsHom (var i)) (measurable_index : Measurable index) :
      Var I P

      A Var can be constructed from any Encodable index type.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[simp]
        theorem QuasiBorelSpace.Sigma.Var.apply_mk' {I : Type u_1} {P : IType u_2} [(i : I) → QuasiBorelSpace (P i)] {J : Type u_8} [Encodable J] {f : JI} {i : J} {φ : (i : J) → P (f i)} {r : } ( : ∀ (i : J), IsHom (φ i)) (hi : Measurable i) :
        (mk' J f i φ hi).apply r = f (i r), φ (i r) r
        def QuasiBorelSpace.Sigma.Var.const {I : Type u_1} {P : IType u_2} [(i : I) → QuasiBorelSpace (P i)] (x : Sigma P) :
        Var I P

        The constant variable.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[simp]
          theorem QuasiBorelSpace.Sigma.Var.const_apply {I : Type u_1} {P : IType u_2} [(i : I) → QuasiBorelSpace (P i)] (x : Sigma P) (r : ) :
          (const x).apply r = x
          def QuasiBorelSpace.Sigma.Var.comp {I : Type u_1} {P : IType u_2} [(i : I) → QuasiBorelSpace (P i)] {f : } (hf : Measurable f) (x : Var I P) :
          Var I P

          Composition under measurable functions.

          Equations
          Instances For
            @[simp]
            theorem QuasiBorelSpace.Sigma.Var.comp_apply {I : Type u_1} {P : IType u_2} [(i : I) → QuasiBorelSpace (P i)] {f : } (hf : Measurable f) (x : Var I P) (r : ) :
            (comp hf x).apply r = x.apply (f r)
            def QuasiBorelSpace.Sigma.Var.cases {I : Type u_1} {P : IType u_2} [(i : I) → QuasiBorelSpace (P i)] {ix : } (hix : Measurable ix) (φ : Var I P) :
            Var I P

            Gluing of a countable number of variables.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              @[simp]
              theorem QuasiBorelSpace.Sigma.Var.cases_apply {I : Type u_1} {P : IType u_2} [(i : I) → QuasiBorelSpace (P i)] {ix : } (hix : Measurable ix) (φ : Var I P) (r : ) :
              (cases hix φ).apply r = (φ (ix r)).apply r
              def QuasiBorelSpace.Sigma.Var.distrib {I : Type u_1} {P : IType u_2} [(i : I) → QuasiBorelSpace (P i)] {A : Type u_5} [QuasiBorelSpace A] {φ₁ : A} (hφ₁ : IsHom φ₁) (φ₂ : Var I P) :
              Var I fun (i : I) => A × P i

              Normal QuasiBorelSpace.Vars can be pushed 'inside' a Var.

              Equations
              Instances For
                @[simp]
                theorem QuasiBorelSpace.Sigma.Var.distrib_apply {I : Type u_1} {P : IType u_2} [(i : I) → QuasiBorelSpace (P i)] {A : Type u_5} [QuasiBorelSpace A] {φ₁ : A} (hφ₁ : IsHom φ₁) (φ₂ : Var I P) (r : ) :
                (distrib hφ₁ φ₂).apply r = (φ₂.apply r).fst, (φ₁ r, (φ₂.apply r).snd)
                instance QuasiBorelSpace.Sigma.instSigma {I : Type u_1} {P : IType u_2} [(i : I) → QuasiBorelSpace (P i)] :
                QuasiBorelSpace ((i : I) × P i)
                Equations
                • One or more equations did not get rendered due to their size.
                theorem QuasiBorelSpace.Sigma.isHom_def {I : Type u_1} {P : IType u_2} [(i : I) → QuasiBorelSpace (P i)] (φ : (i : I) × P i) :
                IsHom φ ∃ (ψ : Var I P), ∀ (r : ), φ r = ψ.apply r
                @[simp]
                theorem QuasiBorelSpace.Sigma.isHom_mk {I : Type u_1} {P : IType u_2} [(i : I) → QuasiBorelSpace (P i)] (i : I) :
                IsHom fun (x : P i) => i, x
                theorem QuasiBorelSpace.Sigma.isHom_mk' {I : Type u_1} {P : IType u_2} [(i : I) → QuasiBorelSpace (P i)] {A : Type u_5} [QuasiBorelSpace A] {i : I} {f : AP i} (hf : IsHom f) :
                IsHom fun (x : A) => i, f x
                theorem QuasiBorelSpace.Sigma.isHom_elim {I : Type u_1} {P : IType u_2} [(i : I) → QuasiBorelSpace (P i)] {A : Type u_5} [QuasiBorelSpace A] {f : Sigma PA} (hf : ∀ (i : I), IsHom fun (x : P i) => f i, x) :
                theorem QuasiBorelSpace.Sigma.isHom_elim' {I : Type u_1} {P : IType u_2} [(i : I) → QuasiBorelSpace (P i)] {A : Type u_5} {B : Type u_6} [QuasiBorelSpace A] [QuasiBorelSpace B] {f : (i : I) → P iB} (hf : ∀ (i : I), IsHom (f i)) {g : A(i : I) × P i} (hg : IsHom g) :
                IsHom fun (x : A) => f (g x).fst (g x).snd
                @[simp]
                theorem QuasiBorelSpace.Sigma.isHom_fst {I : Type u_1} {P : IType u_2} [(i : I) → QuasiBorelSpace (P i)] [QuasiBorelSpace I] :
                theorem QuasiBorelSpace.Sigma.isHom_distrib {I : Type u_1} {P : IType u_2} [(i : I) → QuasiBorelSpace (P i)] {A : Type u_5} [QuasiBorelSpace A] :
                IsHom fun (x : A × Sigma P) => x.2.fst, (x.1, x.2.snd)
                theorem QuasiBorelSpace.Sigma.isHom_distrib' {I : Type u_1} {P : IType u_2} [(i : I) → QuasiBorelSpace (P i)] {A : Type u_5} {B : Type u_6} [QuasiBorelSpace A] [QuasiBorelSpace B] {f : A × Sigma PB} (hf : IsHom fun (x : (i : I) × A × P i) => f (x.snd.1, x.fst, x.snd.2)) :
                theorem QuasiBorelSpace.Sigma.isHom_map {I : Type u_1} {P : IType u_2} [(i : I) → QuasiBorelSpace (P i)] {J : Type u_3} {Q : JType u_4} [(j : J) → QuasiBorelSpace (Q j)] {f : IJ} {g : (i : I) → P iQ (f i)} (hg : ∀ (i : I), IsHom (g i)) :