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] - chore(analysis/normed_space): define norm_one_class #4323

Closed
wants to merge 6 commits into from

Conversation

urkud
Copy link
Member

@urkud urkud commented Sep 29, 2020

Many normed rings have ∥1⊫1. Add a typeclass mixin for this property.

API changes:

  • drop normed_field.norm_one, use norm_one instead;
  • same with normed_field.nnnorm_one;
  • new typeclass norm_one_class for ∥1∥ = 1;
  • add list.norm_prod_le, list.norm_prod_le, finset.norm_prod_le, finset.norm_prod_le':
    norm of the product of finitely many elements is less than or equal to the product of their norms;
    versions with prime assume that a list or a finset is nonempty, while the other versions
    assume [norm_one_class];
  • rename norm_pow_le to norm_pow_le', new norm_pow_le assumes [norm_one_class] instead
    of 0 < n;
  • add a few supporting lemmas about lists and finsets.

Many normed rings have `∥1⊫1`. Add a typeclass mixin for this property.
@urkud urkud added the awaiting-review The author would like community review of the PR label Sep 29, 2020
Copy link
Member

@robertylewis robertylewis left a comment

Choose a reason for hiding this comment

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

This all looks good to me. @PatrickMassot any thoughts?

Copy link
Member

@hrmacbeth hrmacbeth left a comment

Choose a reason for hiding this comment

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

Normed algebras (according to the current definition) will satisfy norm_one_class, right? Could you add this instance?

src/analysis/normed_space/basic.lean Show resolved Hide resolved
src/analysis/normed_space/basic.lean Show resolved Hide resolved
src/analysis/normed_space/basic.lean Show resolved Hide resolved
@urkud
Copy link
Member Author

urkud commented Oct 1, 2020

Normed algebras (according to the current definition) will satisfy norm_one_class, right? Could you add this instance?

This can't be an instance because Lean can't guess k based on A. We have normed_algebra.norm_one. I can add lemma normed_algebra.norm_one_class to make haveI : norm_one_class A := normed_algebra.norm_one_class k possible.

@hrmacbeth
Copy link
Member

LGTM. Since @PatrickMassot was pinged earlier, let's leave it open til he wakes up.

@PatrickMassot
Copy link
Member

bors merge

@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 Oct 1, 2020
bors bot pushed a commit that referenced this pull request Oct 1, 2020
Many normed rings have `∥1⊫1`. Add a typeclass mixin for this property.

API changes:

* drop `normed_field.norm_one`, use `norm_one` instead;
* same with `normed_field.nnnorm_one`;
* new typeclass `norm_one_class` for `∥1∥ = 1`;
* add `list.norm_prod_le`, `list.norm_prod_le`, `finset.norm_prod_le`, `finset.norm_prod_le'`:
  norm of the product of finitely many elements is less than or equal to the product of their norms;
  versions with prime assume that a `list` or a `finset` is nonempty, while the other versions
  assume `[norm_one_class]`;
* rename `norm_pow_le` to `norm_pow_le'`, new `norm_pow_le` assumes `[norm_one_class]` instead
  of `0 < n`;
* add a few supporting lemmas about `list`s and `finset`s.
@bors
Copy link

bors bot commented Oct 1, 2020

Pull request successfully merged into master.

Build succeeded:

@bors bors bot changed the title chore(analysis/normed_space): define norm_one_class [Merged by Bors] - chore(analysis/normed_space): define norm_one_class Oct 1, 2020
@bors bors bot closed this Oct 1, 2020
@bors bors bot deleted the norm-one-class branch October 1, 2020 20:39
adomani pushed a commit that referenced this pull request Oct 7, 2020
Many normed rings have `∥1⊫1`. Add a typeclass mixin for this property.

API changes:

* drop `normed_field.norm_one`, use `norm_one` instead;
* same with `normed_field.nnnorm_one`;
* new typeclass `norm_one_class` for `∥1∥ = 1`;
* add `list.norm_prod_le`, `list.norm_prod_le`, `finset.norm_prod_le`, `finset.norm_prod_le'`:
  norm of the product of finitely many elements is less than or equal to the product of their norms;
  versions with prime assume that a `list` or a `finset` is nonempty, while the other versions
  assume `[norm_one_class]`;
* rename `norm_pow_le` to `norm_pow_le'`, new `norm_pow_le` assumes `[norm_one_class]` instead
  of `0 < n`;
* add a few supporting lemmas about `list`s and `finset`s.
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

4 participants