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(measure_theory/lp_space): add more lemmas about snorm #5644

Closed
wants to merge 2 commits into from

Conversation

RemyDegenne
Copy link
Collaborator


@RemyDegenne RemyDegenne added the awaiting-review The author would like community review of the PR label Jan 6, 2021
Copy link
Collaborator

@sgouezel sgouezel left a comment

Choose a reason for hiding this comment

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

The additions in the PR look good to me.

I have one design question, though. The definitions we have currently are given for real p. Hoever, the case p = \infty is also an important one, and many statements hold uniformly over all positive p, including \infty. Many results (including duality, convolution, interpolation, and so on) can be formulated in this extended setting. So, I wonder if it would make sense to define snorm f p \mu more generally for p : ennreal, using the formula you have given for 0 < p < \infty, and for p = 0 the norm would be 0 if the function is almost everywhere measurable and \infty otherwise, and for p = \infty this would be the usual L^\infty-norm. This would require a non-trivial refactoring, but in the long run I have the impression this would be a move in the right direction. I am asking now because, the more material you add, and the harder the refactor will be.

src/measure_theory/lp_space.lean Outdated Show resolved Hide resolved
@RemyDegenne
Copy link
Collaborator Author

My first attempt at defining those spaces had p : ennreal (or maybe nnreal?) but working with a non-real exponent is hell. We have rpow, but we don't have ennreal_pow : ennreal -> ennreal -> ennreal. The exponent has to be converted everywhere.

But I agree that including the infinite exponent case would be good. On top of that, many non-negativity hypotheses on p could be removed.

I'll experiment with it... and maybe define ennreal_pow, if that is what we need.

@RemyDegenne
Copy link
Collaborator Author

I think that I answered too fast and that the conversion between ennreal and real is in fact not an issue. if I understand correctly, what you suggest is a snorm f (p:ennreal) µ with three sub-cases, in which the main case is what I have been doing until now. So I can convert p to a real in that definition and there is no issue of ennreal exponent.

@RemyDegenne
Copy link
Collaborator Author

I don't think that it is necessary to have a special case for p=0.
The difference between your proposal and what I did in that case is that you propose a snorm that is finite (0) iff the function is ae_measurable, while it currently is 1 for all functions.
I think it does not matter because the definition of mem_Lp is "ae_measurable and snorm finite". The functions which are not ae_measurable are excluded from L0 anyway, so the value of snorm for these functions does not matter.

I'll experiment with a two-cases definition, R+infinity.

@sgouezel
Copy link
Collaborator

sgouezel commented Jan 9, 2021

You're right for p = 0 that requiring ae_measurable is not important. However, having the norm of all functions to be zero is nicer, because it gives snorm p (c f) = c snorm p f for all p.

As for ennreal_pow, as you point out in your later message this is not necessary as one would only take the powers when the exponent is real (and (x^\infty)^0 can not be turned in something usable in any situation).

@RemyDegenne
Copy link
Collaborator Author

Indeed having snorm f 0 µ = 0 would be nicer for that reason. Then I'll adopt the 3 cases approach.

Should we merge this PR and have all the design changes in a next one?

@sgouezel
Copy link
Collaborator

sgouezel commented Jan 9, 2021

Yes, let's merge this one already.
bors r+

@github-actions github-actions bot added ready-to-merge All that is left is for bors to build and merge this PR. (Remember you need to say `bors r+`.) and removed awaiting-review The author would like community review of the PR labels Jan 9, 2021
@bors
Copy link

bors bot commented Jan 9, 2021

Pull request successfully merged into master.

Build succeeded:

