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/{normed/group}/seminorm): Hom classes for seminorms #16227
Conversation
This PR/issue depends on: |
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 think this looks good overall but someone who knows about seminorms should definitely check that nothing weird is happening.
Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>
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 r+
Sorry, I thought this was already reviewed by someone else. bors r- bors d=@eric-wieser |
✌️ eric-wieser can now approve this pull request. To approve and merge a pull request, simply reply with |
Canceled. |
(Please feel free to re-assign to someone else, I just picked the first suggestion by GitHub) |
I think Eric is still on holidays. |
:) |
map_mul := λ f, f.map_mul' } | ||
map_zero := λ f, (f.eq_zero' _).2 rfl } | ||
|
||
instance mul_hom_class : mul_hom_class (absolute_value R S) R S := |
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.
As @Vierkantor comments for add_group_seminorm_class.to_zero_hom_class
, wouldn't it be good to make coe
explicit in this and the following instances?
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.
Agreed, copying the data carrying fields is helpful.
Besides my comment above, it looks good to me. |
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.
Despite having very few comments, I have tried to look at this carefully, and it looks good to me.
/-- `subadditive_hom_class F α β` states that `F` is a type of subadditive morphisms. -/ | ||
class subadditive_hom_class (F : Type*) (α β : out_param $ Type*) [has_add α] [has_add β] [has_le β] | ||
extends fun_like F α (λ _, β) := | ||
(map_add_le_add (f : F) : ∀ a b, f (a + b) ≤ f a + f b) |
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 is just bikeshedding, but I think it's reasonable to shorten this to map_add_le
.
(map_add_le_add (f : F) : ∀ a b, f (a + b) ≤ f a + f b) | |
(map_add_le (f : F) : ∀ a b, f (a + b) ≤ f a + f b) |
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 kept them long to avoid ambiguity with map_mul_le_add
(and the eventual map_add_le_max
and such).
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.
Feel free to shorten them if we see that no ambiguity arises over time.
bors merge
@[to_additive subadditive_hom_class] | ||
class submultiplicative_hom_class (F : Type*) (α β : out_param $ Type*) [has_mul α] [has_mul β] | ||
[has_le β] extends fun_like F α (λ _, β) := | ||
(map_mul_le_mul (f : F) : ∀ a b, f (a * b) ≤ f a * f b) |
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.
Same here
(map_mul_le_mul (f : F) : ∀ a b, f (a * b) ≤ f a * f b) | |
(map_mul_le (f : F) : ∀ a b, f (a * b) ≤ f a * f b) |
Thanks, LGTM bors d+ |
✌️ YaelDillies can now approve this pull request. To approve and merge a pull request, simply reply with |
…6227) Introduce `add_group_seminorm_class`, `group_seminorm_class`, `seminorm_class`, the hom classes of `add_group_seminorm`, `group_seminorm`, `seminorm`.
Pull request successfully merged into master. Build succeeded: |
…6227) Introduce `add_group_seminorm_class`, `group_seminorm_class`, `seminorm_class`, the hom classes of `add_group_seminorm`, `group_seminorm`, `seminorm`.
…6227) Introduce `add_group_seminorm_class`, `group_seminorm_class`, `seminorm_class`, the hom classes of `add_group_seminorm`, `group_seminorm`, `seminorm`.
Introduce
add_group_seminorm_class
,group_seminorm_class
,seminorm_class
, the hom classes ofadd_group_seminorm
,group_seminorm
,seminorm
.analysis.seminorm
#16152