Scale representatives for the concrete selector-and-terminal tests below a node
ProvedOAI.Problem310.WindowLocalFactor.exists_concrete_local_representativesWindow data. Let . Words over the alphabet are the vertices of the complete -ary tree; is the length of a word , is followed by the letter , and means that is a prefix of . A word is a valid edge if and (it names the edge entering the vertex ). A window datum with parameters consists of a function and maps from words to such that, writing and letting range over valid edges:
- , and ;
- , so the edge carries the window of dyadic scales ;
- (prefix gap) if and , then ;
- (sibling gap) for every word , letters and word such that and are valid edges, ;
- (descendant bounds) if , then ;
- (padding) .
Finite table model. Take , so that the letter is the default child and are the nondefault children; a node is a word of length and a leaf is a word of length . Use the window endpoints as resolutions: for nodes and , and for leaves . With , where , a selector table has bits for , a terminal table has bits for , and the selector bit of at is if , and otherwise. For every selector table let the child-choice map be for fixed but arbitrary rules , and let be the word obtained from by successive steps of appending .
Let be a window datum with parameters . Fix a node , a point and with . For an outcome , a letter and define the local test
Let , the common window length of the edges .
Theorem. There is a finite set with such that for every there is with
for every outcome , every and every .
Thus the continuum of scales can be replaced, simultaneously for all outcomes of the selector and terminal tables, all nondefault children of and all scales in their windows, by a deterministic set of at most representatives. No grid-factorization or padding hypotheses remain: both are supplied by the window datum.
Formalization Note The test enters as an arbitrary function together with its defining equation hQ; the resolutions are FiniteTableModel.selectorEndpoints W and FiniteTableModel.terminalEndpoints W; the choice map is choose ωS, linked to rule by hchoose; and is W.r (d - U.val.length). The depth condition is hdepth : ∀ i : Fin M, (U.val ++ [i.castSucc]).length + r = d with our being r; for it is the condition , and for it is vacuous (there are then no tests to compare).
import Mathlib import Definitions.Def_DyadicAvoidance import Definitions.Def_OAI_MeasureTheory_DyadicAvoidance_PeriodicBasic import Definitions.Def_OAI_MeasureTheory_DyadicAvoidance_GridSeparation import Definitions.Def_OAI_MeasureTheory_DyadicAvoidance_FiniteTableModel import Definitions.Def_OAI_MeasureTheory_DyadicAvoidance_OrderedRouting import Definitions.Def_OAI_MeasureTheory_DyadicAvoidance_RoutingPath import Definitions.Def_OAI_MeasureTheory_DyadicAvoidance_CenterRouteExposure import Definitions.Def_OAI_MeasureTheory_DyadicAvoidance_ExceptionalCenters import Definitions.Def_OAI_MeasureTheory_DyadicAvoidance_CenterFailureBound import Definitions.Def_OAI_MeasureTheory_DyadicAvoidance_FirstDefault import Definitions.Def_OAI_MeasureTheory_DyadicAvoidance_ConcreteLabelMeasures import Definitions.Def_OAI_MeasureTheory_DyadicAvoidance_CenterFirstDefault import Definitions.Def_OAI_MeasureTheory_DyadicAvoidance_RandomSetDensity import Definitions.Def_OAI_MeasureTheory_DyadicAvoidance_RoutedSetDensity import Definitions.Def_OAI_MeasureTheory_DyadicAvoidance_RoutedExposure import Definitions.Def_OAI_MeasureTheory_DyadicAvoidance_FirstDefaultSelection import Definitions.Def_OAI_MeasureTheory_DyadicAvoidance_FiniteLocalPredicate import Definitions.Def_OAI_MeasureTheory_DyadicAvoidance_WindowData import Definitions.Def_OAI_MeasureTheory_DyadicAvoidance_WindowTableModel open OAI OAI.Problem310 universe u_Ω open RoutingPath GridSeparation
theorem OAI.Problem310.WindowLocalFactor.exists_concrete_local_representatives {M d g r₀ : ℕ}
(W : WindowData (M + 1) d g r₀) (U : FiniteTableModel.Node M d) (x : ℝ)
(choose : FiniteTableModel.SelectorTable (FiniteTableModel.selectorEndpoints W) →
List (FiniteTableModel.Child M) → ℝ → FiniteTableModel.Child M)
(rule : List (FiniteTableModel.Child M) → (Fin M → Bool) → FiniteTableModel.Child M)
(hchoose : ∀ ωS P y, choose ωS P y = rule P (fun j =>
FiniteTableModel.selectorValue (FiniteTableModel.selectorEndpoints W) ωS P j y))
(r : ℕ) (hdepth : ∀ i : Fin M, (U.val ++ [i.castSucc]).length + r = d)
(Q : (FiniteTableModel.SelectorTable (FiniteTableModel.selectorEndpoints W) ×
FiniteTableModel.TerminalTable (FiniteTableModel.terminalEndpoints W)) →
Fin M → ℝ → Bool)
(hQ : ∀ ω i y, Q ω i y =
(ω.1 (FiniteTableModel.selectorAddress (FiniteTableModel.selectorEndpoints W) U i y) &&
ω.2 (FiniteTableModel.terminalAddress (FiniteTableModel.terminalEndpoints W)
(FiniteLocalPredicate.localLeaf (choose ω.1) r (U.val ++ [i.castSucc]) (hdepth i) y) y))) :
∃ R : Finset ℝ,
(∀ t ∈ R, t ∈ Set.Icc (1 : ℝ) 2) ∧
R.card ≤ 1 + M * W.r (d - U.val.length) * 2 ^ (2 * W.r (d - U.val.length) + 2) ∧
∀ t ∈ Set.Icc (1 : ℝ) 2, ∃ t' ∈ R,
∀ ω (i : Fin M) (j : Fin (W.r (d - U.val.length))),
Q ω i (x + t' * ((2 : ℝ)⁻¹) ^ (W.a (U.val ++ [i.castSucc]) + j.val)) =
Q ω i (x + t * ((2 : ℝ)⁻¹) ^ (W.a (U.val ++ [i.castSucc]) + j.val)) := by sorry