Expanding a product of averages over disjoint windows #
Writing window N i j = (i + 1) * N + j for the i-th block of N consecutive indices, a product
of block averages over these windows expands as an average of products over tuples:
โ i, blockAverage (Y i) (window N i) = ๐ผ js, โ i, Y i (window N i (js i))
Two facts make this the right shape for the block factorization.
The expansion is exact. It is Fintype.prod_sum together with the normalisation
(N ^ m)โปยน = โ i, (N : โ)โปยน, so no error term appears.
Every tuple is an injective selection. The windows are pairwise disjoint โ
window N i j < window N i' j' whenever i < i' and j < N โ so distinct coordinates of a
tuple, whose entries are indices in Fin N, always carry distinct indices
(window_selection_injective). This is what removes the diagonal terms that an expansion
over a single window would produce, and it is why the factorization can apply a
contractability argument to every term of the average without exception.
The moving selection #
The same windows also appear as a moving selection, in the shape the Lยฒ convergence theorems
quantify over: disjointWindow c is the family n โฆ (j โฆ window (n + 1) c j), so at each length
factor c reads [(c + 1)(n + 1), (c + 2)(n + 1)). Two facts make it usable there โ
disjointWindow_injective at each length, with disjointWindow_eventually_injective the eventual
form those theorems take, and disjointWindow_ne for disjointness across factors.
That combination is what fixed starts cannot supply: windows from two distinct fixed starts overlap
once the common length exceeds the gap between the starts, whereas these move outward as the length
grows. The generic fixed-start selection is fixedStart in Process/BlockAverage.lean.
References #
Nothing here involves a measure or the Lยฒ theory: the module is index arithmetic plus
block-average algebra, which is why it sits with the process API rather than under
Exchangeability/L2/.
References #
- Roadmap:
TauCetiRoadmap/Exchangeability/README.md, Layer 3 โ theLยฒaveraging library and the standard-Borel de Finetti route, supporting the finite-block conditional factorization.
The i-th window of N consecutive indices, starting after the first (i + 1) * N of them.
Shifting past (i + 1) * N rather than i * N keeps the windows disjoint from each other and
from the first N indices.
Equations
- TauCeti.Probability.window N i j = (i + 1) * N + j
Instances For
A tuple reads the windows in order. Reading factor i at position js i of its own
window gives a strictly monotone selection: the windows are ordered, so the factor index alone
decides the order, whatever position each factor reads.
Distinct coordinates of a tuple land in distinct windows. Since the windows are pairwise
disjoint, the selection i โฆ window N i (js i) is injective for every tuple js โ immediate from
window_selection_strictMono.
The disjoint-window instance. This specialises prod_blockAverage_eq_expect, imported from
Process/BlockAverage.lean, to the windows window N i, where every tuple is an injective
selection by window_selection_injective.
The disjoint-window selection #
The moving selection a block factorization needs: at each length, distinct factors read disjoint
windows. The generic fixed-start selection lives with blockAverage in
Probability/Process/BlockAverage.lean.
The disjoint-window selection: at length n + 1, factor c reads the window
window (n + 1) c, occupying [(c + 1)(n + 1), (c + 2)(n + 1)).
Equations
- TauCeti.Probability.disjointWindow c n j = TauCeti.Probability.window (n + 1) c โj
Instances For
Each disjoint window is an injective selection at each length.
The eventual form, as the moving-selection theorems take it.