Documentation

Mathlib.Probability.Kernel.Composition.ParallelComp

Parallel composition of kernels #

Two kernels κ : Kernel α β and η : Kernel γ δ can be applied in parallel to give a kernel κ ∥ₖ η from α × γ to β × δ: (κ ∥ₖ η) (a, c) = (κ a).prod (η c).

Main definitions #

Main statements #

Notations #

Implementation notes #

Our formalization of kernels is centered around the composition-product: the product and then the parallel composition are defined as special cases of the composition-product. We could have alternatively used the building blocks of kernels seen as a Markov category: composition, parallel composition (or tensor product) and the deterministic kernels id, copy, swap and discard. The product and composition-product could then be built from these.

noncomputable def ProbabilityTheory.Kernel.parallelComp {α : Type u_1} {β : Type u_2} {γ : Type u_3} {δ : Type u_4} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {mγ : MeasurableSpace γ} {mδ : MeasurableSpace δ} (κ : ProbabilityTheory.Kernel α β) (η : ProbabilityTheory.Kernel γ δ) :

Parallel product of two kernels.

Equations
Instances For

    Parallel product of two kernels.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      theorem ProbabilityTheory.Kernel.parallelComp_apply {α : Type u_1} {β : Type u_2} {γ : Type u_3} {δ : Type u_4} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {mγ : MeasurableSpace γ} {mδ : MeasurableSpace δ} (κ : ProbabilityTheory.Kernel α β) [ProbabilityTheory.IsSFiniteKernel κ] (η : ProbabilityTheory.Kernel γ δ) [ProbabilityTheory.IsSFiniteKernel η] (x : α × γ) :
      (κ.parallelComp η) x = (κ x.1).prod (η x.2)
      theorem ProbabilityTheory.Kernel.lintegral_parallelComp {α : Type u_1} {β : Type u_2} {γ : Type u_3} {δ : Type u_4} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {mγ : MeasurableSpace γ} {mδ : MeasurableSpace δ} (κ : ProbabilityTheory.Kernel α β) [ProbabilityTheory.IsSFiniteKernel κ] (η : ProbabilityTheory.Kernel γ δ) [ProbabilityTheory.IsSFiniteKernel η] (ac : α × γ) {g : β × δENNReal} (hg : Measurable g) :
      ∫⁻ (bd : β × δ), g bd(κ.parallelComp η) ac = ∫⁻ (b : β), ∫⁻ (d : δ), g (b, d)η ac.2κ ac.1
      instance ProbabilityTheory.Kernel.instIsSFiniteKernelProdParallelComp {α : Type u_1} {β : Type u_2} {γ : Type u_3} {δ : Type u_4} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {mγ : MeasurableSpace γ} {mδ : MeasurableSpace δ} (κ : ProbabilityTheory.Kernel α β) (η : ProbabilityTheory.Kernel γ δ) :
      theorem ProbabilityTheory.Kernel.swap_parallelComp {α : Type u_1} {β : Type u_2} {γ : Type u_3} {δ : Type u_4} {mα : MeasurableSpace α} {mβ : MeasurableSpace β} {mγ : MeasurableSpace γ} {mδ : MeasurableSpace δ} {κ : ProbabilityTheory.Kernel α β} [ProbabilityTheory.IsSFiniteKernel κ] {η : ProbabilityTheory.Kernel γ δ} [ProbabilityTheory.IsSFiniteKernel η] :
      (ProbabilityTheory.Kernel.swap β δ).comp (κ.parallelComp η) = (η.parallelComp κ).comp (ProbabilityTheory.Kernel.swap α γ)

      For a deterministic kernel, copying then applying the kernel to the two copies is the same as first applying the kernel then copying.