Documentation

Mathlib.Probability.Kernel.Composition

Product and composition of kernels #

We define

A note on names: The composition-product kernel α β → kernel (α × β) γ → kernel α (β × γ) is named composition in [kallenberg2021] and product on the wikipedia article on transition kernels. Most papers studying categories of kernels call composition the map we call composition. We adopt that convention because it fits better with the use of the name comp elsewhere in mathlib.

Main definitions #

Kernels built from other kernels:

Main statements #

Notations #

Composition-Product of kernels #

We define a kernel composition-product compProd : kernel α β → kernel (α × β) γ → kernel α (β × γ).

noncomputable def ProbabilityTheory.kernel.compProdFun {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel α β }) (η : { x // x ProbabilityTheory.kernel (α × β) γ }) (a : α) (s : Set (β × γ)) :

Auxiliary function for the definition of the composition-product of two kernels. For all a : α, compProdFun κ η a is a countably additive function with value zero on the empty set, and the composition-product of kernels is defined in kernel.compProd through Measure.ofMeasurable.

Instances For
    theorem ProbabilityTheory.kernel.compProdFun_empty {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel α β }) (η : { x // x ProbabilityTheory.kernel (α × β) γ }) (a : α) :
    theorem ProbabilityTheory.kernel.compProdFun_iUnion {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel α β }) (η : { x // x ProbabilityTheory.kernel (α × β) γ }) [ProbabilityTheory.IsSFiniteKernel η] (a : α) (f : Set (β × γ)) (hf_meas : ∀ (i : ), MeasurableSet (f i)) (hf_disj : Pairwise (Disjoint on f)) :
    ProbabilityTheory.kernel.compProdFun κ η a (⋃ (i : ), f i) = ∑' (i : ), ProbabilityTheory.kernel.compProdFun κ η a (f i)
    theorem ProbabilityTheory.kernel.compProdFun_tsum_right {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} {s : Set (β × γ)} (κ : { x // x ProbabilityTheory.kernel α β }) (η : { x // x ProbabilityTheory.kernel (α × β) γ }) [ProbabilityTheory.IsSFiniteKernel η] (a : α) (hs : MeasurableSet s) :
    theorem ProbabilityTheory.kernel.compProdFun_tsum_left {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel α β }) (η : { x // x ProbabilityTheory.kernel (α × β) γ }) [ProbabilityTheory.IsSFiniteKernel κ] (a : α) (s : Set (β × γ)) :

    Auxiliary lemma for measurable_compProdFun.

    theorem ProbabilityTheory.kernel.measurable_compProdFun {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} {s : Set (β × γ)} (κ : { x // x ProbabilityTheory.kernel α β }) [ProbabilityTheory.IsSFiniteKernel κ] (η : { x // x ProbabilityTheory.kernel (α × β) γ }) [ProbabilityTheory.IsSFiniteKernel η] (hs : MeasurableSet s) :
    noncomputable def ProbabilityTheory.kernel.compProd {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel α β }) (η : { x // x ProbabilityTheory.kernel (α × β) γ }) :
    { x // x ProbabilityTheory.kernel α (β × γ) }

    Composition-Product of kernels. For s-finite kernels, it satisfies ∫⁻ bc, f bc ∂(compProd κ η a) = ∫⁻ b, ∫⁻ c, f (b, c) ∂(η (a, b)) ∂(κ a) (see ProbabilityTheory.kernel.lintegral_compProd). If either of the kernels is not s-finite, compProd is given the junk value 0.

    Instances For
      theorem ProbabilityTheory.kernel.compProd_apply_eq_compProdFun {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} {s : Set (β × γ)} (κ : { x // x ProbabilityTheory.kernel α β }) [ProbabilityTheory.IsSFiniteKernel κ] (η : { x // x ProbabilityTheory.kernel (α × β) γ }) [ProbabilityTheory.IsSFiniteKernel η] (a : α) (hs : MeasurableSet s) :
      theorem ProbabilityTheory.kernel.compProd_apply {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} {s : Set (β × γ)} (κ : { x // x ProbabilityTheory.kernel α β }) [ProbabilityTheory.IsSFiniteKernel κ] (η : { x // x ProbabilityTheory.kernel (α × β) γ }) [ProbabilityTheory.IsSFiniteKernel η] (a : α) (hs : MeasurableSet s) :
      ↑(↑(ProbabilityTheory.kernel.compProd κ η) a) s = ∫⁻ (b : β), ↑(η (a, b)) {c | (b, c) s}κ a
      theorem ProbabilityTheory.kernel.le_compProd_apply {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel α β }) [ProbabilityTheory.IsSFiniteKernel κ] (η : { x // x ProbabilityTheory.kernel (α × β) γ }) [ProbabilityTheory.IsSFiniteKernel η] (a : α) (s : Set (β × γ)) :
      ∫⁻ (b : β), ↑(η (a, b)) {c | (b, c) s}κ a ↑(↑(ProbabilityTheory.kernel.compProd κ η) a) s
      @[simp]
      theorem ProbabilityTheory.kernel.compProd_zero_left {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel (α × β) γ }) :
      @[simp]
      theorem ProbabilityTheory.kernel.compProd_zero_right {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} (κ : { x // x ProbabilityTheory.kernel α β }) (γ : Type u_5) [MeasurableSpace γ] :

      ae filter of the composition-product #

      theorem ProbabilityTheory.kernel.ae_kernel_lt_top {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} {s : Set (β × γ)} {κ : { x // x ProbabilityTheory.kernel α β }} [ProbabilityTheory.IsSFiniteKernel κ] {η : { x // x ProbabilityTheory.kernel (α × β) γ }} [ProbabilityTheory.IsSFiniteKernel η] (a : α) (h2s : ↑(↑(ProbabilityTheory.kernel.compProd κ η) a) s ) :
      ∀ᵐ (b : β) ∂κ a, ↑(η (a, b)) (Prod.mk b ⁻¹' s) <
      theorem ProbabilityTheory.kernel.compProd_null {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} {s : Set (β × γ)} {κ : { x // x ProbabilityTheory.kernel α β }} [ProbabilityTheory.IsSFiniteKernel κ] {η : { x // x ProbabilityTheory.kernel (α × β) γ }} [ProbabilityTheory.IsSFiniteKernel η] (a : α) (hs : MeasurableSet s) :
      ↑(↑(ProbabilityTheory.kernel.compProd κ η) a) s = 0 (fun b => ↑(η (a, b)) (Prod.mk b ⁻¹' s)) =ᶠ[MeasureTheory.Measure.ae (κ a)] 0
      theorem ProbabilityTheory.kernel.ae_null_of_compProd_null {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} {s : Set (β × γ)} {κ : { x // x ProbabilityTheory.kernel α β }} [ProbabilityTheory.IsSFiniteKernel κ] {η : { x // x ProbabilityTheory.kernel (α × β) γ }} [ProbabilityTheory.IsSFiniteKernel η] {a : α} (h : ↑(↑(ProbabilityTheory.kernel.compProd κ η) a) s = 0) :
      (fun b => ↑(η (a, b)) (Prod.mk b ⁻¹' s)) =ᶠ[MeasureTheory.Measure.ae (κ a)] 0
      theorem ProbabilityTheory.kernel.ae_ae_of_ae_compProd {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} {κ : { x // x ProbabilityTheory.kernel α β }} [ProbabilityTheory.IsSFiniteKernel κ] {η : { x // x ProbabilityTheory.kernel (α × β) γ }} [ProbabilityTheory.IsSFiniteKernel η] {a : α} {p : β × γProp} (h : ∀ᵐ (bc : β × γ) ∂↑(ProbabilityTheory.kernel.compProd κ η) a, p bc) :
      ∀ᵐ (b : β) ∂κ a, ∀ᵐ (c : γ) ∂η (a, b), p (b, c)

      Lebesgue integral #

      theorem ProbabilityTheory.kernel.lintegral_compProd' {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel α β }) [ProbabilityTheory.IsSFiniteKernel κ] (η : { x // x ProbabilityTheory.kernel (α × β) γ }) [ProbabilityTheory.IsSFiniteKernel η] (a : α) {f : βγENNReal} (hf : Measurable (Function.uncurry f)) :
      ∫⁻ (bc : β × γ), f bc.fst bc.snd↑(ProbabilityTheory.kernel.compProd κ η) a = ∫⁻ (b : β), ∫⁻ (c : γ), f b cη (a, b)κ a

      Lebesgue integral against the composition-product of two kernels.

      theorem ProbabilityTheory.kernel.lintegral_compProd {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel α β }) [ProbabilityTheory.IsSFiniteKernel κ] (η : { x // x ProbabilityTheory.kernel (α × β) γ }) [ProbabilityTheory.IsSFiniteKernel η] (a : α) {f : β × γENNReal} (hf : Measurable f) :
      ∫⁻ (bc : β × γ), f bc↑(ProbabilityTheory.kernel.compProd κ η) a = ∫⁻ (b : β), ∫⁻ (c : γ), f (b, c)η (a, b)κ a

      Lebesgue integral against the composition-product of two kernels.

      theorem ProbabilityTheory.kernel.lintegral_compProd₀ {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel α β }) [ProbabilityTheory.IsSFiniteKernel κ] (η : { x // x ProbabilityTheory.kernel (α × β) γ }) [ProbabilityTheory.IsSFiniteKernel η] (a : α) {f : β × γENNReal} (hf : AEMeasurable f) :
      ∫⁻ (z : β × γ), f z↑(ProbabilityTheory.kernel.compProd κ η) a = ∫⁻ (x : β), ∫⁻ (y : γ), f (x, y)η (a, x)κ a

      Lebesgue integral against the composition-product of two kernels.

      theorem ProbabilityTheory.kernel.set_lintegral_compProd {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel α β }) [ProbabilityTheory.IsSFiniteKernel κ] (η : { x // x ProbabilityTheory.kernel (α × β) γ }) [ProbabilityTheory.IsSFiniteKernel η] (a : α) {f : β × γENNReal} (hf : Measurable f) {s : Set β} {t : Set γ} (hs : MeasurableSet s) (ht : MeasurableSet t) :
      ∫⁻ (z : β × γ) in s ×ˢ t, f z↑(ProbabilityTheory.kernel.compProd κ η) a = ∫⁻ (x : β) in s, ∫⁻ (y : γ) in t, f (x, y)η (a, x)κ a
      theorem ProbabilityTheory.kernel.set_lintegral_compProd_univ_right {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel α β }) [ProbabilityTheory.IsSFiniteKernel κ] (η : { x // x ProbabilityTheory.kernel (α × β) γ }) [ProbabilityTheory.IsSFiniteKernel η] (a : α) {f : β × γENNReal} (hf : Measurable f) {s : Set β} (hs : MeasurableSet s) :
      ∫⁻ (z : β × γ) in s ×ˢ Set.univ, f z↑(ProbabilityTheory.kernel.compProd κ η) a = ∫⁻ (x : β) in s, ∫⁻ (y : γ), f (x, y)η (a, x)κ a
      theorem ProbabilityTheory.kernel.set_lintegral_compProd_univ_left {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel α β }) [ProbabilityTheory.IsSFiniteKernel κ] (η : { x // x ProbabilityTheory.kernel (α × β) γ }) [ProbabilityTheory.IsSFiniteKernel η] (a : α) {f : β × γENNReal} (hf : Measurable f) {t : Set γ} (ht : MeasurableSet t) :
      ∫⁻ (z : β × γ) in Set.univ ×ˢ t, f z↑(ProbabilityTheory.kernel.compProd κ η) a = ∫⁻ (x : β), ∫⁻ (y : γ) in t, f (x, y)η (a, x)κ a
      theorem ProbabilityTheory.kernel.compProd_eq_tsum_compProd {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} {s : Set (β × γ)} (κ : { x // x ProbabilityTheory.kernel α β }) [ProbabilityTheory.IsSFiniteKernel κ] (η : { x // x ProbabilityTheory.kernel (α × β) γ }) [ProbabilityTheory.IsSFiniteKernel η] (a : α) (hs : MeasurableSet s) :
      theorem ProbabilityTheory.kernel.compProd_apply_univ_le {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel α β }) (η : { x // x ProbabilityTheory.kernel (α × β) γ }) [ProbabilityTheory.IsFiniteKernel η] (a : α) :
      ↑(↑(ProbabilityTheory.kernel.compProd κ η) a) Set.univ ↑(κ a) Set.univ * ProbabilityTheory.IsFiniteKernel.bound η

      map, comap #

      noncomputable def ProbabilityTheory.kernel.map {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel α β }) (f : βγ) (hf : Measurable f) :
      { x // x ProbabilityTheory.kernel α γ }

      The pushforward of a kernel along a measurable function. We include measurability in the assumptions instead of using junk values to make sure that typeclass inference can infer that the map of a Markov kernel is again a Markov kernel.

      Instances For
        theorem ProbabilityTheory.kernel.map_apply {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} {f : βγ} (κ : { x // x ProbabilityTheory.kernel α β }) (hf : Measurable f) (a : α) :
        theorem ProbabilityTheory.kernel.map_apply' {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} {f : βγ} (κ : { x // x ProbabilityTheory.kernel α β }) (hf : Measurable f) (a : α) {s : Set γ} (hs : MeasurableSet s) :
        ↑(↑(ProbabilityTheory.kernel.map κ f hf) a) s = ↑(κ a) (f ⁻¹' s)
        @[simp]
        theorem ProbabilityTheory.kernel.map_zero {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} {f : βγ} (hf : Measurable f) :
        theorem ProbabilityTheory.kernel.lintegral_map {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} {f : βγ} (κ : { x // x ProbabilityTheory.kernel α β }) (hf : Measurable f) (a : α) {g' : γENNReal} (hg : Measurable g') :
        ∫⁻ (b : γ), g' b↑(ProbabilityTheory.kernel.map κ f hf) a = ∫⁻ (a : β), g' (f a)κ a
        def ProbabilityTheory.kernel.comap {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel α β }) (g : γα) (hg : Measurable g) :
        { x // x ProbabilityTheory.kernel γ β }

        Pullback of a kernel, such that for each set s comap κ g hg c s = κ (g c) s. We include measurability in the assumptions instead of using junk values to make sure that typeclass inference can infer that the comap of a Markov kernel is again a Markov kernel.

        Instances For
          theorem ProbabilityTheory.kernel.comap_apply {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} {g : γα} (κ : { x // x ProbabilityTheory.kernel α β }) (hg : Measurable g) (c : γ) :
          ↑(ProbabilityTheory.kernel.comap κ g hg) c = κ (g c)
          theorem ProbabilityTheory.kernel.comap_apply' {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} {g : γα} (κ : { x // x ProbabilityTheory.kernel α β }) (hg : Measurable g) (c : γ) (s : Set β) :
          ↑(↑(ProbabilityTheory.kernel.comap κ g hg) c) s = ↑(κ (g c)) s
          @[simp]
          theorem ProbabilityTheory.kernel.comap_zero {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} {g : γα} (hg : Measurable g) :
          theorem ProbabilityTheory.kernel.lintegral_comap {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} {g : γα} (κ : { x // x ProbabilityTheory.kernel α β }) (hg : Measurable g) (c : γ) (g' : βENNReal) :
          ∫⁻ (b : β), g' b↑(ProbabilityTheory.kernel.comap κ g hg) c = ∫⁻ (b : β), g' bκ (g c)
          def ProbabilityTheory.kernel.prodMkLeft {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} (γ : Type u_4) [MeasurableSpace γ] (κ : { x // x ProbabilityTheory.kernel α β }) :
          { x // x ProbabilityTheory.kernel (γ × α) β }

          Define a kernel (γ × α) β from a kernel α β by taking the comap of the projection.

          Instances For
            theorem ProbabilityTheory.kernel.prodMkLeft_apply {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel α β }) (ca : γ × α) :
            ↑(ProbabilityTheory.kernel.prodMkLeft γ κ) ca = κ ca.snd
            theorem ProbabilityTheory.kernel.prodMkLeft_apply' {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel α β }) (ca : γ × α) (s : Set β) :
            ↑(↑(ProbabilityTheory.kernel.prodMkLeft γ κ) ca) s = ↑(κ ca.snd) s
            theorem ProbabilityTheory.kernel.lintegral_prodMkLeft {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel α β }) (ca : γ × α) (g : βENNReal) :
            ∫⁻ (b : β), g b↑(ProbabilityTheory.kernel.prodMkLeft γ κ) ca = ∫⁻ (b : β), g bκ ca.snd
            def ProbabilityTheory.kernel.swapLeft {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel (α × β) γ }) :
            { x // x ProbabilityTheory.kernel (β × α) γ }

            Define a kernel (β × α) γ from a kernel (α × β) γ by taking the comap of Prod.swap.

            Instances For
              theorem ProbabilityTheory.kernel.swapLeft_apply {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel (α × β) γ }) (a : β × α) :
              theorem ProbabilityTheory.kernel.swapLeft_apply' {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel (α × β) γ }) (a : β × α) (s : Set γ) :
              ↑(↑(ProbabilityTheory.kernel.swapLeft κ) a) s = ↑(κ (Prod.swap a)) s
              theorem ProbabilityTheory.kernel.lintegral_swapLeft {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel (α × β) γ }) (a : β × α) (g : γENNReal) :
              ∫⁻ (c : γ), g c↑(ProbabilityTheory.kernel.swapLeft κ) a = ∫⁻ (c : γ), g cκ (Prod.swap a)
              noncomputable def ProbabilityTheory.kernel.swapRight {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel α (β × γ) }) :
              { x // x ProbabilityTheory.kernel α (γ × β) }

              Define a kernel α (γ × β) from a kernel α (β × γ) by taking the map of Prod.swap.

              Instances For
                theorem ProbabilityTheory.kernel.swapRight_apply {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel α (β × γ) }) (a : α) :
                theorem ProbabilityTheory.kernel.swapRight_apply' {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel α (β × γ) }) (a : α) {s : Set (γ × β)} (hs : MeasurableSet s) :
                ↑(↑(ProbabilityTheory.kernel.swapRight κ) a) s = ↑(κ a) {p | Prod.swap p s}
                theorem ProbabilityTheory.kernel.lintegral_swapRight {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel α (β × γ) }) (a : α) {g : γ × βENNReal} (hg : Measurable g) :
                ∫⁻ (c : γ × β), g c↑(ProbabilityTheory.kernel.swapRight κ) a = ∫⁻ (bc : β × γ), g (Prod.swap bc)κ a
                noncomputable def ProbabilityTheory.kernel.fst {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel α (β × γ) }) :
                { x // x ProbabilityTheory.kernel α β }

                Define a kernel α β from a kernel α (β × γ) by taking the map of the first projection.

                Instances For
                  theorem ProbabilityTheory.kernel.fst_apply {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel α (β × γ) }) (a : α) :
                  theorem ProbabilityTheory.kernel.fst_apply' {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel α (β × γ) }) (a : α) {s : Set β} (hs : MeasurableSet s) :
                  ↑(↑(ProbabilityTheory.kernel.fst κ) a) s = ↑(κ a) {p | p.fst s}
                  theorem ProbabilityTheory.kernel.lintegral_fst {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel α (β × γ) }) (a : α) {g : βENNReal} (hg : Measurable g) :
                  ∫⁻ (c : β), g c↑(ProbabilityTheory.kernel.fst κ) a = ∫⁻ (bc : β × γ), g bc.fstκ a
                  noncomputable def ProbabilityTheory.kernel.snd {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel α (β × γ) }) :
                  { x // x ProbabilityTheory.kernel α γ }

                  Define a kernel α γ from a kernel α (β × γ) by taking the map of the second projection.

                  Instances For
                    theorem ProbabilityTheory.kernel.snd_apply {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel α (β × γ) }) (a : α) :
                    theorem ProbabilityTheory.kernel.snd_apply' {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel α (β × γ) }) (a : α) {s : Set γ} (hs : MeasurableSet s) :
                    ↑(↑(ProbabilityTheory.kernel.snd κ) a) s = ↑(κ a) {p | p.snd s}
                    theorem ProbabilityTheory.kernel.lintegral_snd {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel α (β × γ) }) (a : α) {g : γENNReal} (hg : Measurable g) :
                    ∫⁻ (c : γ), g c↑(ProbabilityTheory.kernel.snd κ) a = ∫⁻ (bc : β × γ), g bc.sndκ a

                    Composition of two kernels #

                    noncomputable def ProbabilityTheory.kernel.comp {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (η : { x // x ProbabilityTheory.kernel β γ }) (κ : { x // x ProbabilityTheory.kernel α β }) :
                    { x // x ProbabilityTheory.kernel α γ }

                    Composition of two kernels.

                    Instances For
                      theorem ProbabilityTheory.kernel.comp_apply {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (η : { x // x ProbabilityTheory.kernel β γ }) (κ : { x // x ProbabilityTheory.kernel α β }) (a : α) :
                      theorem ProbabilityTheory.kernel.comp_apply' {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (η : { x // x ProbabilityTheory.kernel β γ }) (κ : { x // x ProbabilityTheory.kernel α β }) (a : α) {s : Set γ} (hs : MeasurableSet s) :
                      ↑(↑(ProbabilityTheory.kernel.comp η κ) a) s = ∫⁻ (b : β), ↑(η b) sκ a
                      theorem ProbabilityTheory.kernel.lintegral_comp {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (η : { x // x ProbabilityTheory.kernel β γ }) (κ : { x // x ProbabilityTheory.kernel α β }) (a : α) {g : γENNReal} (hg : Measurable g) :
                      ∫⁻ (c : γ), g c↑(ProbabilityTheory.kernel.comp η κ) a = ∫⁻ (b : β), ∫⁻ (c : γ), g cη bκ a

                      Composition of kernels is associative.

                      Product of two kernels #

                      noncomputable def ProbabilityTheory.kernel.prod {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel α β }) (η : { x // x ProbabilityTheory.kernel α γ }) :
                      { x // x ProbabilityTheory.kernel α (β × γ) }

                      Product of two kernels. This is meaningful only when the kernels are s-finite.

                      Instances For
                        theorem ProbabilityTheory.kernel.prod_apply {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel α β }) [ProbabilityTheory.IsSFiniteKernel κ] (η : { x // x ProbabilityTheory.kernel α γ }) [ProbabilityTheory.IsSFiniteKernel η] (a : α) {s : Set (β × γ)} (hs : MeasurableSet s) :
                        ↑(↑(ProbabilityTheory.kernel.prod κ η) a) s = ∫⁻ (b : β), ↑(η a) {c | (b, c) s}κ a
                        theorem ProbabilityTheory.kernel.lintegral_prod {α : Type u_1} {β : Type u_2} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {γ : Type u_4} {mγ : MeasurableSpace γ} (κ : { x // x ProbabilityTheory.kernel α β }) [ProbabilityTheory.IsSFiniteKernel κ] (η : { x // x ProbabilityTheory.kernel α γ }) [ProbabilityTheory.IsSFiniteKernel η] (a : α) {g : β × γENNReal} (hg : Measurable g) :
                        ∫⁻ (c : β × γ), g c↑(ProbabilityTheory.kernel.prod κ η) a = ∫⁻ (b : β), ∫⁻ (c : γ), g (b, c)η aκ a