feat(Analysis/Calculus): define absolutely monotone functions#38026
feat(Analysis/Calculus): define absolutely monotone functions#38026mrdouglasny wants to merge 5 commits intoleanprover-community:masterfrom
Conversation
Define `AbsolutelyMonotoneOn f s` for functions with nonneg iterated derivatives within a set. Prove closure under addition, scalar multiplication, and multiplication, plus show exp, cosh, constants, and powers are absolutely monotone on appropriate domains. Co-Authored-By: Claude Opus 4.6 (1M context) <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. |
PR summary 2ff88851d5Import changes for modified filesNo significant changes to the import graph Import changes for all files
|
|
Could you format the code to fill up the 100-character limit per line? |
- "nonneg" → "nonnegative" in docstrings - Remove redundant `nonneg_taylor_coeffs` - Move examples (exp, cosh, const, pow) out to avoid pulling heavy imports — they will go in a follow-up file - Fill lines to 100-char limit - Trim unused imports (only IteratedDeriv.Lemmas needed for def + closure) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
I know very little about absolutely monotone functions and what are the correct design choices, so I am going to remove my assignment on this PR. Maybe @sgouezel wants to take it up? |
j-loreaux
left a comment
There was a problem hiding this comment.
This looks reasonable to me, but it not my area of expertise.
- Add Widder, *The Laplace Transform* (1941) to references.bib and link via bibkey in the module doc - Clarify `of_contDiff` docstring (vs generic "Constructor from ...") Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
lint-bib.sh uses bibtool case-insensitive sort — lowercase 'widder' comes before 'Wielandt', not after. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Addressed all review comments:
Re: the Widder reference -- it is real, not hallucinated: The Laplace Transform by David V. Widder (1941) on Amazon |
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
All reviewer comments have been addressed. Could a maintainer please remove the awaiting-author label? Thanks. |
|
You can remove it yourself by typing "-awaiting-author". For more information about PR lifecycle, you can read https://leanprover-community.github.io/contribute/index.html |
|
-awaiting-author |
|
Sorry, I am going to remove my assignment because I would rather dedicate my scarce reviewing time to human-written code. |
| open scoped ENNReal NNReal Topology ContDiff | ||
|
|
||
| /-- A function `f : ℝ → ℝ` is absolutely monotone on a set `s` if it is smooth on `s` and all | ||
| iterated derivatives within `s` are nonnegative. -/ |
There was a problem hiding this comment.
This definition is not very good, because it forces you to have UniqueDiffOn assumptions in most statements. You should rather phrase it as: there exists a Taylor series for f on s whose terms are all nonnegative.
There was a problem hiding this comment.
Thanks, you're right that the iteratedDerivWithin-based definition forces UniqueDiffOn everywhere and that's not needed. How about this:
def AbsolutelyMonotoneOn (f : ℝ → ℝ) (s : Set ℝ) : Prop :=
∃ p : ℝ → FormalMultilinearSeries ℝ ℝ ℝ,
HasFTaylorSeriesUpToOn ∞ f p s ∧
∀ (n : ℕ) ⦃x : ℝ⦄, x ∈ s → 0 ≤ p x n fun _ => 1There is one point which still requires UniqueDiffOn s, the proof that if f and g are both absolutely monotone on s, then f * g is absolutely monotone on s, which uses the Leibniz rule. This might be fixable with more work.
There was a problem hiding this comment.
-awaiting-author
There was a problem hiding this comment.
Yes, that sounds good. For the multiplication, this should still be ok with the new definition, but it would require a missing lemma in Mathlib, saying that if two functions have Taylor series then the product also has a Taylor series given by the Leibniz formula. That's one of the points of these formalizations with the right assumptions, finding things that should be improved in the library.
|
When you are done with a conversation, could you close it? This helps focus on the remaining points. |
Summary
AbsolutelyMonotoneOn f sfor functionsf : ℝ → ℝthat are smooth onswith all iterated derivatives withinsnonnegadd,smul,mulexp,cosh, constants, and powers are absolutely monotone on appropriate domainsThis is the first part of a split of #37879. Follow-up PRs will add:
Test plan
AbsolutelyMonotoneOnstructure and examples type-check🤖 Generated with Claude Code
Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com