Documentation

TauCeti.Probability.Kernel.Randomization

Randomizing probability measures and kernels by uniform variables #

A probability measure on a standard Borel space is the law of a measurable function of a single uniform variable, and the function can be chosen to depend measurably on the measure. Packaging that choice once gives a coding map

unitIntervalCoding α : ProbabilityMeasure α → I → α

which is jointly measurable and satisfies volume.map (unitIntervalCoding α P) = P for every P. Feeding it independent uniform variables therefore realizes any product P^{⊗ι} as the law of a coordinatewise transform of uniform noise, which is map_infinitePi_volume_unitIntervalCoding.

This is the "isolation of randomness" step: a random probability measure ν and an independent uniform sequence ϑ together generate a sample from ν, with all the randomness of the sample carried by ϑ. It is what turns a conditional-distribution statement into a functional representation.

The conditional form starts from a Markov kernel κ : Kernel β α. Mathlib provides a jointly measurable realization f : β → I → α of each conditional law κ b; this file proves that the skew map (b, u) ↦ (b, f b u) sends μ.prod volume to the composition-product μ ⊗ₘ κ. Applying this to the conditional kernel of a joint law gives a functional representation of the pair by its first coordinate and a fresh independent uniform variable. This is the conditional randomization step used when a probabilistic representation is converted into latent variables.

Main definitions #

Main results #

Implementation #

Mathlib's ProbabilityTheory.Kernel.exists_measurable_map_eq_unitInterval supplies the coding for an arbitrary Markov kernel into a standard Borel space; the content here is applying it to the tautological kernel, so that the parameter space is the space of probability measures itself and no further choice has to be threaded through downstream statements. unitIntervalCoding is therefore a choice: it has no properties beyond the two recorded below, and consumers should use those rather than unfold it. The conditional results apply Mathlib's general kernel realization to an arbitrary Markov kernel, identify the resulting skew-product law by the product-measure integral formula, and use Mathlib's Measure.condKernel disintegration for the joint-law forms.

References #

The coding map of a standard Borel space. A jointly measurable ProbabilityMeasure α → I → α transporting the uniform law on the unit interval to its parameter, map_volume_unitIntervalCoding.

This is a choice among the maps with that property; the two lemmas below are its entire specification.

