Magnitude bound for every prefix zeta stage
ProvedThreeSum.BoxStages.stageValue_abs_le3sumalgorithmsfine-grained-complexitythree-sum-1962word-ram
Let and let assign an integer to every subset of . Assume whenever . Let be the partial zeta transform after processing the first coordinates. Then
Here . This bounds the stored prefix-stage values used for sparse boxes directly from the original weights.
Preamble
import Aesop import Definitions.Def_ThreeSum1962Source_Bundle01 import Definitions.Def_ThreeSum1962Source_Bundle04 import Lean.Elab.Tactic.Omega import Mathlib.Algebra.BigOperators.Group.Finset.Powerset import Mathlib.Algebra.BigOperators.Group.Finset.Sigma import Mathlib.Algebra.BigOperators.Ring.Finset import Mathlib.Algebra.Order.BigOperators.Group.Finset import Mathlib.Combinatorics.Colex import Mathlib.Data.Fin.Embedding import Mathlib.Data.Finset.Card import Mathlib.Data.Finset.Max import Mathlib.Data.Finset.Powerset import Mathlib.Data.List.Basic import Mathlib.Data.List.Nodup import Mathlib.Data.Nat.Choose.Basic import Mathlib.Tactic.ByContra import Mathlib.Tactic.Linarith import Mathlib.Tactic.Push import Mathlib.Tactic.Ring import Mathlib.Tactic.SplitIfs import Theorems.Thm_ThreeSum_Subset_partialZeta_insert set_option autoImplicit false set_option relaxedAutoImplicit false set_option Elab.async false
Formal statement
theorem ThreeSum.BoxStages.stageValue_abs_le : ∀ {L cut U : Nat} (f : Finset.{0} (Fin L) → Int)
(hf :
∀ (S : Finset.{0} (Fin L)),
@LE.le.{0} Nat instLENat (@Finset.card.{0} (Fin L) S) cut →
@LE.le.{0} Int Int.instLEInt (@abs.{0} Int instLatticeInt Int.instAddGroup (f S))
(@Nat.cast.{0} Int instNatCastInt U))
(j : Nat),
@LE.le.{0} Nat instLENat j L →
∀ (S : Finset.{0} (Fin L)),
@LE.le.{0} Nat instLENat (@Finset.card.{0} (Fin L) S) cut →
@LE.le.{0} Int Int.instLEInt
(@abs.{0} Int instLatticeInt Int.instAddGroup (@ThreeSum.BoxStages.stageValue L f j S))
(@Nat.cast.{0} Int instNatCastInt
(@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat)
(@HPow.hPow.{0, 0, 0} Nat Nat Nat
(@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))
(@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) j)
U)) := by
sorry
Source