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(measure_theory/{lp_space,set_integral}): extend linear map lemmas from R to is_R_or_C #8210
Conversation
RemyDegenne
commented
Jul 6, 2021
•
edited
edited
Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
src/measure_theory/lp_space.lean
Outdated
variables {𝕜 : Type*} [is_R_or_C 𝕜] [normed_space 𝕜 E] [normed_space 𝕜 F] | ||
|
||
/-- Composing `f : Lp ` with `L : E →L[ℝ] F`. -/ | ||
def comp_Lp (L : E →L[ℝ] F) (f : Lp E p μ) : Lp F p μ := | ||
/-- Composing `f : Lp ` with `L : E →L[𝕜] F`. -/ | ||
def comp_Lp (L : E →L[𝕜] F) (f : Lp E p μ) : Lp F p μ := | ||
L.lipschitz.comp_Lp (map_zero L) f |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What actually needs is_R_or_C
here? Is [nondiscrete_normed_field 𝕜]
enough?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This def and the two lemmas below it are true for only
variables {𝕜 : Type*} [nondiscrete_normed_field 𝕜] [semi_normed_space 𝕜 E] [semi_normed_space 𝕜 F]
while the rest of this section is true for
variables {𝕜 : Type*} [nondiscrete_normed_field 𝕜] [normed_space 𝕜 E] [normed_space 𝕜 F]
I think you can replace every occurence of normed_space
in this file with semi_normed_space
which means you don't need the second set of assumptions to be different.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Indeed all those hypotheses can be relaxed. This is code I wrote before all the normed_space
in mathlib became semi_normed_space
.
I'll add semi_
to all hypotheses in the file (if that works).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It worked without any issue.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's more complicated in the set_integral file. Either some normed_space
in other files should be replaced by semi_normed_space
, or most normed_space
arguments are actually needed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perhaps the normed_group
arguments need to be replaced by semi_normed_group
? Just a thought, I haven't tested it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right, I replaced some normed_space
by semi_normed_space
, but those are all still normed_group
(and changing to semi_normed_group
looks like it causes errors). So I effectively still have normed_space
and it is as if I did not do anything. I suppose the two main possible courses of action are to keep things as they are here, or to work towards using semi_normed_group
as much as possible.
I confess that investigating that normed vs seminormed issue in all Lp/integral files does not interest me very much right now, and I think that it is beyond the goal of this PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I confess that investigating that normed vs seminormed issue in all Lp/integral files does not interest me very much right now
I agree!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry for sending you into that rabbit hole - I only meant it as a throwaway observation, the change to nondiscrete_normed_field
was much more relevant.
I undid all the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks!
`Lp E p μ`. -/ | ||
def comp_LpL [fact (1 ≤ p)] (L : E →L[ℝ] F) : (Lp E p μ) →L[ℝ] (Lp F p μ) := | ||
def comp_LpL [fact (1 ≤ p)] (L : E →L[𝕜] F) : (Lp E p μ) →L[𝕜] (Lp F p μ) := |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Constructions like this are often hard to find in mathlib, because you don't think about them until you need them. While you're working here, would you mind adding a cross-reference to the similar constructions continuous_linear_map.comp_left_continuous
, continuous_linear_map.comp_left_continuous_bounded
, just to increase visibility?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done!
Doing so, I realized that I did not know what comp_LpL
was. It was in the same section as a lemma I wanted to generalize, so it got the same treatment, but I did not even read it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
bors d+
✌️ RemyDegenne can now approve this pull request. To approve and merge a pull request, simply reply with |
Co-authored-by: hrmacbeth <25316162+hrmacbeth@users.noreply.github.com>
bors r+ |
…s from R to is_R_or_C (#8210) Co-authored-by: Rémy Degenne <remydegenne@gmail.com> Co-authored-by: RemyDegenne <remydegenne@gmail.com>
Pull request successfully merged into master. Build succeeded: |