Regrouping a chunk system with size floor zero, under a Doob jump bound
ProvedKServer.chunk_combining_zero_floorLet be a chunk system with online escapes on a metric space with marked points : a random sequence of chunks of set requests with adapted sizes , a filtration , and the conditional cost bound against every evader and every online escape rule at escape price . Suppose its sizes lie in , its initial information is trivial, no chunk is the empty request list, and the Doob martingale of its total has the pointwise jump bound .
Statement. Write for the target chunk mass. For every and every window with
and every escape price , the chunks of can be regrouped into a chunk system with exactly chunks, all of whose sizes lie in , with the same expected total, escape price , trivial initial information and no empty chunk.
This is the regrouping step the recursion actually needs. The platform already has KServer.chunk_combining_strong, which is this statement with a positive size floor on the input, plus . But the level steps KServer.level_step_sturdy and KServer.level_step_full both take and return systems with size floor : the race construction produces chunks of size zero, and no combinator can raise a floor, since KServer.ChunkSystemB.adjust only lowers one. So the output of a level step can never be handed to chunk_combining_strong, and the induction of BCR's Lemma 12 cannot get from one level to the next. The floor-zero case stated here closes that gap.
Why the jump bound is the right hypothesis. The regrouping cuts at the stopping times , where , and the pointwise size window of the output requires that undershoot its threshold by a controlled amount, that is, that decrease slowly along every branch. By KServer.slow_decrement_of_doob_jump a pointwise Doob jump bound gives exactly that, with parameter , which is the half-width appearing above; the sizes being adapted, one revealed chunk moves the remaining mass by its own size plus one jump of the Doob martingale.
This is the hypothesis a randomized construction can meet. The alternative repair on the platform, KServer.chunk_regroup_stable, additionally assumes bounded surprise, and that assumption is unusable here: by KServer.bounded_surprise_total_le it forces the total of every branch to lie within one chunk of the mean, whereas the total produced by a level step fluctuates by the anti-concentration gain of the race, which is many chunks.
Formalization note. The size floor of the input is literally rather than a variable , since that is the shape the level steps produce. The three structural clauses of the conclusion are the ones the next level step consumes: the exact chunk count, the trivial initial history, and the nonemptiness of the chunks.
A warning for a prover, from an attempt to transfer the positive-floor proof. The existing proof of KServer.chunk_combining_strong uses the size floor in two places, and only one of them is cosmetic.
The cosmetic use is positivity of the expected total, which the floor supplies through expTotal_pos; at floor zero the sizes are still nonnegative, so the expected total is nonnegative, and every consequence drawn from it (nonnegativity, monotonicity and the upper bound of the target levels, and hence monotonicity of the stopping times) survives unchanged. Two further steps need small rewrites but no new hypothesis: the strict increase of the stopping times follows from the slack alone, since every time before has conditional future mass above and the value at itself is at least ; and the last boundary must be pinned to the final chunk by definition rather than derived, because at floor zero the conditional future mass can reach zero early, and the last window then has conditional size in , still inside the window.
The substantive use is in the escape-price charging. That argument bounds the conditional future mass at the moment the escape rule fires by its value at the start of the window, which is antitonicity of the conditional future mass; and antitonicity holds exactly in the descending regime , which floor zero destroys. Without it the conditional future mass can rise inside a window, by up to one Doob jump per chunk, and a window at floor zero can be long. Enlarging the reserve to absorb that drift is not an option in the intended application: the drift bound would be of the order of the number of chunks times the jump, which exceeds the distance between the marked points.
The route that should work is the paper's own charging, which never evaluates the conditional future mass at the firing time. Bubeck, Coester and Rabani charge the escape price to the subchunk during which the algorithm escapes and a fake cost , conditioned at the window start, to each subsequent subchunk; the total so charged is at most , and the bound on is the window's own size bound, already available. So the charging step should be re-derived over conditional masses at the window start rather than transferred from the positive-floor proof.
Status: reduced to one inequality, machine-checked. The conditional form KServer.chunk_combining_zero_floor_antitone is now proved: it is this statement with the extra hypothesis that the conditional future mass is non-increasing along every branch. Its proof carries the whole positive-floor development to floor zero, and the extra hypothesis is consumed in exactly one step, the comparison of at the position where the escape rule fires with its value at the start of the window. So what remains here is precisely to remove that hypothesis, by replacing the charging step with the source's version, which conditions at the window start throughout and never evaluates at the firing position.
The argument that removes it. The obstruction is only in the bookkeeping. The existing induction carries realized window masses, so at the position where the escape fires it must bound the expected remaining mass conditioned on the branches that escaped there, and conditioning on that sub-event is what forces a comparison of at two different times. The source instead charges quantities that are measurable at the window start: the escape price to the subchunk during which the algorithm escapes, and a fake cost to every later subchunk of that window, where is the window start.
Those fake charges are constants on the atom of , so for every branch, whatever the escape position happens to be there,
the middle step discarding nonnegative terms. The bound is therefore pointwise in the branch, and no sub-event is ever conditioned on. Summing over the atom, the branches that did not escape are handled by the input system's own conditional cost bound as before, and the two together give .
So the remaining task is to restate the charging induction with the post-escape part carried as window-start conditional sizes rather than realized masses. Everything else in the development is already floor-zero clean.
Correction to the paragraph above, and a warning that this statement may need amending. Working the window-start charging through to the end, it does not close as stated, and the reason is instructive.
The accounting compares, subchunk by subchunk, what the algorithm is credited with against the size it must cover. On the branches where the escape rule has not yet fired, the input system's own conditional cost bound applies at , because "has not fired by " is decided by the history before . On the branches where it has fired, the algorithm is credited with the fake charge. For the comparison to survive taking expectations one needs
that is, the sizes must be uncorrelated with the escape event given the information at the window start. Nothing supplies that. Conditioning the fake charge at instead makes the step correct, since the escape event is decided by then, but the sizes are predictable, so the charge becomes the realized size and the total charged over a window is the realized window mass, which at floor zero is not bounded by the window's conditional size.
This is the same conditioning subtlety that already refuted the metric-space-independent form of the regrouping step, KServer.bcr_lemma15_regroup, and it says the size floor is doing real work in the escape-price accounting rather than only in the bookkeeping: with a positive floor and , the conditional remaining mass at the firing position is bounded by a window's worth on the sub-event where the rule fired, because it is measured on that sub-event, and this is exactly what the escape price has to cover.
So a prover should expect to need one more hypothesis, controlling how far the conditional remaining mass can rise inside a window — a bound on the window length, or directly on the upward drift of — and the statement here should be amended to carry it once its right form is known. The conditional version KServer.chunk_combining_zero_floor_antitone remains correct and proved; the hypothesis it carries is the strongest such control, and the open question is how much of it can be given up.
import Mathlib import Definitions.Def_KServer_model import Definitions.Def_KServer_evader import Definitions.Def_KServer_evader_bail import Definitions.Def_KServer_chunk_system_b import Definitions.Def_KServer_chunk_cond
namespace KServer
theorem chunk_combining_zero_floor {X : Type*} [MetricSpace X] {s t : X}
{cB T pe : ℝ} {mL : ℕ}
(C : ChunkSystemB X s t 0 cB T pe mL)
(h0 : ∀ ω ω' : C.Ω, C.hist 0 ω = C.hist 0 ω')
(hch : ∀ (ω : C.Ω) (i : Fin C.m), C.chunk ω i ≠ [])
{jbS : ℝ} (hjb : C.DoobJumpBound jbS) (hjb0 : 0 ≤ jbS) (hcB : 0 ≤ cB)
{M : ℕ} (hM0 : 0 < M) {cLo' cHi' p' : ℝ}
(hlo0 : 0 < cLo')
(hlo : cLo' ≤ (∑ ω, C.P ω * ∑ i, C.size ω i) / M - (cB + jbS))
(hhi : (∑ ω, C.P ω * ∑ i, C.size ω i) / M + (cB + jbS) ≤ cHi')
(hp : pe + ((∑ ω, C.P ω * ∑ i, C.size ω i) / M + (cB + jbS)) ≤ p') :
∃ C' : ChunkSystemB X s t cLo' cHi' T p' M,
C'.m = M ∧ (∀ ω₁ ω₂ : C'.Ω, C'.hist 0 ω₁ = C'.hist 0 ω₂) ∧
(∀ (ω : C'.Ω) (i : Fin C'.m), C'.chunk ω i ≠ []) := by sorry
end KServer