feat(LatticeCrypto): discrete Gaussian mass bounds (mode, sum, guessing probability)#485
feat(LatticeCrypto): discrete Gaussian mass bounds (mode, sum, guessing probability)#485alik-eth wants to merge 3 commits into
Conversation
Add pointwise mass bounds for the 1-D discrete Gaussian: the weight is at most 1, is maximized over the integers at `round mu` (via Mathlib's `round_le` minimality), and hence every pointwise PMF mass is bounded by the mode mass `weight (round mu) / sum`. Claude-Session: https://claude.ai/code/session_01DaNGD9nDo3Grwk58nsjS77
Prove `sigma * sqrt (2 * pi) - 1 <= discreteGaussianSum sigma mu` for `sigma > 0` by sum-integral comparison: the sum over the integers splits at `floor mu` into two monotone tails, each dominating the matching tail of the Gaussian integral (whose total is `sigma * sqrt (2 * pi)` via `integral_gaussian`), while the missing unit interval carries integral mass at most 1. Adds two reusable tail estimates, `integral_Ioi_le_tsum_of_antitoneOn` and `integral_Iic_le_tsum_of_monotoneOn`, comparing improper integrals of one-sided monotone functions against unit-grid sums via limits of Mathlib's finite `SumIntegralComparisons` lemmas. Claude-Session: https://claude.ai/code/session_01DaNGD9nDo3Grwk58nsjS77
Combine the mode-mass bound with the normalizing-constant lower bound into a computable per-point guessing bound: once `1 < sigma*sqrt(2*pi)`, no integer carries more than `1 / (sigma*sqrt(2*pi) - 1)` of the mass, stated both on the real-valued PMF and on the Mathlib `PMF` as an `ENNReal.ofReal` bound. One-dimensional building block for min-entropy assumptions on lattice-coset trapdoor samplers; the 2n-dimensional NTRU coset lift (GPV08 Lemma 2.10) remains future work. Claude-Session: https://claude.ai/code/session_01DaNGD9nDo3Grwk58nsjS77
🤖 PR SummaryThis PR adds a formalization of quantitative pointwise mass bounds for the 1-D discrete Gaussian distribution, providing mode-mass, sum, and guessing probability bounds without any sorries or admits. The core changes are concentrated in Statistics
Lean Declarations ✏️ Added: 8 declaration(s)
📋 **Additional Analysis**The diff introduces a substantial extension to 📄 **Per-File Summaries**
Last updated: 2026-07-13 16:01 UTC. |
Quantitative pointwise-mass theory for the 1-D discrete Gaussian, closing the gap noted in the Falcon min-entropy discussion on #466 (self-contained off main; no Falcon/GPV imports).
What this adds (all in
LatticeCrypto/DiscreteGaussian.lean, +251 lines)discreteGaussianWeight σ μ z ≤ discreteGaussianWeight σ μ (round μ)(the weight is maximized at the rounding of the center — no positivity hypothesis needed), hencediscreteGaussianPMF σ μ z ≤ weight(round μ) / discreteGaussianSum σ μ.σ·√(2π) − 1 ≤ discreteGaussianSum σ μ— the full constant, via two new reusable infinite-tail comparison lemmas (integral_Ioi_le_tsum_of_antitoneOn,integral_Iic_le_tsum_of_monotoneOn— Mathlib currently has only the finite-intervalSumIntegralComparisons; these take limits alongintervalIntegral_tendsto_integral_Ioi/Iic), splitting at⌊μ⌋with the middle unit interval charged ≤ 1.1 < σ·√(2π),discreteGaussianDist σ μ hσ z ≤ ENNReal.ofReal (1 / (σ·√(2π) − 1))— the per-sample min-entropy bound (2^(−H∞)form) that a coset-Gaussian trapdoor sampler's guessing probability ultimately reduces to. The 2n-dimensional NTRU coset lift (GPV08 Lemma 2.10) remains future work; this is its 1-D building block.Verification
All 8 new declarations
#print axiomsat exactly[propext, Classical.choice, Quot.sound]; zero sorries; file clean under the CI linter set;lake build LatticeCrypto HashSig Examplesgreen.https://claude.ai/code/session_01DaNGD9nDo3Grwk58nsjS77