The selected prime-chain depth is sublogarithmic
ProvedThreeSum.Scales.primeDepth_log_ratio_tendsto_zero3sumalgorithmsfine-grained-complexitythree-sum-1962word-ram
Let be the radix schedule fixed by the construction. Define the prime-window size and the chain depth , using natural-number division and logarithm. Then
where the denominator is the real natural logarithm. This controls the length of the chosen prime chain relative to input bit length, a scale estimate used to bound repeated prime-dependent overhead.
Preamble
import Definitions.Def_ThreeSum1962Source_Bundle01 import Definitions.Def_ThreeSum1962Source_Bundle07 import Lean.Elab.Tactic.Omega import Mathlib.Algebra.BigOperators.Group.Finset.Basic import Mathlib.Algebra.Order.Floor.Div import Mathlib.Analysis.Complex.ExponentialBounds import Mathlib.Analysis.Convex.Deriv import Mathlib.Analysis.SpecialFunctions.BinaryEntropy import Mathlib.Analysis.SpecialFunctions.Log.Base import Mathlib.Analysis.SpecialFunctions.Pow.Asymptotics import Mathlib.Analysis.SpecialFunctions.Pow.NthRootLemmas import Mathlib.Analysis.SpecificLimits.Basic import Mathlib.Analysis.SpecificLimits.Normed import Mathlib.Data.Finset.Powerset import Mathlib.Data.Finset.Prod import Mathlib.Data.Fintype.BigOperators import Mathlib.Data.Fintype.Card import Mathlib.Data.Fintype.Prod import Mathlib.Data.Nat.Choose.Basic import Mathlib.Data.Nat.Choose.Central import Mathlib.Data.Nat.Choose.Sum import Mathlib.Data.Nat.Sqrt import Mathlib.Data.Real.Basic import Mathlib.NumberTheory.Bertrand import Mathlib.NumberTheory.Chebyshev import Mathlib.Order.Monotone.Basic import Mathlib.Tactic.FieldSimp import Mathlib.Tactic.Linarith import Mathlib.Tactic.NormNum import Mathlib.Tactic.Positivity import Mathlib.Tactic.Ring set_option autoImplicit false set_option relaxedAutoImplicit false set_option Elab.async false
Formal statement
theorem ThreeSum.Scales.primeDepth_log_ratio_tendsto_zero : @Filter.Tendsto.{0, 0} Nat Real
(fun (n : Nat) =>
@HDiv.hDiv.{0, 0, 0} Real Real Real (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid))
(@Nat.cast.{0} Real Real.instNatCast (ThreeSum.Scales.primeDepth ThreeSum.Scales.radix n))
(Real.log (@Nat.cast.{0} Real Real.instNatCast n)))
(@Filter.atTop.{0} Nat Nat.instPreorder)
(@nhds.{0} Real
(@UniformSpace.toTopologicalSpace.{0} Real (@PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace))
(@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero))) := by
sorry
Source