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(analysis/seminorm): The norm as a seminorm, balanced and absorbent lemmas #11487

Closed
wants to merge 6 commits into from

Conversation

YaelDillies
Copy link
Collaborator

@YaelDillies YaelDillies commented Jan 16, 2022

This

  • defines norm_seminorm, the norm as a seminorm. This is useful to translate seminorm lemmas to norm lemmas
  • proves many lemmas about balanced, absorbs, absorbent
  • generalizes many lemmas about the aforementioned predicates. In particular, one_le_gauge_of_not_mem now takes (star_convex ℝ 0 s) (absorbs ℝ s {x}) instead of (convex ℝ s) ((0 : E) ∈ s) (is_open s). The new star_convex lemmas justify that it's a generalization.
  • proves star_convex_zero_iff
  • proves ne_zero_of_norm_ne_zero and friends
  • makes x implicit in convex.star_convex
  • renames balanced.univ to balanced_univ

@mcdoll, this might be of interest

Open in Gitpod

@YaelDillies YaelDillies added the awaiting-review The author would like community review of the PR label Jan 16, 2022
@leanprover-community-bot-assistant leanprover-community-bot-assistant added the blocked-by-other-PR This PR depends on another PR which is still in the queue. A bot manages this label via PR comment. label Jan 16, 2022
Comment on lines 587 to 591
def norm_seminorm : seminorm 𝕜 E :=
{ to_fun := norm,
smul' := norm_smul,
triangle' := norm_add_le }

Copy link
Member

Choose a reason for hiding this comment

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

I feel like this should belong into analysis/normed_space/basis, but that would cause problems because that files contains the definition of normed_field, which we need for seminorm. But if that were not a problem, we could transfer quite a few lemmas from normed_space to seminorm.

Copy link
Member

@mcdoll mcdoll Jan 16, 2022

Choose a reason for hiding this comment

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

Also we have the following code to make a seminorm into a semi_normed_space:

instance (s : seminorm 𝕜 E) : has_norm s.domain := ⟨s.to_fun⟩

lemma is_core (s : seminorm 𝕜 E) : semi_normed_group.core s.domain :=
  ⟨s.zero, s.triangle, s.neg⟩

instance (s : seminorm 𝕜 E) : semi_normed_group s.domain :=
  semi_normed_group.of_core s.domain s.is_core

lemma smul_le (s : seminorm 𝕜 E) (c : 𝕜) (x : E) : s (c • x) ≤ ∥c∥ * s x := by rw s.smul

instance (s : seminorm 𝕜 E) : semi_normed_space 𝕜 s.domain := {norm_smul_le := s.smul_le}

which implies that the two definitions are equivalent after #8218 is merged.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

There is a greater refactor to be done here, by making seminorm the primitive thing. The original problem is that @riccardobrasca didn't know about seminorm when first writing semi_normed_group.
But I think this is out of scope for this PR.

Copy link
Member

Choose a reason for hiding this comment

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

I totally agree that sooner or later we have to do the refactor to have only one notion of seminormed stuff.

@leanprover-community-bot-assistant leanprover-community-bot-assistant added the merge-conflict Please `git merge origin/master` then a bot will remove this label. label Jan 16, 2022
@leanprover-community-bot-assistant leanprover-community-bot-assistant removed the blocked-by-other-PR This PR depends on another PR which is still in the queue. A bot manages this label via PR comment. label Jan 24, 2022
@leanprover-community-bot-assistant
Copy link
Collaborator

This PR/issue depends on:

@leanprover-community-bot-assistant leanprover-community-bot-assistant removed the merge-conflict Please `git merge origin/master` then a bot will remove this label. label Jan 24, 2022
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 d+

src/analysis/normed/group/basic.lean Outdated Show resolved Hide resolved
@bors
Copy link

bors bot commented Jan 26, 2022

✌️ YaelDillies can now approve this pull request. To approve and merge a pull request, simply reply with bors r+. More detailed instructions are available here.

@leanprover-community-bot-assistant leanprover-community-bot-assistant added delegated The PR author may merge after reviewing final suggestions. and removed awaiting-review The author would like community review of the PR labels Jan 26, 2022
@YaelDillies
Copy link
Collaborator Author

Thanks for reviewing!

bors merge

bors bot pushed a commit that referenced this pull request Jan 26, 2022
…nt lemmas (#11487)

This
* defines `norm_seminorm`, the norm as a seminorm. This is useful to translate seminorm lemmas to norm lemmas
* proves many lemmas about `balanced`, `absorbs`, `absorbent`
* generalizes many lemmas about the aforementioned predicates. In particular, `one_le_gauge_of_not_mem` now takes `(star_convex ℝ 0 s) (absorbs ℝ s {x})` instead of `(convex ℝ s) ((0 : E) ∈ s) (is_open s)`. The new `star_convex` lemmas justify that it's a generalization.
* proves `star_convex_zero_iff`
* proves `ne_zero_of_norm_ne_zero` and friends
* makes `x` implicit in `convex.star_convex`
* renames `balanced.univ` to `balanced_univ`
@bors
Copy link

bors bot commented Jan 26, 2022

Pull request successfully merged into master.

Build succeeded:

@bors bors bot changed the title feat(analysis/seminorm): The norm as a seminorm, balanced and absorbent lemmas [Merged by Bors] - feat(analysis/seminorm): The norm as a seminorm, balanced and absorbent lemmas Jan 26, 2022
@bors bors bot closed this Jan 26, 2022
@bors bors bot deleted the norm_seminorm branch January 26, 2022 14:58
ericrbg pushed a commit that referenced this pull request Jan 28, 2022
…nt lemmas (#11487)

This
* defines `norm_seminorm`, the norm as a seminorm. This is useful to translate seminorm lemmas to norm lemmas
* proves many lemmas about `balanced`, `absorbs`, `absorbent`
* generalizes many lemmas about the aforementioned predicates. In particular, `one_le_gauge_of_not_mem` now takes `(star_convex ℝ 0 s) (absorbs ℝ s {x})` instead of `(convex ℝ s) ((0 : E) ∈ s) (is_open s)`. The new `star_convex` lemmas justify that it's a generalization.
* proves `star_convex_zero_iff`
* proves `ne_zero_of_norm_ne_zero` and friends
* makes `x` implicit in `convex.star_convex`
* renames `balanced.univ` to `balanced_univ`
bors bot pushed a commit that referenced this pull request Mar 12, 2022
…12624)

Move `balanced`, `absorbs`, `absorbent` to a new file.

For `analysis.seminorm`, I'm crediting
* Jean for #4827
* myself for
  * #9097
  * #11487
* Moritz for
  * #11329
  * #11414
  * #11477

For `analysis.locally_convex.basic`, I'm crediting
* Jean for #4827
* Bhavik for
  * #7358
  * #9097
* myself for
  * #9097
  * #10999
  * #11487
laurentbartholdi pushed a commit that referenced this pull request Mar 17, 2022
…12624)

Move `balanced`, `absorbs`, `absorbent` to a new file.

For `analysis.seminorm`, I'm crediting
* Jean for #4827
* myself for
  * #9097
  * #11487
* Moritz for
  * #11329
  * #11414
  * #11477

For `analysis.locally_convex.basic`, I'm crediting
* Jean for #4827
* Bhavik for
  * #7358
  * #9097
* myself for
  * #9097
  * #10999
  * #11487
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
delegated The PR author may merge after reviewing final suggestions.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants