Product and composition of kernels #
We define
- the composition-product
κ ⊗ₖ η
of two s-finite kernelsκ : Kernel α β
andη : Kernel (α × β) γ
, a kernel fromα
toβ × γ
. - the map and comap of a kernel along a measurable function.
- the composition
η ∘ₖ κ
of kernelsκ : Kernel α β
andη : Kernel β γ
, kernel fromα
toγ
. - the product
κ ×ₖ η
of s-finite kernelsκ : Kernel α β
andη : Kernel α γ
, a kernel fromα
toβ × γ
.
A note on names:
The composition-product Kernel α β → Kernel (α × β) γ → Kernel α (β × γ)
is named composition in
[Kal21] 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:
compProd (κ : Kernel α β) (η : Kernel (α × β) γ) : Kernel α (β × γ)
: composition-product of 2 s-finite kernels. We define a notationκ ⊗ₖ η = compProd κ η
.∫⁻ bc, f bc ∂((κ ⊗ₖ η) a) = ∫⁻ b, ∫⁻ c, f (b, c) ∂(η (a, b)) ∂(κ a)
map (κ : Kernel α β) (f : β → γ) : Kernel α γ
∫⁻ c, g c ∂(map κ f a) = ∫⁻ b, g (f b) ∂(κ a)
comap (κ : Kernel α β) (f : γ → α) (hf : Measurable f) : Kernel γ β
∫⁻ b, g b ∂(comap κ f hf c) = ∫⁻ b, g b ∂(κ (f c))
comp (η : Kernel β γ) (κ : Kernel α β) : Kernel α γ
: composition of 2 kernels. We define a notationη ∘ₖ κ = comp η κ
.∫⁻ c, g c ∂((η ∘ₖ κ) a) = ∫⁻ b, ∫⁻ c, g c ∂(η b) ∂(κ a)
prod (κ : Kernel α β) (η : Kernel α γ) : Kernel α (β × γ)
: product of 2 s-finite kernels.∫⁻ bc, f bc ∂((κ ×ₖ η) a) = ∫⁻ b, ∫⁻ c, f (b, c) ∂(η a) ∂(κ a)
Main statements #
lintegral_compProd
,lintegral_map
,lintegral_comap
,lintegral_comp
,lintegral_prod
: Lebesgue integral of a function against a composition-product/map/comap/composition/product of kernels.- Instances of the form
<class>.<operation>
where class is one ofIsMarkovKernel
,IsFiniteKernel
,IsSFiniteKernel
and operation is one ofcompProd
,map
,comap
,comp
,prod
. These instances state that the three classes are stable by the various operations.
Notations #
κ ⊗ₖ η = ProbabilityTheory.Kernel.compProd κ η
η ∘ₖ κ = ProbabilityTheory.Kernel.comp η κ
κ ×ₖ η = ProbabilityTheory.Kernel.prod κ η
Composition-Product of kernels #
We define a kernel composition-product
compProd : Kernel α β → Kernel (α × β) γ → Kernel α (β × γ)
.
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
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.
Equations
- One or more equations did not get rendered due to their size.
Instances For
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.
Equations
- One or more equations did not get rendered due to their size.
Instances For
ae
filter of the composition-product #
Lebesgue integral #
Lebesgue integral against the composition-product of two kernels.
Lebesgue integral against the composition-product of two kernels.
Lebesgue integral against the composition-product of two kernels.
Alias of ProbabilityTheory.Kernel.setLIntegral_compProd_univ_right
.
Alias of ProbabilityTheory.Kernel.setLIntegral_compProd_univ_left
.
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
map, comap #
The pushforward of a kernel along a measurable function. This is an implementation detail,
use map κ f
instead.
Equations
- κ.mapOfMeasurable f hf = { toFun := fun (a : α) => MeasureTheory.Measure.map f (κ a), measurable' := ⋯ }
Instances For
The pushforward of a kernel along a function.
If the function is not measurable, we use zero instead. This choice of junk
value ensures that typeclass inference can infer that the map
of a kernel
satisfying IsZeroOrMarkovKernel
again satisfies this property.
Equations
- κ.map f = if hf : Measurable f then κ.mapOfMeasurable f hf else 0
Instances For
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
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.
Equations
- κ.comap g hg = { toFun := fun (a : γ) => κ (g a), measurable' := ⋯ }
Instances For
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Define a Kernel (γ × α) β
from a Kernel α β
by taking the comap of the projection.
Equations
- ProbabilityTheory.Kernel.prodMkLeft γ κ = κ.comap Prod.snd ⋯
Instances For
Define a Kernel (α × γ) β
from a Kernel α β
by taking the comap of the projection.
Equations
- ProbabilityTheory.Kernel.prodMkRight γ κ = κ.comap Prod.fst ⋯
Instances For
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Define a Kernel (β × α) γ
from a Kernel (α × β) γ
by taking the comap of Prod.swap
.
Equations
- κ.swapLeft = κ.comap Prod.swap ⋯
Instances For
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Define a Kernel α (γ × β)
from a Kernel α (β × γ)
by taking the map of Prod.swap
.
We use mapOfMeasurable
in the definition for better defeqs.
Equations
- κ.swapRight = κ.mapOfMeasurable Prod.swap ⋯
Instances For
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Define a Kernel α β
from a Kernel α (β × γ)
by taking the map of the first projection.
We use mapOfMeasurable
for better defeqs.
Equations
- κ.fst = κ.mapOfMeasurable Prod.fst ⋯
Instances For
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Define a Kernel α γ
from a Kernel α (β × γ)
by taking the map of the second projection.
We use mapOfMeasurable
for better defeqs.
Equations
- κ.snd = κ.mapOfMeasurable Prod.snd ⋯
Instances For
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Composition of two kernels #
Composition of two kernels.
Equations
- η.comp κ = { toFun := fun (a : α) => (κ a).bind ⇑η, measurable' := ⋯ }
Instances For
Composition of two kernels.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Composition of kernels is associative.
Product of two kernels #
Product of two kernels. This is meaningful only when the kernels are s-finite.
Equations
- κ.prod η = κ.compProd (ProbabilityTheory.Kernel.prodMkLeft β η).swapLeft
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