@bors bors bot changed the title feat(measure_theory/lp_space): add more lemmas about snorm [Merged by Bors] - feat(measure_theory/lp_space): add more lemmas about snorm Jan 9, 2021
@bors bors bot closed this Jan 9, 2021
@bors bors bot deleted the lp_space_snorm branch January 9, 2021 16:23
Julian added a commit that referenced this pull request Jan 12, 2021
* origin/master: (751 commits)
  chore(topology/algebra/infinite_sum): speedup has_sum_sum (#5710)
  feat(submonoid/basic): subsingleton and nontrivial instances for {add_,}submonoid (#5690)
  docs(undergrad.yaml): analysis updates (#5675)
  feat(linear_algebra/multilinear_map): Add `range` and `map` (#5658)
  feat(measure_theory): each set has a measurable superset of the same measure (#5688)
  feat(data/set/intervals): add 2 Icc ssubset lemmas (#5617)
  chore(category_theory/limits): move constructions folder (#5681)
  fix(linear_algebra/tensor_product): Remove the priorities from the module structure (#5667)
  chore(category_theory/limits/over): generalise, golf and document over limits (#5674)
  chore(scripts): update nolints.txt (#5705)
  feat(measure_theory/pi): `ae_eq` lemmas about intervals in `Π i, α i` (#5633)
  feat(algebra/splitting_field): Restrict to splitting field (#5562)
  chore(scripts): update nolints.txt (#5699)
  feat(analysis/special/functions/trigonometric): complex trig and some even/odd lemmas (#5404)
  feat(equiv|set|topology): various additions (#5656)
  chore(measure_theory/set_integral): use weaker assumptions here and there (#5647)
  feat(field_theory/separable): Remove hypothesis in irreducible.separable (#5687)
  feat(order/complete_well_founded): characterise well-foundedness for complete lattices (#5575)
  chore(order/filter): a few more lemmas about `eventually` and set operations (#5686)
  chore(order/filter/basic): a few `simp` lemmas (#5685)
  feat(data/equiv/basic, logic/embedding): swap commutes with injective functions (#5636)
  chore(scripts): update nolints.txt (#5682)
  feat(algebra/lie/basic): Lie ideal operations are linear spans (#5676)
  feat(measure_theory/lp_space): add more lemmas about snorm (#5644)
  chore(data/set/lattice): add a few simp lemmas (#5671)
  feat(topology/separation, topology/metric_space/basic): add lemmas on discrete subsets of a topological space (#5523)
  feat(topology/algebra/ordered): prove `tendsto.Icc` for pi-types (#5639)
  chore(scripts): update nolints.txt (#5673)
  feat(category_theory/limits): preserving pullbacks (#5668)
  chore(linear_algebra/alternating): golf a proof (#5666)
  chore(algebra/group/hom): fix additive version of docstring (#5660)
  chore(analysis/special_functions/trigonometric): adding `@[pp_nodot]` to complex.log (#5670)
  feat(data/finset/intervals, data/set/intervals/basic): intersection of finset.Ico, union of intervals for sets and finsets (#5410)
  feat(algebra/linear_ordered_comm_group_with_zero): Add linear_ordered_comm_monoid_with_zero and an instance for nat (#5645)
  feat(geometry/manifold/times_cont_mdiff): API for checking `times_cont_mdiff` (#5631)
  feat(category_theory/closed): Frobenius reciprocity of cartesian closed categories (#5624)
  feat(measure_theory/measure_space): ae_measurable and measurable are equivalent for complete measures (#5643)
  refactor(linear_algebra/alternating): Use unapplied maps when possible (#5648)
  chore(algebra/ordered_monoid): rename lemmas (#5657)
  feat(measure_theory/borel_space): locally finite measure is sigma finite (#5634)
  refactor(algebra/module/basic): Clean up all the nat/int semimodule definitions (#5654)
  feat(topology/algebra): add additive/multiplicative instances (#5662)
  chore(scripts): update nolints.txt (#5661)
  feat(measure_theory): some additions (#5653)
  chore(data/list/basic): tag mmap(') with simp (#5443)
  feat(category_theory/sites): category of sheaves on the trivial topology  (#5651)
  feat(category_theory/monad): reflector preserves terminal object (#5649)
  feat(measure_theory/borel_space): a compact set has finite measure (#5628)
  feat(category_theory/closed): golf definition and proofs (#5623)
  feat(category_theory/limits): the product comparison natural transformation (#5621)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready-to-merge All that is left is for bors to build and merge this PR. (Remember you need to say `bors r+`.)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants