Product probability-measure kernels #
This file provides the basic theory of products of probability measures, phrased directly over
Mathlib's ProbabilityMeasure.pi and Measure.infinitePi: measurability of the product kernel —
finite and countable — and Measure.bind-evaluation of the mixture the finite product induces.
Measurability:
measurable_probabilityMeasure_pi— the product combinatorProbabilityMeasure.pi : (Π i, ProbabilityMeasure (α i)) → ProbabilityMeasure (Π i, α i)is measurable.measurable_probabilityMeasure_pi_toMeasure— the measure-valued random productω ↦ (ProbabilityMeasure.pi fun i => ν i ω).toMeasureis measurable, for measurable coordinate kernelsν i.aemeasurable_probabilityMeasure_pi_toMeasure— the same map isAEMeasurablefrom a.e.-measurable coordinate kernels (∀ i, AEMeasurable (ν i) μ); the_of_measurablecorollary is the measurable-input form.- the constant-coordinate (
fun _ : Fin m => ν ω) specializationsmeasurable_probabilityMeasure_pi_const_toMeasureandaemeasurable_probabilityMeasure_pi_const_toMeasure. measurable_dirac_prod_probabilityMeasure_pi_const_toMeasure— the joint kernelω ↦ δ_{ν ω} ⊗ (ν ω)^{⊗ Fin m}, pairing the block kernel with a Dirac mass at the mixing measure. This is the joint-space input a conditional (joint-law) reading of the mixture identity needs, as opposed to the block kernel alone.measurable_dirac_prod_infinitePi_const— the parameter-tagged product kernelt ↦ δ_t ⊗ (P t)^{⊗ι}over an arbitrary index type, for a measurable familyPof probability measures. Here the Dirac factor sits on the parameter rather than on the measure it selects, which is what a mixture retaining its parameter as a coordinate needs.measurable_infinitePi— the productp ↦ ⊗ᵢ p iover an arbitrary index type, of a dependent family of probability measures, is measurable in the measure argument;measurable_infinitePi_constis theℕ-constant-power specializationp ↦ p^{⊗ℕ}. Mathlib suppliesMeasure.infinitePiand its projective-limit API but not this measurability, which is what a mixture of such products needs forMeasure.bind_applyand the expected evaluation of the mixture as an integral.map_prefixProj_infinitePi— the finite-prefix marginal of a countable product, its firstncoordinates being the corresponding finite product, withmap_prefixProj_infinitePi_constthe constant-family form. Mathlib'sMeasure.infinitePi_map_restrictgives the marginal indexed by a coercedFinset; this is theFin n-prefix form that prefix-marginal arguments onℕ → αuse.map_infinitePi_pair_block— an arbitrary injective block of coordinates read off a constant countable power, and tagged with the law it came from:Q^{⊗ℕ}pushed alongx ↦ (Q, x ∘ k)isδ_Q ⊗ Q^{⊗ Fin m}. This generalizes the prefix marginal above fromFin.valto any injectivek, and pairs it with the Dirac factor, which is the form a disintegration against a directing measure consumes.
Bind-evaluation of the mixture μ.bind fun ω => (ProbabilityMeasure.pi fun i => ν i ω).toMeasure:
bind_probabilityMeasure_pi_apply— evaluation on a measurable set as the integral of the product kernel, from a.e.-measurable coordinate kernels.bind_probabilityMeasure_pi_pi— evaluation on a measurable rectangle as the integral of the product of coordinate measures, withFin mconstant-coordinate formsbind_probabilityMeasure_pi_const_applyandbind_probabilityMeasure_pi_const_pi.map_prefixProj_bind_infinitePi_pi— the same evaluation for the countable-product mixtureπ.bind (P ↦ P^{⊗ℕ}): its finite-prefix rectangle probabilities are the mixed moments∫⁻ P, ∏ i, P (B i) ∂πof the evaluation maps. This pairs the prefix-marginal lemma above with bind-evaluation, and is what identifiability arguments for the mixing measure consume.
This file does not introduce a new product-kernel structure; the lemmas live directly over Mathlib's
ProbabilityMeasure.pi. It advances TauCetiRoadmap/Exchangeability, Layer 1 (product kernels and
mixtures), and is motivated by the product-kernel layer of
cameronfreer/exchangeability (MeasureKernels.lean and the bind_pi_apply of
DeFinetti/CommonEnding.lean, pin e0532e59ceff23edab44dda9ab0655debbc9cc22), implemented using
Mathlib's ProbabilityMeasure.pi, Measure.bind_apply, and Giry measurability API; the combinator
generalizes Mathlib's binary ProbabilityMeasure.measurable_fun_prod to finite index types.
The finite product combinator ProbabilityMeasure.pi is a measurable map
(Π i, ProbabilityMeasure (α i)) → ProbabilityMeasure (Π i, α i).
A finite product of measurable probability-measure kernels is a measurable measure-valued map:
if each ν i : Ω → ProbabilityMeasure (α i) is measurable, then
ω ↦ (ProbabilityMeasure.pi fun i => ν i ω).toMeasure is measurable.
A finite product of a.e.-measurable probability-measure kernels is an a.e.-measurable
measure-valued map: if each ν i : Ω → ProbabilityMeasure (α i) is AEMeasurable, then so is
ω ↦ (ProbabilityMeasure.pi fun i => ν i ω).toMeasure.
Measurable-input corollary of aemeasurable_probabilityMeasure_pi_toMeasure.
Constant-coordinate specialization of measurable_probabilityMeasure_pi_toMeasure: the random
product ω ↦ (ν ω)^{⊗ Fin m} is measurable.
Constant-coordinate specialization of aemeasurable_probabilityMeasure_pi_toMeasure: the random
product ω ↦ (ν ω)^{⊗ Fin m} is AEMeasurable from an a.e.-measurable kernel ν.
Joint-kernel measurability. The random measure
ω ↦ δ_{ν ω} ⊗ (ν ω)^{⊗ Fin m} on ProbabilityMeasure α × (Fin m → α) is measurable.
This is the joint-space companion of measurable_probabilityMeasure_pi_const_toMeasure: where that
one gives the block kernel alone, this one pairs it with a Dirac mass at the mixing measure itself,
which is what a conditional (joint-law) reading of the de Finetti mixture identity has to speak
about. It supplies the Measure.bind_apply and measure-extensionality inputs on the joint space
(TauCetiRoadmap/Exchangeability/README.md, Layer 1). No hypotheses beyond measurability of ν.
Product measurability in the measure argument. For an arbitrary index type and a dependent
family of measurable spaces, p ↦ ⊗ᵢ p i is a measurable map
(∀ i, ProbabilityMeasure (β i)) → Measure (∀ i, β i).
This is the arbitrary-index companion of measurable_probabilityMeasure_pi_toMeasure, which covers
the finite case through ProbabilityMeasure.pi. Mathlib supplies Measure.infinitePi and its
projective-limit API but not this measurability, which is what a mixture of such products needs for
Measure.bind_apply and for evaluating the mixture as an integral — the shape the de Finetti
mixture representation takes.
Constant-coordinate ℕ specialization of measurable_infinitePi: the countable power
p ↦ p^{⊗ℕ} is measurable.
Parameter-tagged product kernel. For a measurable family of probability measures
P : T → ProbabilityMeasure α, the random measure t ↦ δ_t ⊗ (P t)^{⊗ι} on T × (ι → α) is
measurable, over an arbitrary index type ι.
This is the arbitrary-power companion of
measurable_dirac_prod_probabilityMeasure_pi_const_toMeasure, with the Dirac factor sitting on the
parameter rather than on the measure it selects. It is what a mixture that retains its parameter
as a coordinate needs for Measure.bind_apply.
Finite-prefix marginal of a countable product. Restricting ⊗ⱼ p j to its first n
coordinates gives the finite product ⊗_{i : Fin n} p i.
Mathlib's Measure.infinitePi_map_restrict gives the marginal along a Finset.restrict, indexed by
the coerced finite set; this is the Fin n-prefix form, which is what prefix-marginal arguments on
ℕ → α use. Stated with the bare prefix map rather than any particular prefix abbreviation, so it
stays independent of downstream conventions.
Constant-coordinate specialization of map_prefixProj_infinitePi: the first n coordinates of
p^{⊗ℕ} are distributed as p^{⊗ Fin n}.
Selecting a block from an i.i.d. power, tagged. Reading an injective block k : Fin m → ℕ
of coordinates off the countable power Q^{⊗ℕ} and recording a tag t alongside the result gives
δ_t ⊗ Q^{⊗ Fin m}; injectivity is what makes the selected coordinates independent.
The tag is arbitrary and need not be Q itself: a mixture law carries the parameter t while
sampling from P t, so the two differ there. Tagging with the law itself is the instance
map_infinitePi_pair_block Q Q.
This is map_prefixProj_infinitePi_const for an arbitrary injective block rather than a prefix,
paired with a tag, which is the form a disintegration against a directing measure consumes.
Bind-evaluation. Evaluating the mixture
μ.bind fun ω => (ProbabilityMeasure.pi fun i => ν i ω).toMeasure on a measurable set s gives
∫⁻ ω, … s ∂μ, requiring only a.e.-measurability of each coordinate kernel ν i.
Bind-evaluation on a rectangle. On a rectangle Set.univ.pi B, the mixture equals
∫⁻ ω, ∏ i, (ν i ω) (B i) ∂μ.
Constant-coordinate Fin m specialization of bind_probabilityMeasure_pi_apply.
Constant-coordinate Fin m specialization of bind_probabilityMeasure_pi_pi: the
finite-block mixture identity the de Finetti common ending consumes.
The mixture's finite-dimensional rectangle probabilities are the mixed moments of the
evaluation maps: pushing π.bind (P ↦ P^{⊗ℕ}) to its first n coordinates and evaluating on a
rectangle ∏ i, B i gives ∫⁻ P, ∏ i, P (B i) ∂π.