Skip to content

feat(Analysis/SpecialFunctions): add the Chase-Lovett diagonal reduction for binEntropy#41523

Open
Harmenszoon wants to merge 2 commits into
leanprover-community:masterfrom
Harmenszoon:frankl-binentropy-diagonal
Open

feat(Analysis/SpecialFunctions): add the Chase-Lovett diagonal reduction for binEntropy#41523
Harmenszoon wants to merge 2 commits into
leanprover-community:masterfrom
Harmenszoon:frankl-binentropy-diagonal

Conversation

@Harmenszoon

Copy link
Copy Markdown

This PR adds the two-variable entropy inequality of Chase and Lovett (arXiv:2211.11689, Lemma 2.2): for x, y ∈ [0, 1],

x * binEntropy y + y * binEntropy x ≤ 2 * sqrt (x * y) * binEntropy (sqrt (x * y))

in a new leaf file Mathlib/Analysis/SpecialFunctions/BinaryEntropy/Diagonal.lean, together with its negMulLog (1 - ·) half (Real.mul_negMulLog_one_sub_add_le) and a private concavity layer for the comparison function η u = exp u * negMulLog (1 - exp (-u)). Two entries are added to docs/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 inequalities 2 * K * t * h t ≤ h (t ^ 2). Mathlib/Analysis/SpecialFunctions/BinaryEntropy.lean currently contains calculus basics for binEntropy only, 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)/2 that uses exactly this reduction — is public at https://github.com/demonstrandum-research/artifacts (the UCFrankl development), which I maintain.

Proof shape (one page of calculus): substituting x = exp (-u), the inequality becomes midpoint concavity of η on [0, ∞); the negMulLog (x * y) parts of the two sides cancel exactly, the negMulLog (1 - ·) parts transfer to η via the identity x * η (-log x) = negMulLog (1 - x), and η'' ≤ 0 reduces to log t ≤ t - 1. Stating η through negMulLog absorbs the 0 * log 0 boundary behaviour, so no separate edge-case argument is needed at x = 1.

Design notes / open questions for reviewers.

  • Hypotheses are stated as 0 ≤ x/x ≤ 1 pairs rather than x ∈ Set.Icc 0 1; happy to convert if the membership form is preferred.
  • The η-machinery is private; it could be exposed if judged independently useful.
  • File placement: a new BinaryEntropy/Diagonal.lean leaf keeps the import footprint of BinaryEntropy.lean unchanged (the proof needs Analysis.Convex.Deriv); merging into the main file is also possible if preferred.
  • Naming: mul_binEntropy_add_mul_binEntropy_le / mul_negMulLog_one_sub_add_le follow 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-generated label as required. The downstream UCFrankl development linked above (kernel-checked, axioms [propext, Classical.choice, Quot.sound] only) is the evidence that the lemma carries real weight in applications.


  • depends on: nothing

…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>
@github-actions github-actions Bot added the new-contributor This PR was made by a contributor with at most 5 merged PRs. Welcome to the community! label Jul 9, 2026
@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown

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 awaiting-author tag, or another reason described in the Lifecycle of a PR. The review dashboard has a dedicated webpage which shows whether your PR is on the review queue, and (if not), why.

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.

@Harmenszoon

Copy link
Copy Markdown
Author

LLM-generated

@github-actions github-actions Bot added LLM-generated PRs with substantial input from LLMs - review accordingly t-analysis Analysis (normed *, calculus) labels Jul 9, 2026
@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown

PR summary 98831c4466

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference
Mathlib.Analysis.SpecialFunctions.BinaryEntropy.Diagonal (new file) 2021

Declarations diff (regex)

+ concaveOn_eta
+ continuous_eta
+ eta
+ eta''_nonpos
+ eta_add_le
+ hasDerivAt_eta
+ hasDerivAt_eta'
+ hasDerivAt_inner
+ mul_binEntropy_add_mul_binEntropy_le
+ mul_eta_neg_log
+ mul_negMulLog_one_sub_add_le
+ one_sub_exp_neg_pos

You can run this locally as follows
## from your `mathlib4` directory:
git clone https://github.com/leanprover-community/mathlib-ci.git ../mathlib-ci

## summary with just the declaration names:
../mathlib-ci/scripts/pr_summary/declarations_diff.sh <optional_commit>

## more verbose report:
../mathlib-ci/scripts/pr_summary/declarations_diff.sh long <optional_commit>

The doc-module for scripts/pr_summary/declarations_diff.sh in the mathlib-ci repository contains some details about this script.

Declarations diff (Lean)

Lean-aware diff — post-build, computed from the Lean environment (commit 98831c4).

  • +2 new declarations
  • −0 removed declarations
+Real.mul_binEntropy_add_mul_binEntropy_le
+Real.mul_negMulLog_one_sub_add_le

No changes to strong technical debt.

No changes to weak technical debt.

Current commit 98831c4466
Reference commit 80ffd59621

This script lives in the mathlib-ci repository. To run it locally, from your mathlib4 directory:

git clone https://github.com/leanprover-community/mathlib-ci.git ../mathlib-ci
../mathlib-ci/scripts/reporting/technical-debt-metrics.sh pr_summary
  • The relative value is the weighted sum of the differences with weight given by the inverse of the current value of the statistic.
  • The absolute value is the relative value divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).

@Timeroot

Timeroot commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator

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)

@Harmenszoon

Copy link
Copy Markdown
Author

Thanks @Timeroot, much appreciated! Applied all seven in 98831c4. I kept the original docstrings but took everything else as-is.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

LLM-generated PRs with substantial input from LLMs - review accordingly new-contributor This PR was made by a contributor with at most 5 merged PRs. Welcome to the community! t-analysis Analysis (normed *, calculus)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants