OAI/NumberTheory/Ostmann/Arithmetic/SingleHistorySupport.lean
9 declarations, 0 contain sorry, 0 declared as axioms
Exact one-history arithmetic support under independent uniform leaves
- def
OAI.Ostmann.diagonalSplitDataline 13 - def
OAI.Ostmann.singleArithmeticSplitTestline 16 - theorem
OAI.Ostmann.diagonalSplitData_testline 21 - def
OAI.Ostmann.singleArithmeticLeafSupportline 26 - theorem
OAI.Ostmann.singleArithmeticLeafSupport_nonnegline 32 - theorem
OAI.Ostmann.single_arithmetic_leaf_support_leline 39Source documentation
The already proved joint root bound, applied twice to the same test, loses no additional frequency choices or support conditions.
theorem single_arithmetic_leaf_support_le {Q : ℕ} [NeZero Q] (data : List (ZMod Q)ˣ → Option (ArithmeticSplitData Q)) (frequencies : ℕ → NodeFrequencies) (D : ℝ) (hD : 0 ≤ D) (hmatch : ∀ past d, data past = some d → d.hasFrequencies (frequencies past.length)) (hdiv : ∀ j, ((frequencies j).reducedModulus.divisors.card : ℝ) ≤ D) (n : ℕ) (P : (ZMod Q)ˣ) : (Fintype.card (TreeLeafFiber (ZMod Q)ˣ n P) : ℝ)⁻¹ * (∑ x : TreeLeafFiber (ZMod Q)ˣ n P, sequentialSupport (fun past y => singleArithmeticSplitTest (data past) y) [] (2 ^ n - 1) (treeLeafSplitEquiv n P x)) ≤ ∏ j ∈ Finset.range (2 ^ n - 1), singleFrequencySupportBound D (frequencies j) := by …Mentions: OAI.Ostmann.ArithmeticSplitData, OAI.Ostmann.NodeFrequencies, OAI.Ostmann.TreeLeafFiber, OAI.Ostmann.sequentialSupport, OAI.Ostmann.singleArithmeticSplitTest, OAI.Ostmann.treeLeafSplitEquiv, OAI.Ostmann.singleFrequencySupportBound
- theorem
OAI.Ostmann.single_arithmetic_leaf_average_leline 69Source documentation
Pointwise in the frequency history and independent of the size of Q. This permits the modulus to be chosen separately for each history.
theorem single_arithmetic_leaf_average_le {Q : ℕ} [NeZero Q] (S : Finset ℤ) (N n : ℕ) (D : ℝ) (hD : 0 ≤ D) (hS : ∀ s ∈ S, s ≠ 0 ∧ s.natAbs ≤ N) (hdiv : ∀ q : ℕ, q ≠ 0 → q ≤ N ^ 2 → (q.divisors.card : ℝ) ≤ D) (t : FrequencyTree S n) (data : (ZMod Q)ˣ → List (ZMod Q)ˣ → Option (ArithmeticSplitData Q)) (hmatch : ∀ P past d, data P past = some d → d.hasFrequencies (singleTreeNodeFrequencies S n t past.length)) : (Fintype.card (TreeLeafTuple (ZMod Q)ˣ n) : ℝ)⁻¹ * (∑ x : TreeLeafTuple (ZMod Q)ˣ n, singleArithmeticLeafSupport n data x) ≤ ((singleFrequencySplitList S n t).map (singleFrequencySupportBound D)).prod := by …Mentions: OAI.Ostmann.FrequencyTree, OAI.Ostmann.ArithmeticSplitData, OAI.Ostmann.singleTreeNodeFrequencies, OAI.Ostmann.TreeLeafTuple, OAI.Ostmann.singleArithmeticLeafSupport, OAI.Ostmann.singleFrequencySplitList, OAI.Ostmann.singleFrequencySupportBound
- def
OAI.Ostmann.singleArithmeticSupportSumline 100 - theorem
OAI.Ostmann.single_arithmetic_support_sum_leline 109Source documentation
The exponent is
2^n, the number of leaves of one history. Thus its initial squared weight cancels the entire leading leaf-frequency cost.theorem single_arithmetic_support_sum_le {Q : ℕ} [NeZero Q] (S : Finset ℤ) (N V n : ℕ) (D : ℝ) (hD : 0 ≤ D) (hS : ∀ s ∈ S, s ≠ 0 ∧ s.natAbs ≤ N) (hdiv : ∀ q : ℕ, q ≠ 0 → q ≤ N ^ 2 → (q.divisors.card : ℝ) ≤ D) (data : FrequencyTree S n → (ZMod Q)ˣ → List (ZMod Q)ˣ → Option (ArithmeticSplitData Q)) (hmatch : ∀ t P past d, data t P past = some d → d.hasFrequencies (singleTreeNodeFrequencies S n t past.length)) : singleArithmeticSupportSum S V n data ≤ (4 * D ^ 3 * (1 + Real.log N)) ^ (2 ^ n - 1) * (2 * (V : ℝ)) ^ (2 ^ n) := by …Mentions: OAI.Ostmann.FrequencyTree, OAI.Ostmann.ArithmeticSplitData, OAI.Ostmann.singleTreeNodeFrequencies, OAI.Ostmann.singleArithmeticSupportSum