Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Merged by Bors] - feat: Conjugate exponents in ℝ≥0 #10589

Closed
wants to merge 5 commits into from

Conversation

YaelDillies
Copy link
Collaborator

It happens often that we have p q : ℝ≥0 that are conjugate. So far, we only had a predicate for real numbers to be conjugate, which made dealing with ℝ≥0 conjugates clumsy.

This PR

  • introduces NNReal.IsConjExponent, NNReal.conjExponent
  • renames Real.IsConjugateExponent, Real.conjugateExponent to Real.IsConjExponent, Real.conjExponent
  • renames a few more lemmas to match up the Real and NNReal versions

From LeanAPAP


Open in Gitpod

It happens often that we have `p q : ℝ≥0` that are conjugate. So far, we only had a predicate for real numbers to be conjugate, which made dealing with `ℝ≥0` conjugates clumsy.

This PR
* introduces `NNReal.IsConjExponent`, `NNReal.conjExponent`
* renames `Real.IsConjugateExponent`, `Real.conjugateExponent` to `Real.IsConjExponent`, `Real.conjExponent`
* renames a few more lemmas to match up the `Real` and `NNReal` versions

From LeanAPAP
@YaelDillies YaelDillies added awaiting-review The author would like community review of the PR t-analysis Analysis (normed *, calculus) labels Feb 15, 2024
Comment on lines +36 to +40
/-- Two real exponents `p, q` are conjugate if they are `> 1` and satisfy the equality
`1/p + 1/q = 1`. This condition shows up in many theorems in analysis, notably related to `L^p`
norms. -/
@[mk_iff]
structure IsConjExponent (p q : ℝ) : Prop where
Copy link
Member

Choose a reason for hiding this comment

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

Is there a typeclass that abstracts this? I guess it would be something like OrderedSemifield... which we probably don't have.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

We do have LinearOrderedSemifield. Do you think that's worth it given that there are exactly two types which we would use this for (namely and ℝ≥0. ℝ≥0∞ is not a linear ordered semifield so would need to be handled separately)?

Copy link
Member

Choose a reason for hiding this comment

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

If it roughly halves the length of this file, then yes I would attempt to use it, I think.

If we can come up with a typeclass that also humours ENNReal, that would be even better.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I can't, actually. There's too much about tsub that's not generalised (generalisable?) so that it applies to both Real and NNReal.

Copy link
Member

Choose a reason for hiding this comment

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

Ok, good point.

@jcommelin jcommelin added awaiting-author A reviewer has asked the author a question or requested changes and removed awaiting-review The author would like community review of the PR labels Feb 15, 2024
@YaelDillies YaelDillies added awaiting-review The author would like community review of the PR and removed awaiting-author A reviewer has asked the author a question or requested changes labels Feb 15, 2024
@leanprover-community-mathlib4-bot leanprover-community-mathlib4-bot added the merge-conflict The PR has a merge conflict with master, and needs manual merging. label Feb 15, 2024
@leanprover-community-mathlib4-bot leanprover-community-mathlib4-bot removed the merge-conflict The PR has a merge conflict with master, and needs manual merging. label Feb 16, 2024
Copy link
Member

@jcommelin jcommelin left a comment

Choose a reason for hiding this comment

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

Thanks 🎉

bors merge

@leanprover-community-mathlib4-bot leanprover-community-mathlib4-bot added ready-to-merge This PR has been sent to bors. and removed awaiting-review The author would like community review of the PR labels Feb 17, 2024
mathlib-bors bot pushed a commit that referenced this pull request Feb 17, 2024
It happens often that we have `p q : ℝ≥0` that are conjugate. So far, we only had a predicate for real numbers to be conjugate, which made dealing with `ℝ≥0` conjugates clumsy.

This PR
* introduces `NNReal.IsConjExponent`, `NNReal.conjExponent`
* renames `Real.IsConjugateExponent`, `Real.conjugateExponent` to `Real.IsConjExponent`, `Real.conjExponent`
* renames a few more lemmas to match up the `Real` and `NNReal` versions

From LeanAPAP
@mathlib-bors
Copy link

mathlib-bors bot commented Feb 17, 2024

Pull request successfully merged into master.

Build succeeded:

@mathlib-bors mathlib-bors bot changed the title feat: Conjugate exponents in ℝ≥0 [Merged by Bors] - feat: Conjugate exponents in ℝ≥0 Feb 17, 2024
@mathlib-bors mathlib-bors bot closed this Feb 17, 2024
@mathlib-bors mathlib-bors bot deleted the conjugate_exponent_nnreal branch February 17, 2024 10:20
riccardobrasca pushed a commit that referenced this pull request Feb 18, 2024
It happens often that we have `p q : ℝ≥0` that are conjugate. So far, we only had a predicate for real numbers to be conjugate, which made dealing with `ℝ≥0` conjugates clumsy.

This PR
* introduces `NNReal.IsConjExponent`, `NNReal.conjExponent`
* renames `Real.IsConjugateExponent`, `Real.conjugateExponent` to `Real.IsConjExponent`, `Real.conjExponent`
* renames a few more lemmas to match up the `Real` and `NNReal` versions

From LeanAPAP
thorimur pushed a commit that referenced this pull request Feb 24, 2024
It happens often that we have `p q : ℝ≥0` that are conjugate. So far, we only had a predicate for real numbers to be conjugate, which made dealing with `ℝ≥0` conjugates clumsy.

This PR
* introduces `NNReal.IsConjExponent`, `NNReal.conjExponent`
* renames `Real.IsConjugateExponent`, `Real.conjugateExponent` to `Real.IsConjExponent`, `Real.conjExponent`
* renames a few more lemmas to match up the `Real` and `NNReal` versions

From LeanAPAP
thorimur pushed a commit that referenced this pull request Feb 26, 2024
It happens often that we have `p q : ℝ≥0` that are conjugate. So far, we only had a predicate for real numbers to be conjugate, which made dealing with `ℝ≥0` conjugates clumsy.

This PR
* introduces `NNReal.IsConjExponent`, `NNReal.conjExponent`
* renames `Real.IsConjugateExponent`, `Real.conjugateExponent` to `Real.IsConjExponent`, `Real.conjExponent`
* renames a few more lemmas to match up the `Real` and `NNReal` versions

From LeanAPAP
dagurtomas pushed a commit that referenced this pull request Mar 22, 2024
It happens often that we have `p q : ℝ≥0` that are conjugate. So far, we only had a predicate for real numbers to be conjugate, which made dealing with `ℝ≥0` conjugates clumsy.

This PR
* introduces `NNReal.IsConjExponent`, `NNReal.conjExponent`
* renames `Real.IsConjugateExponent`, `Real.conjugateExponent` to `Real.IsConjExponent`, `Real.conjExponent`
* renames a few more lemmas to match up the `Real` and `NNReal` versions

From LeanAPAP
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready-to-merge This PR has been sent to bors. t-analysis Analysis (normed *, calculus)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants