Prove2Me
Navigate
DiscoverFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Proof of Theorem 5.4, display p. 777 — (2^d)^T ≤ C_1(d)·(log Ind K)^{C_2(d)}

Proved
BarvinokCount.ShortFormula.two_pow_iterCount_le

by mikedeng1 · Oct 4, 2026 · Mathlib 0df444a (Lean v4.33.1)

barvinok-algorithmcomplexityp2o-batch-pfp1ap2o-gran-per-chapterp2o-plan-paperp2o-v1

Let d≥2d\ge2d≥2 and let N≥2N\ge2N≥2 be an integer (in the paper N=Ind⁡KN=\operatorname{Ind}KN=IndK), and let T=T(d,N)T=T(d,N)T=T(d,N) be the smallest integer with T≥(−log⁡log⁡1.9+log⁡log⁡N)/(log⁡d−log⁡(d−1))T\ge(-\log\log1.9+\log\log N)/(\log d-\log(d-1))T≥(−loglog1.9+loglogN)/(logd−log(d−1)). Put

C1(d)=exp⁡{(−log⁡log⁡1.9log⁡d−log⁡(d−1)+1)⋅log⁡(2d)},C2(d)=log⁡(2d)log⁡d−log⁡(d−1).C_1(d)=\exp\Bigl\{\Bigl(\frac{-\log\log1.9}{\log d-\log(d-1)}+1\Bigr)\cdot\log(2^d)\Bigr\},\qquad C_2(d)=\frac{\log(2^d)}{\log d-\log(d-1)} .C1​(d)=exp{(logd−log(d−1)−loglog1.9​+1)⋅log(2d)},C2​(d)=logd−log(d−1)log(2d)​.

Then

(2d)T≤C1(d)⋅(log⁡N)C2(d).(2^d)^T\le C_1(d)\cdot(\log N)^{C_2(d)} .(2d)T≤C1​(d)⋅(logN)C2​(d).

For fixed ddd, C1C_1C1​ and C2C_2C2​ are constants and log⁡Ind⁡K\log\operatorname{Ind}KlogIndK is bounded by a polynomial in the input size, so this inequality is what makes the number of primitive cones in Theorem 5.4 polynomial.

Formalization Note The hypothesis N≥2N\ge2N≥2 is added: for N=1N=1N=1, log⁡N=0\log N=0logN=0 and the right side is 000 while the left side is 111 (and log⁡log⁡1\log\log1loglog1 in the definition of TTT is undefined). The exponent C2(d)C_2(d)C2​(d) is a real power of the positive number log⁡N\log NlogN. Natural logarithms.

Preamble
import Mathlib
import Definitions.Def_BarvinokCount_ShortFormula_iterCount
Formal statement
namespace BarvinokCount.ShortFormula

theorem two_pow_iterCount_le {d N : ℕ} (hd : 2 ≤ d) (hN : 2 ≤ N) :
    (((2 : ℝ) ^ d) ^ iterCount d N) ≤
      Real.exp (((-Real.log (Real.log (1.9 : ℝ))) / (Real.log (d : ℝ) - Real.log ((d : ℝ) - 1)) + 1) *
          Real.log ((2 : ℝ) ^ d)) *
        (Real.log (N : ℝ)) ^
          (Real.log ((2 : ℝ) ^ d) / (Real.log (d : ℝ) - Real.log ((d : ℝ) - 1))) := by sorry

end BarvinokCount.ShortFormula
Source
Barvinok, A polynomial time algorithm for counting integral points in polyhedra when the dimension is fixed, Math. Oper. Res. 19 (1994), p. 777, proof of Theorem 5.4 (definitions of C_1(d), C_2(d) and the display (2^d)^T ≤ C_1(d)·(log(Ind K))^{C_2(d)})
Human review
  • Endorsed by Shuze Chen · Oct 4, 2026

    Confirmed by the moderator at approval.

  • Endorsed by mikedeng1 · Oct 4, 2026

    Confirmed by the mission captain (proposal self-audit).

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, with reuse governed by our licensing terms.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me