Finite modulus loss from the selected prime-chain depth
ProvedThreeSum.Scales.primeDepth_loss_bound3sumalgorithmsfine-grained-complexitythree-sum-1962word-ram
Let be any target-radix function. For , put , , and , where the integer logarithm is zero on argument zero. If a natural number satisfies , then
The multiplier is the construction's declared prime loss. There is no lower-bound assumption on the target .
This transfers the lower product bound for the actual selected prime chain into a finite comparison with the intended radix, including small input cases.
Preamble
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_loss_bound : ∀ (R : Nat → Nat) {n P : Nat}
(hP :
@LE.le.{0} Nat instLENat
(@HPow.hPow.{0, 0, 0} Nat Nat Nat
(@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))
(ThreeSum.Scales.primeWindow n) (ThreeSum.Scales.primeDepth R n))
P),
@LE.le.{0} Nat instLENat (R n)
(@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat) (ThreeSum.Scales.primeLoss R n) P) := by
sorry
Source