A binomial lower bound from disjoint coordinate blocks
ProvedThreeSum.LocalCoverBounds.pow_le_choose_mul3sumalgorithmsfine-grained-complexitythree-sum-1962word-ram
For arbitrary natural numbers and ,
The right side counts all subsets of size in a set of positions. The left side counts choices of one position in each of labeled blocks, each containing positions. The assertion also includes and , with the usual natural-number conventions for powers and binomial coefficients.
This exact finite estimate supplies a lower bound for the number of local subset outputs without using asymptotic factorial estimates.
Preamble
import Lean.Elab.Tactic.Omega import Mathlib.Algebra.BigOperators.Group.Finset.Basic import Mathlib.Algebra.Order.Floor.Div 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.Tactic.FieldSimp import Mathlib.Tactic.Linarith import Mathlib.Tactic.NormNum import Mathlib.Tactic.Positivity set_option autoImplicit false set_option relaxedAutoImplicit false set_option Elab.async false
Formal statement
theorem ThreeSum.LocalCoverBounds.pow_le_choose_mul : ∀ (c r : Nat),
@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))) c r)
((@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat) c r).choose r) := by
sorry
Source