The Haar cell law of the fibre grid is uniform #
Category: 7-SigmaLayer. BACKLOG #144, out of #130.
FibreCoarseArrow.lean cuts the T² fibre into (m+1)² cells of equal
width, FibreFiniteHorizon.lean measures a cell's time-averaged
occupation against its Haar weight, and FibreHorizonDivergence.lean
compares the occupation law with the uniform cell law. All three say the weights are equal,
because the construction makes them so, and none of them proved it. This file does.
- ★★★
volume_circCell_preimage— one circle cell has Haar measure1/(m+1); - ★★★
volume_torusCell_preimage— one fibre cell has1/(m+1)², by the product measure; - ★★★
coarseLaw_fibreCell_apply— so the Haar cell law ofΣgives every cell1/(m+1)², and ★★coarseLaw_fibreCell_toRealis the real-valued form the rate arguments consume.
How it goes, and why it is one argument rather than three #
circCell m x is min m ⌊(m+1)·circRep x⌋₊, and circRep carries Haar measure on AddCircle 1 to
Lebesgue measure on (0, 1], so a cell's weight is the Lebesgue measure of
{t ∈ (0, 1] | min m ⌊(m+1)t⌋₊ = k}. The obvious plan is three cases — k = 0 loses its left
endpoint to (0, 1], 0 < k < m is a clean half-open interval, and k = m absorbs t = 1 through
the min clamp — and each case is a different interval, which is what made this look like M of
endpoint bookkeeping.
It is one case instead. The set is sandwiched between Ioo (k/(m+1)) ((k+1)/(m+1)) and the
corresponding Icc, uniformly in k, and those two have the same Lebesgue measure, so
measure_mono in both directions pins the cell without ever naming which interval it is. The
endpoints never have to be decided, only bounded. cellSet_inter_subset_Icc still splits on
k < m against k = m, because the clamp genuinely behaves differently there, but each half is
three lines and the k = 0 case has vanished entirely.
The general machinery this needs is ★★ RecordLayer.volume_rep_preimage — the rep-preimage of
any measurable set weighs what the set weighs inside one turn — extracted here from the Ioc
form that already existed, because a floor cell is half-open the other way round and the Ioc form
cannot see it.
Honest scope #
⚠️ This is the Haar cell law, not the occupation law. It says the reference measure spreads evenly over the cells. It says nothing about where a trajectory spends its time, which is #118's question and still carries #118(i)'s unproved decorrelation hypothesis.
⚠️ It unblocks a rate, and the rate is still time-averaged. With this, #130's divergence bound
and #118(ii)'s L² bound are about the same reference and can be combined; the result is still a
statement about time averages over [0, T), not about the law at step n, so R-019 is no closer
than #118 left it.
⚠️ The grid only. circCell is the equal-width grid of FibreCoarseArrow.lean. Nothing here is
stated for the Born cells of RecordLayer/CircleFibre.lean, whose widths are the Born weights and
are deliberately not equal.
References: FibreCoarseArrow.lean (circRep, circIdx, circCell,
torusCell, fibreCell), CircleFibre.lean
(rep, volume_rep_preimage), FibreHorizonDivergence.lean (#130),
FibreFiniteHorizon.lean (#118(ii));
specs/BACKLOG.md #144, #130, #118; specs/residues.tsv R-019.
The representatives of one cell, as a set of reals #
circRep is RecordLayer.rep: the two files took the measurable equivalence and the plain
one, and the measurable one's toEquiv is the plain one.
The sandwich #
And the cell sits inside the closed interval of the same width. This is the half where the
min clamp matters: at k = m the cell absorbs everything above m/(m+1), which is still inside
the closed interval because the representatives stop at 1.
The weights #
★★★ A circle cell has Haar measure 1/(m+1). Pinned by measure_mono between the open
and closed intervals of that width, so no endpoint has to be decided.
The rate R-019's second clause asks for #
With the reference identified, #130's pointwise divergence bound and #118(ii)'s L² bound are
about the same quantity and compose. The two ingredients the composition needs beyond them are the
measurability and boundedness of a cell's time-averaged occupation, which is what makes the
integrand integrable.
A cell's time-averaged occupation is measurable in the base point.
And it lies in [0, 1], being an average of indicators.
The squared deviation of an occupation from a weight in [0, 1] is integrable: it is
measurable and bounded by 1.
★★★ R-019's second clause at a finite horizon, with its rate.
The divergence of the time-averaged occupation law from the cell law is, in expectation over the
epistemic measure, at most (m+1)⁴·(2/T)·∑_{u<T} ε u. One factor (m+1)² is #118(ii)'s cell count
and the other is the chi-squared conversion of #130, and the reference is the same on both sides
because of coarseLaw_fibreCell_apply above — which is the whole reason this row existed.
⚠️ Still time-averaged: what equilibrates is a cell's occupation over [0, T), not the law
at step n. And hdec is #118(i), unproved.