[Merged by Bors] - feat(Analysis.Normed.Ring.Seminorm): add SmoothingSeminorm#15373
[Merged by Bors] - feat(Analysis.Normed.Ring.Seminorm): add SmoothingSeminorm#15373mariainesdff wants to merge 36 commits intomasterfrom
Conversation
PR summary e1af4db594Import changes for modified filesNo significant changes to the import graph Import changes for all files
|
|
This PR is quite large. Are you planning to split it up? |
Used in #15373. Co-authored-by: Yaël Dillies <yael.dillies@gmail.com>
This PR adds a few lemmas about multiplication and liminf/limsup/iInf/iSup: `mul_iInf_le_iInf_mul`, `iSup_mul_le_mul_iSup`, `mul_liminf_le_liminf_mul` and three avatars of the latter. The strategy adopted is the same as for similar lemmas in EReal (`EReal.add_iInf_le_iInf_add`...): we suffer to prove the key result `mul_le_of_forall_mul_le`, and everything is deduced from there. Note that `ENNReal.mul_le_of_forall_mul_le` could be deduced much faster from `EReal.add_le_of_forall_add_le` using the exp (both as an order isomorphism and as a "group" morphism). However, I wanted to avoid importing special functions, which unfortunately leads to a much longer and painful proof. This also generalizes some lemmas in #15373 : `limsup_mul_le'` therein can be replaced by `limsup_mul_le_mul_limsup` with some easy plug-and-play; if `_root_.Real.limsup_mul_le` is still needed, I can write another PR to deal with it (most of the work is already done anyways -- I think I can prove `mul_le_of_forall_mul_le` in NNReal, and leverage it to simplify the proof in ENNReal). Co-authored-by: Yaël Dillies <yael.dillies@gmail.com>
|
I left some answers to your comments, I'll now check the remaining sections. |
faenuccio
left a comment
There was a problem hiding this comment.
I left some other comment.
|
Thanks for all the work, LGTM! |
|
maintainer merge |
|
🚀 Pull request has been placed on the maintainer queue by faenuccio. |
jcommelin
left a comment
There was a problem hiding this comment.
One minor comment. Otherwise LGTM
bors d+
Mathlib/Data/Real/Basic.lean
Outdated
| theorem pow_mul_apply_eq_pow_mul {R : Type*} [MonoidWithZero R] (f : R → ℝ) {x : R} | ||
| (hx : ∀ y : R, f (x * y) = f x * f y) : ∀ (n : ℕ) (y : R), f (x ^ n * y) = f x ^ n * f y := by |
There was a problem hiding this comment.
| theorem pow_mul_apply_eq_pow_mul {R : Type*} [MonoidWithZero R] (f : R → ℝ) {x : R} | |
| (hx : ∀ y : R, f (x * y) = f x * f y) : ∀ (n : ℕ) (y : R), f (x ^ n * y) = f x ^ n * f y := by | |
| theorem pow_mul_apply_eq_pow_mul {R : Type*} [MonoidWithZero R] (f : R → ℝ) {x : R} | |
| (hx : ∀ y : R, f (x * y) = f x * f y) (n : ℕ) : ∀ (y : R), f (x ^ n * y) = f x ^ n * f y := by |
then you can drop the intro n.
Also, this doesn't use anything about the real numbers, right? So the target of f could be any type with a multiplication, I guess. And then it could move to a basic algebra file.
|
✌️ mariainesdff can now approve this pull request. To approve and merge a pull request, simply reply with |
We prove Proposition 1.3.2/1 from S. Bosch, U. Güntzer, R. Remmert, *Non-Archimedean Analysis*: if `f` is a nonarchimedean seminorm on `R`, then `iInf (fun n : PNat => (f (x ^ (n : ℕ))) ^ (1 / (n : ℝ)))` is a power-multiplicative nonarchimedean seminorm on `R`.
|
Build failed (retrying...): |
|
bors r- Please merge |
|
Canceled. |
|
bors r+ |
We prove Proposition 1.3.2/1 from S. Bosch, U. Güntzer, R. Remmert, *Non-Archimedean Analysis*: if `f` is a nonarchimedean seminorm on `R`, then `iInf (fun n : PNat => (f (x ^ (n : ℕ))) ^ (1 / (n : ℝ)))` is a power-multiplicative nonarchimedean seminorm on `R`.
|
Pull request successfully merged into master. Build succeeded: |
We prove Proposition 1.3.2/1 from S. Bosch, U. Güntzer, R. Remmert, Non-Archimedean Analysis: if
fis a nonarchimedean seminorm onR, theniInf (fun n : PNat => (f (x ^ (n : ℕ))) ^ (1 / (n : ℝ)))is a power-multiplicative nonarchimedean seminorm onR.