Block cylinders and their indicator products #
For a process X : ℕ → Ω → α and a finite coordinate selection k : Fin m → ℕ:
blockCylinder X k C = {ω | ∀ i, X (k i) ω ∈ C i}— the cylinder event on the selected coordinates (matching theblockLawselection vocabulary; the first-rprefix is the casek = fun i => i.val);blockIndicatorProd X k C ω = ∏ i, 𝟙_{C i}(X (k i) ω)— its (ℝ-valued) indicator product.
These events and integrands describe finite-dimensional rectangles for arbitrary measurable
sequences, without any symmetry assumption. They are used in finite-block factorization arguments.
blockCylinder_eq_preimage_univ_pi and blockLaw_blockCylinder bridge the cylinder
to the existing rectangle/blockLaw interface, while blockCylinder_eq_iInter gives the
intersection form, which is what a proof meeting the cylinder with another event wants.
blockIndicatorProd_eq_indicator identifies the product with the cylinder indicator, and
integrable_blockIndicatorProd records integrability under a finite measure.
Adapted from cameronfreer/exchangeability (PathSpace/CylinderHelpers.lean,
DeFinetti/ViaMartingale/IndicatorAlgebra.lean, pin
e0532e59ceff23edab44dda9ab0655debbc9cc22).
Membership in the block cylinder: ω lies in blockCylinder X k C iff every selected
coordinate X (k i) ω lies in its set C i.
The block cylinder is the intersection of the selected coordinates' preimages. This is the
⋂ counterpart of blockCylinder_eq_preimage_univ_pi: the rectangle form suits pushforwards and
block laws, this one suits intersections with another event.
The block cylinder of a process with measurable selected coordinates on measurable sets is measurable.
The block law evaluated on a measurable rectangle is the measure of the block cylinder:
blockLaw μ X k (Set.univ.pi C) = μ (blockCylinder X k C). A blockCylinder-named restatement of
blockLaw_apply_rectangle.
A block cylinder is invariant under permuting the selection. Reordering the coordinates of a block, and the sets along with them, describes the same event: membership is a conjunction over the index set, which a permutation does not change.
This is what lets a proof supply only strictly monotone selections: Tuple.sort permutes an
arbitrary injective k into increasing order, and this lemma says the event is unaffected.
Sorting an injective block selection. Any injective k can be permuted into strictly
increasing order without changing the block event or any product over the selected sets.
This packages the whole reduction that lets a proof handle only the monotone case, and the name
records all three parts: Tuple.sort supplies the permutation, blockCylinder_comp_perm says the
block event is unchanged (_blockCylinder_eq), and the final clause says a product over the
selected sets is unchanged (_and_prod_eq), for any commutative monoid. Callers that establish an
identity for strictly monotone selections get the injective case by obtaining this and
rewriting.
The product of the selected coordinate indicators, ∏ i, 𝟙_{C i}(X (k i) ω).
Equations
- TauCeti.Probability.blockIndicatorProd X k C ω = ∏ i : Fin m, (C i).indicator (fun (x : α) => 1) (X (k i) ω)
Instances For
Successor split of the indicator product. Splitting off the last selected coordinate, the
length-r+1 indicator product equals the indicator of the length-r prefix cylinder intersected
with the last coordinate's preimage. The Fin 0 companion is blockIndicatorProd_empty.
The block cylinder is null-measurable when the selected coordinates are a.e. measurable.
The indicator product is integrable under a finite measure (a.e.-measurable coordinates).
The block law of a rectangle is the lintegral of the block-cylinder indicator. For
a.e.-measurable selected coordinates,
∫⁻ ω, 𝟙_{blockCylinder X k C}(ω) ∂μ = blockLaw μ X k (∏ᵢ C i). Being an ℝ≥0∞ lintegral, this is
the honest identity for an arbitrary measure (no finiteness needed).
The real (Bochner) integral of the indicator product is the block law of the rectangle:
∫ ω, ∏ i, 𝟙_{C i}(X (k i) ω) ∂μ = (blockLaw μ X k (∏ᵢ C i)).toReal — the real (toReal) form of
the ℝ≥0∞ identity lintegral_blockCylinder_indicator (integrability under a finite measure is
integrable_blockIndicatorProd).