OAI/MeasureTheory/DyadicAvoidance/WindowPlacement.lean
36 declarations, 0 contain sorry, 0 declared as axioms
- def
OAI.Problem310.WindowPlacement.startline 12Source documentation
Place windows in preorder, reserving
gunused indices after each window.def start (len : ℕ → ℕ) (g : ℕ) : ℕ → ℕ | 0 => 3 | i + 1 => start len g i + len i + g
- def
OAI.Problem310.WindowPlacement.finishline 16 - def
OAI.Problem310.WindowPlacement.windowline 18 - def
OAI.Problem310.WindowPlacement.lengthAtline 22Source documentation
Extract a window length from a finite preorder list, using zero outside the list.
def lengthAt (L : List ℕ) (i : ℕ) : ℕ := L[i]?.getD 0
- theorem
OAI.Problem310.WindowPlacement.lengthAt_map_of_getElem?line 24 - theorem
OAI.Problem310.WindowPlacement.lengthAt_map_idxOfline 29 - theorem
OAI.Problem310.WindowPlacement.lengthAt_posline 34 - theorem
OAI.Problem310.WindowPlacement.sum_lengthAtline 39 - theorem
OAI.Problem310.WindowPlacement.lengthAt_segmentline 50 - theorem
OAI.Problem310.WindowPlacement.sum_lengthAt_segmentline 59Source documentation
Translate a consecutive preorder block's list sum into the prefix-sum interface used by the endpoint and resolution lemmas.
theorem sum_lengthAt_segment (pre block post : List ℕ) (g : ℕ) : (∑ k ∈ Finset.range block.length, (lengthAt (pre ++ block ++ post) (pre.length + k) + g)) = (block.map (fun r => r + g)).sum := by …Mentions: OAI.Problem310.WindowPlacement.lengthAt
- theorem
OAI.Problem310.WindowPlacement.start_zeroline 80 - theorem
OAI.Problem310.WindowPlacement.start_succline 82 - theorem
OAI.Problem310.WindowPlacement.start_monoline 85 - theorem
OAI.Problem310.WindowPlacement.three_le_startline 91 - theorem
OAI.Problem310.WindowPlacement.finish_add_oneline 94 - theorem
OAI.Problem310.WindowPlacement.finish_monoline 101Source documentation
Endpoints are nondecreasing even if some windows have length zero.
theorem finish_mono (len : ℕ → ℕ) (g : ℕ) : Monotone (finish len g) := by …
Mentions: OAI.Problem310.WindowPlacement.finish
- theorem
OAI.Problem310.WindowPlacement.consecutive_gapline 109 - theorem
OAI.Problem310.WindowPlacement.gap_of_ltline 116Source documentation
Every later window starts strictly beyond the earlier endpoint and its gap.
theorem gap_of_lt (len : ℕ → ℕ) (g : ℕ) {i j : ℕ} (hij : i < j) : finish len g i + g < start len g j := by …Mentions: OAI.Problem310.WindowPlacement.finish, OAI.Problem310.WindowPlacement.start
- theorem
OAI.Problem310.WindowPlacement.finish_lt_startline 122 - theorem
OAI.Problem310.WindowPlacement.start_le_finishline 127 - theorem
OAI.Problem310.WindowPlacement.finish_lt_of_ltline 132 - theorem
OAI.Problem310.WindowPlacement.finish_le_of_leline 136 - theorem
OAI.Problem310.WindowPlacement.finish_strictMonoline 142 - theorem
OAI.Problem310.WindowPlacement.mem_windowline 145 - theorem
OAI.Problem310.WindowPlacement.three_le_of_memline 149 - theorem
OAI.Problem310.WindowPlacement.indices_separatedline 153 - theorem
OAI.Problem310.WindowPlacement.disjoint_windowsline 160 - theorem
OAI.Problem310.WindowPlacement.card_windowline 170 - theorem
OAI.Problem310.WindowPlacement.card_windowsline 177Source documentation
Disjoint windows contribute exactly the sum of their lengths.
theorem card_windows (len : ℕ → ℕ) (g : ℕ) (S : Finset ℕ) : (S.biUnion (window len g)).card = ∑ i ∈ S, len i := by …Mentions: OAI.Problem310.WindowPlacement.window
- theorem
OAI.Problem310.WindowPlacement.card_equal_windowsline 184 - theorem
OAI.Problem310.WindowPlacement.start_addline 193Source documentation
Prefix-sum formula relative to any incoming edge.
theorem start_add (len : ℕ → ℕ) (g i m : ℕ) : start len g (i + m) = start len g i + ∑ k ∈ Finset.range m, (len (i + k) + g) := by …Mentions: OAI.Problem310.WindowPlacement.start
- theorem
OAI.Problem310.WindowPlacement.block_endpointline 203Source documentation
A consecutive child block's endpoint is exactly its total window and gap budget.
theorem block_endpoint (len : ℕ → ℕ) (g i m : ℕ) : finish len g (i + m) + g + 1 = start len g i + ∑ k ∈ Finset.range (m + 1), (len (i + k) + g) := by …Mentions: OAI.Problem310.WindowPlacement.finish, OAI.Problem310.WindowPlacement.start
- theorem
OAI.Problem310.WindowPlacement.block_endpoint_leline 209 - theorem
OAI.Problem310.WindowPlacement.local_endpoint_boundline 217Source documentation
An endpoint anywhere in a child block satisfies the same padding bound; no positivity assumptions on individual list entries are necessary.
theorem local_endpoint_bound {len : ℕ → ℕ} {g i m r j : ℕ} (hbudget : (∑ k ∈ Finset.range (m + 1), (len (i + k) + g)) ≤ 2 * r + g) (hj : j ≤ i + m) : finish len g j + 1 ≤ start len g i + 2 * r := by …Mentions: OAI.Problem310.WindowPlacement.finish, OAI.Problem310.WindowPlacement.start
- theorem
OAI.Problem310.WindowPlacement.block_paddingline 227Source documentation
Convert a bound on the sum of a child block's padded lengths into the subtree-resolution bound used by the scale discretization.
theorem block_padding {len : ℕ → ℕ} {g i m r : ℕ} (hlen : 0 < len (i + m)) (hbudget : (∑ k ∈ Finset.range (m + 1), (len (i + k) + g)) ≤ 2 * r + g) : finish len g (i + m) - start len g i + 1 ≤ 2 * r := by …Mentions: OAI.Problem310.WindowPlacement.finish, OAI.Problem310.WindowPlacement.start
- theorem
OAI.Problem310.WindowPlacement.local_resolution_boundline 238Source documentation
Every grid in a child block has resolution controlled by the incoming window. This is in the additive form required by the common-representative bound.
theorem local_resolution_bound {len : ℕ → ℕ} {g i m r j n : ℕ} (hlen : 0 < len (i + m)) (hbudget : (∑ k ∈ Finset.range (m + 1), (len (i + k) + g)) ≤ 2 * r + g) (hj : j ≤ i + m) (hn : start len g i ≤ n) : finish len g j + 2 ≤ n + (2 * r + 2) := by …Mentions: OAI.Problem310.WindowPlacement.start, OAI.Problem310.WindowPlacement.finish