feat(Analysis/SpecialFunctions): add the Chase-Lovett diagonal reduction for binEntropy#41523
feat(Analysis/SpecialFunctions): add the Chase-Lovett diagonal reduction for binEntropy#41523Harmenszoon wants to merge 2 commits into
Conversation
…ion for binEntropy
Add Mathlib/Analysis/SpecialFunctions/BinaryEntropy/Diagonal.lean with the
two-variable entropy inequality of Chase and Lovett (arXiv:2211.11689,
Lemma 2.2): for x, y in [0, 1],
x * binEntropy y + y * binEntropy x
<= 2 * sqrt (x * y) * binEntropy (sqrt (x * y)),
together with its negMulLog (1 - .) half, proved via concavity of the
comparison function eta u = exp u * negMulLog (1 - exp (-u)). This reduces
two-variable inequalities of Boppana type to one-variable inequalities on
the diagonal — the reduction step behind the entropic lower bounds for
Frankl's union-closed sets conjecture.
Add docs/references.bib entries for Chase-Lovett (arXiv:2211.11689) and
Boppana (arXiv:2301.09664).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Welcome new contributor!Thank you for contributing to Mathlib! If you haven't done so already, please review our contribution guidelines, as well as the style guide and naming conventions. In particular, we kindly remind contributors that we have guidelines regarding the use of AI when making pull requests. We use a review queue to manage reviews. If your PR does not appear there, it is probably because it is not successfully building (i.e., it doesn't have a green checkmark), has the If you haven't already done so, please come to https://leanprover.zulipchat.com/, introduce yourself, and mention your new PR. Thank you again for joining our community. |
|
LLM-generated |
PR summary 98831c4466Import changes for modified filesNo significant changes to the import graph Import changes for all files
|
|
I did some golfs of your proofs. :) (posting it this way because it was little ones all up and down, would've cluttered the git I feel) |
This PR adds the two-variable entropy inequality of Chase and Lovett (arXiv:2211.11689, Lemma 2.2): for
x, y ∈ [0, 1],in a new leaf file
Mathlib/Analysis/SpecialFunctions/BinaryEntropy/Diagonal.lean, together with itsnegMulLog (1 - ·)half (Real.mul_negMulLog_one_sub_add_le) and aprivateconcavity layer for the comparison functionη u = exp u * negMulLog (1 - exp (-u)). Two entries are added todocs/references.bib(Chase–Lovett arXiv:2211.11689, Boppana arXiv:2301.09664).Motivation. This inequality is the reusable reduction step behind the recent entropic lower bounds for Frankl's union-closed sets conjecture (Gilmer; Alweiss–Huang–Sellke; Chase–Lovett; Sawin; Boppana): it reduces two-variable inequalities of Boppana type
K * (x * h y + y * h x) ≤ h (x * y)to one-variable inequalities2 * K * t * h t ≤ h (t ^ 2).Mathlib/Analysis/SpecialFunctions/BinaryEntropy.leancurrently contains calculus basics forbinEntropyonly, and no inequality of this family; I checked current master for collisions before opening this. A kernel-checked downstream application — a complete Lean formalization of the union-closed lower bound at the constant(3 - √5)/2that uses exactly this reduction — is public at https://github.com/demonstrandum-research/artifacts (theUCFrankldevelopment), which I maintain.Proof shape (one page of calculus): substituting
x = exp (-u), the inequality becomes midpoint concavity ofηon[0, ∞); thenegMulLog (x * y)parts of the two sides cancel exactly, thenegMulLog (1 - ·)parts transfer toηvia the identityx * η (-log x) = negMulLog (1 - x), andη'' ≤ 0reduces tolog t ≤ t - 1. StatingηthroughnegMulLogabsorbs the0 * log 0boundary behaviour, so no separate edge-case argument is needed atx = 1.Design notes / open questions for reviewers.
0 ≤ x/x ≤ 1pairs rather thanx ∈ Set.Icc 0 1; happy to convert if the membership form is preferred.η-machinery isprivate; it could be exposed if judged independently useful.BinaryEntropy/Diagonal.leanleaf keeps the import footprint ofBinaryEntropy.leanunchanged (the proof needsAnalysis.Convex.Deriv); merging into the main file is also possible if preferred.mul_binEntropy_add_mul_binEntropy_le/mul_negMulLog_one_sub_add_lefollow the conclusion-based convention but I am glad to rename.AI disclosure (per the mathlib AI policy): the Lean code in this PR was generated by LLM agents (Anthropic's Claude, running in an agent pipeline that I operate under the name Demonstrandum), and was then compile-verified against mathlib and reviewed by me. This PR description was also prepared with AI assistance and reviewed by me. The proof is elementary calculus as summarized above; I understand it and take full responsibility for the contribution. I am adding the
LLM-generatedlabel as required. The downstreamUCFrankldevelopment linked above (kernel-checked, axioms[propext, Classical.choice, Quot.sound]only) is the evidence that the lemma carries real weight in applications.