Regrouping at size floor zero, assuming the conditional future mass is non-increasing
ProvedKServer.chunk_combining_zero_floor_antitoneLet be a chunk system with online escapes whose sizes lie in — size floor zero — with trivial initial information, no empty chunk, a pointwise Doob jump bound on the martingale of its total, and one further regularity property: its conditional future mass
is non-increasing along every branch.
Statement. Writing for the expected total divided by , the chunks regroup into a system with exactly chunks whose sizes all lie in any window containing , with the same expected total, escape price , trivial initial information and no empty chunk.
Relation to the existing regrouping lemma. KServer.chunk_combining_strong proves the same conclusion under a positive size floor together with . Those two hypotheses are exactly what makes the conditional future mass non-increasing, by ChunkSystemB.condFuture_antitone; so the present statement is a strict generalization, obtained by keeping only the consequence that the proof uses and dropping the floor entirely.
Why the floor has to go. The level steps of the construction, KServer.level_step_sturdy and KServer.level_step_full, both consume and produce systems with size floor — the race genuinely creates chunks of size zero — and a floor cannot be raised afterwards, since KServer.ChunkSystemB.adjust only lowers one. So the regrouping that carries the induction from one level to the next has to accept floor zero, and chunk_combining_strong cannot.
What this statement settles, and what it leaves open. Its proof shows that the whole of the positive-floor argument survives at floor zero once monotonicity of is assumed separately: the target levels and the boundary stopping times only need the expected total to be nonnegative, which holds because the sizes are; the boundaries still increase strictly, from the slack alone; and the last boundary is pinned to the final chunk by definition, the last window then having conditional size in . Monotonicity of is used in exactly one place, the escape-price charging, where the conditional future mass at the moment the escape rule fires is compared with its value at the start of the window.
That single use is also the reason this statement does not yet close the recursion. A system produced by a level step need not have non-increasing: revealing a coin of the race can raise the expected remaining mass by more than the chunk just consumed. Removing the hypothesis therefore requires redoing the charging in the manner of the source, which charges the escape price to the subchunk during which the algorithm escapes and a fake cost conditioned at the window start to each subsequent subchunk, never evaluating the conditional future mass at the firing time. KServer.chunk_combining_zero_floor is that hypothesis-free statement.
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_antitone {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)
(hanti : ∀ (h h' : ℕ) (ω : C.Ω), h ≤ h' → C.condFuture h' ω ≤ C.condFuture h ω)
(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