Equations
Instances For

    The coding map is jointly measurable in the parameter and the uniform variable.

    The coding map is measurable in the uniform variable, for each fixed parameter.

    @[simp]

    The defining property of the coding map: it transports the uniform law on I to its parameter.

    The coordinatewise coding of an ι-indexed uniform family is measurable.

    @[simp]

    Coding a product law by i.i.d. uniform noise. Applying the coding map coordinatewise to an i.i.d. uniform family produces the ι-fold power of the parameter, for an arbitrary index type.

    theorem ProbabilityTheory.Kernel.map_prod_eq_compProd_of_map {α : Type u_1} [MeasurableSpace α] {β : Type u_2} [MeasurableSpace β] {ξ : Type u_3} [MeasurableSpace ξ] {μ : MeasureTheory.Measure β} [MeasureTheory.SFinite μ] (κ : Kernel β α) [IsSFiniteKernel κ] (ρ : MeasureTheory.Measure ξ) [MeasureTheory.SFinite ρ] (f : β → ξ → α) (hf : Measurable (Function.uncurry f)) (hmap : ∀ (b : β), MeasureTheory.Measure.map (f b) ρ = κ b) :
    MeasureTheory.Measure.map (fun (p : β × ξ) => (p.1, f p.1 p.2)) (μ.prod ρ) = μ.compProd κ

    A jointly measurable fibrewise realization of a kernel turns independent noise with law ρ into the corresponding composition-product with any s-finite base measure.

    theorem ProbabilityTheory.Kernel.map_prod_prod_eq_compProd_prod_of_map {α : Type u_1} [MeasurableSpace α] {β : Type u_2} [MeasurableSpace β] {γ : Type u_3} {ξ : Type u_4} {ζ : Type u_5} [MeasurableSpace γ] [MeasurableSpace ξ] [MeasurableSpace ζ] (κ : Kernel β α) [IsSFiniteKernel κ] (η : Kernel β γ) [IsSFiniteKernel η] {μ : MeasureTheory.Measure β} [MeasureTheory.SFinite μ] (ρ₁ : MeasureTheory.Measure ξ) (ρ₂ : MeasureTheory.Measure ζ) [MeasureTheory.SFinite ρ₁] [MeasureTheory.SFinite ρ₂] (f : β → ξ → α) (g : β → ζ → γ) (hf : Measurable (Function.uncurry f)) (hg : Measurable (Function.uncurry g)) (hf_map : ∀ (b : β), MeasureTheory.Measure.map (f b) ρ₁ = κ b) (hg_map : ∀ (b : β), MeasureTheory.Measure.map (g b) ρ₂ = η b) :
    MeasureTheory.Measure.map (fun (p : β × ξ × ζ) => (p.1, f p.1 p.2.1, g p.1 p.2.2)) (μ.prod (ρ₁.prod ρ₂)) = μ.compProd (κ.prod η)

    Separate randomizations realize a product kernel. If f b and g b realize two kernels from independent noise variables, then applying them to the two coordinates of the product noise realizes the product kernel. The base point is retained in the output.

    theorem TauCeti.Probability.measurable_pi_uncurry_prod {β : Type u_2} [MeasurableSpace β] {ι : Type u_3} {ξ : ι → Type u_4} {γ : ι → Type u_5} [(i : ι) → MeasurableSpace (ξ i)] [(i : ι) → MeasurableSpace (γ i)] {f : (i : ι) → β → ξ i → γ i} (hf : ∀ (i : ι), Measurable (Function.uncurry (f i))) :
    Measurable fun (p : β × ((i : ι) → ξ i)) (i : ι) => f i p.1 (p.2 i)

    Coordinatewise coding is jointly measurable. Applying jointly measurable maps f i coordinatewise to a parameter and a family of noises is measurable in the parameter and the noises together.

    theorem TauCeti.Probability.map_prod_infinitePi_eq_of_ae_map_eq {β : Type u_2} [MeasurableSpace β] {ι : Type u_3} [Countable ι] {ξ : ι → Type u_4} {γ : ι → Type u_5} [(i : ι) → MeasurableSpace (ξ i)] [(i : ι) → MeasurableSpace (γ i)] {μ : MeasureTheory.Measure β} [MeasureTheory.SFinite μ] (P : (i : ι) → MeasureTheory.Measure (ξ i)) [∀ (i : ι), MeasureTheory.IsProbabilityMeasure (P i)] {f g : (i : ι) → β → ξ i → γ i} (hf : ∀ (i : ι), Measurable (Function.uncurry (f i))) (hg : ∀ (i : ι), Measurable (Function.uncurry (g i))) (hfg : ∀ (i : ι), ∀ᵐ (b : β) ∂μ, MeasureTheory.Measure.map (f i b) (P i) = MeasureTheory.Measure.map (g i b) (P i)) :
    MeasureTheory.Measure.map (fun (p : β × ((i : ι) → ξ i)) => (p.1, fun (i : ι) => f i p.1 (p.2 i))) (μ.prod (MeasureTheory.Measure.infinitePi P)) = MeasureTheory.Measure.map (fun (p : β × ((i : ι) → ξ i)) => (p.1, fun (i : ι) => g i p.1 (p.2 i))) (μ.prod (MeasureTheory.Measure.infinitePi P))

    Coordinatewise randomizations are determined by their fibre laws. Feed a countable family of independent noises, the i-th with law P i, into jointly measurable realizations f i b of the base point b. If, for each i and almost every b, the realization g i b has the same law as f i b, then the two families of realizations have the same joint law with the base point, although they may differ pathwise.

    theorem TauCeti.Probability.ae_map_eq_of_map_prod_eq {β : Type u_2} [MeasurableSpace β] {ξ : Type u_3} {γ : Type u_4} [MeasurableSpace ξ] [MeasurableSpace γ] [MeasurableSpace.CountableOrCountablyGenerated β γ] {μ : MeasureTheory.Measure β} [MeasureTheory.IsFiniteMeasure μ] (ρ : MeasureTheory.Measure ξ) [MeasureTheory.IsFiniteMeasure ρ] {f g : β → ξ → γ} (hf : Measurable (Function.uncurry f)) (hg : Measurable (Function.uncurry g)) (hfg : MeasureTheory.Measure.map (fun (p : β × ξ) => (p.1, f p.1 p.2)) (μ.prod ρ) = MeasureTheory.Measure.map (fun (p : β × ξ) => (p.1, g p.1 p.2)) (μ.prod ρ)) :

    Randomizations with the same joint law have almost everywhere equal fibre laws. If two jointly measurable realizations f b and g b of the base point b, fed with the same noise of law ρ, have the same joint law with the base point, then for almost every b the realizations f b and g b have the same law. This is the converse of map_prod_infinitePi_eq_of_ae_map_eq for a single noise.

    Conditional randomization of a Markov kernel. There is a jointly measurable function of the kernel parameter and one uniform variable whose skew-product law over any s-finite base measure is the corresponding composition-product.

    Conditional randomization of a joint law. Every finite measure on β × α is obtained by first drawing its first marginal and then applying a jointly measurable function to that point and a fresh independent uniform variable.

    theorem TauCeti.Probability.exists_measurable_map_map_prod_volume_eq_map_prodMk {α : Type u_1} [MeasurableSpace α] [StandardBorelSpace α] [Nonempty α] {β : Type u_2} [MeasurableSpace β] {Ω : Type u_3} [MeasurableSpace Ω] {μ : MeasureTheory.Measure Ω} [MeasureTheory.IsFiniteMeasure μ] (X : Ω → β) (Y : Ω → α) (hX : AEMeasurable X μ) (hY : AEMeasurable Y μ) :
    ∃ (f : β → ↑unitInterval → α), Measurable (Function.uncurry f) ∧ MeasureTheory.Measure.map (fun (p : β × ↑unitInterval) => (p.1, f p.1 p.2)) ((MeasureTheory.Measure.map X μ).prod MeasureTheory.volume) = MeasureTheory.Measure.map (fun (ω : Ω) => (X ω, Y ω)) μ

    Conditional randomization of a pair of random variables. The joint law of X and Y is generated by first drawing the law of X, then applying a jointly measurable function of that value and fresh independent uniform noise.

    theorem TauCeti.Probability.exists_measurable_map_prod_volume_eq_map_prodMk {α : Type u_1} [MeasurableSpace α] [StandardBorelSpace α] [Nonempty α] {β : Type u_2} [MeasurableSpace β] {Ω : Type u_3} [MeasurableSpace Ω] {μ : MeasureTheory.Measure Ω} [MeasureTheory.IsFiniteMeasure μ] (X : Ω → β) (Y : Ω → α) (hX : Measurable X) (hY : AEMeasurable Y μ) :
    ∃ (f : β → ↑unitInterval → α), Measurable (Function.uncurry f) ∧ MeasureTheory.Measure.map (fun (p : Ω × ↑unitInterval) => (X p.1, f (X p.1) p.2)) (μ.prod MeasureTheory.volume) = MeasureTheory.Measure.map (fun (ω : Ω) => (X ω, Y ω)) μ

    Functional representation with fresh independent noise. A pair (X, Y) on a finite measure space has the same law as (X, f(X, U)), where U is an independent uniform variable and f is jointly measurable.