Skip to content

feat(Analysis/FunctionalSpaces): the one-dimensional Poincaré inequality#40824

Open
alejandro-soto-franco wants to merge 1 commit into
leanprover-community:masterfrom
alejandro-soto-franco:feat/poincare-1d
Open

feat(Analysis/FunctionalSpaces): the one-dimensional Poincaré inequality#40824
alejandro-soto-franco wants to merge 1 commit into
leanprover-community:masterfrom
alejandro-soto-franco:feat/poincare-1d

Conversation

@alejandro-soto-franco

@alejandro-soto-franco alejandro-soto-franco commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Adds the one-dimensional Poincaré inequality MeasureTheory.poincare_1d: for
f : ℝ → E continuous on [a, b], continuously differentiable on (a, b), with
f a = 0,

∫⁻ x in Icc a b, ‖f x‖ₑ ^ 2 ≤ ENNReal.ofReal ((b - a) ^ 2) * ∫⁻ x in Icc a b, ‖deriv f x‖ₑ ^ 2.

The statement uses lower Lebesgue integrals of extended norms, so no integrability
hypothesis on the derivative is needed (the bound is automatic when the right-hand
side is infinite), and it holds for an arbitrary normed space E. The general
(not necessarily complete) E is handled by wlog … : CompleteSpace E generalizing E
together with the completion-embedding idiom, as in
Mathlib/MeasureTheory/Integral/IntervalIntegral/DistLEIntegral.lean.

Also adds the supporting ENNReal.lintegral_sq_le_measure_mul_lintegral_sq
(Cauchy–Schwarz for the lower Lebesgue integral against the constant 1, the
p = q = 2 case of Hölder) to MeanInequalities.lean.

This is the base case for an n-dimensional convex-domain version (Fubini over
coordinate slices), planned as a follow-up. The statement form (extended-norm
Lebesgue integrals, arbitrary normed space) follows discussion with Sébastien
Gouëzel on Zulip
.


AI assistance: this contribution was developed with the help of Claude Code Opus 4.8; the proof was
drafted and iteratively refined against the Lean compiler, then reviewed by me.

@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 Jun 19, 2026
@github-actions

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.

@github-actions

github-actions Bot commented Jun 19, 2026

Copy link
Copy Markdown

PR summary 70eb62d408

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference
Mathlib.Analysis.FunctionalSpaces.PoincareInequality (new file) 2513

Declarations diff (regex)

+ MeasureTheory.poincare_1d
+ MeasureTheory.poincare_1d_uIcc
+ enorm_sub_le_lintegral_deriv_aux
+ enorm_sub_le_lintegral_deriv_of_contDiffOn_Ioo
+ rpow_lintegral_le_measure_rpow_mul_lintegral_rpow

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 70eb62d).

  • +4 new declarations
  • −0 removed declarations
+ENNReal.rpow_lintegral_le_measure_rpow_mul_lintegral_rpow
+MeasureTheory.poincare_1d
+MeasureTheory.poincare_1d_uIcc
+enorm_sub_le_lintegral_deriv_of_contDiffOn_Ioo

No changes to strong technical debt.

No changes to weak technical debt.

Current commit 70eb62d408
Reference commit 07f4b8dcd0

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).

@github-actions github-actions Bot added the t-measure-probability Measure theory / Probability theory label Jun 19, 2026
@alejandro-soto-franco alejandro-soto-franco marked this pull request as ready for review June 19, 2026 19:15
Comment on lines +67 to +68
∫⁻ x in Icc a b, ‖f x‖ₑ ^ 2
≤ ENNReal.ofReal ((b - a) ^ 2) * ∫⁻ x in Icc a b, ‖deriv f x‖ₑ ^ 2 := by

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps also worth having the UIcc version with enndist a b^2 as the scale factor?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good idea, adding it.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done, added.

@grunweg grunweg added the LLM-generated PRs with substantial input from LLMs - review accordingly label Jun 19, 2026
@alejandro-soto-franco

alejandro-soto-franco commented Jun 20, 2026

Copy link
Copy Markdown
Contributor Author

After conversations in the Zulip thread mentioned at the top, I refactored as follows:

  • Generalised p = 2 to any 1 ≤ p. The power-mean step is a
    new helper ENNReal.rpow_lintegral_le_measure_rpow_mul_lintegral_rpow in MeanInequalities.
  • Consolidated the FTC bound into IntervalIntegral/ContDiff.lean. I added the open-interval generalisation I used here and made the existing ..._Icc version by Gouëzel a corollary (signature unchanged).
  • Switched to using the toComplₗᵢ completion idiom; thought it was more appropriate.
  • Renamed away the _lp suffix as it is no longer relevant and did some have-folding.

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-measure-probability Measure theory / Probability theory

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants