Zulip Chat Archive
Stream: Is there code for X?
Topic: Continuous linear map to normed group hom
Daniel Roca GonzΓ‘lez (Jan 19 2022 at 17:48):
Hi,
I am in a situation where I have a continuous_linear_map
and need to convert it to a normed_group_hom
. It seems weird to me that these are even different notions. Is there an automatic way to convert between them? I don't find any function to do this. Should automatic coercion work?
Eric Wieser (Jan 19 2022 at 17:54):
This certainly won't be automatic, someone will have had to prove continuous_linear_map.to_normed_group_hom
by hand (and as far as I can see they haven't). Are you able to prove that yourself? (I can't comment on whether it's true)
Patrick Massot (Jan 19 2022 at 18:01):
Daniel Roca GonzΓ‘lez said:
Hi,
I am in a situation where I have acontinuous_linear_map
and need to convert it to anormed_group_hom
. It seems weird to me that these are even different notions.
Normed group homomorphisms are maps between normed group that have no reason to be linear spaces, so there is no way they could "the same notion".
Patrick Massot (Jan 19 2022 at 18:03):
And continuous linear maps assume you have a topological module (say a topological vector space) but they do not assume the topology comes from a norm.
Patrick Massot (Jan 19 2022 at 18:03):
Does it make sense?
Eric Wieser (Jan 19 2022 at 18:08):
Here's the missing definition:
import analysis.normed.group.hom
import analysis.normed_space.operator_norm
variables {π πβ E F : Type*}
variables [semi_normed_group E] [semi_normed_group F]
variables [nondiscrete_normed_field π] [nondiscrete_normed_field πβ] {Οββ : π β+* πβ}
variables [normed_space π E] [normed_space πβ F] [ring_hom_isometric Οββ]
@[simps]
def continuous_linear_map.to_normed_group_hom (f : E βSL[Οββ] F) : normed_group_hom E F :=
{ to_fun := f,
map_add' := f.map_add,
bound' := let β¨r, hr, hβ© := f.bound in β¨r, hβ© }
So all the maths is already there (docs#continuous_linear_map.bound), the glue was just missing
Daniel Roca GonzΓ‘lez (Jan 19 2022 at 18:11):
Thank you, now I understand why one can't be a subset of the other. I do think that we should have @Eric Wieser 's conversion in the library, along with the other direction.
Eric Wieser (Jan 19 2022 at 18:13):
Is the other direction true? How do you prove map_smul
?
Daniel Roca GonzΓ‘lez (Jan 19 2022 at 18:14):
wait, you're right, that's not true either
Patrick Massot (Jan 19 2022 at 18:14):
Crap, Eric was faster
Patrick Massot (Jan 19 2022 at 18:14):
Mine was:
import analysis.normed_space.operator_norm
import analysis.normed.group.hom
def continuous_linear_map.to_normed_group_hom
{π π': Type*} {E : Type*} {F : Type*} [semi_normed_group E]
[semi_normed_group F] [nondiscrete_normed_field π] [nondiscrete_normed_field π']
[semi_normed_space π E] [semi_normed_space π' F] {Ο : π β+* π'} [ring_hom_isometric Ο]
(f : E βSL[Ο] F) : normed_group_hom E F :=
{ to_fun := f,
map_add' := map_add f,
bound' := β¨β₯fβ₯, f.le_op_normβ© }
Patrick Massot (Jan 19 2022 at 18:15):
I still prefer my last line.
Eric Wieser (Jan 19 2022 at 18:16):
I don't get how your last line is so short yet the proof of -- oh nevermind, continuous_linear_map.bound
doesn't seem to unfold to itle_op_norm
is proved in terms of bound
Patrick Massot (Jan 19 2022 at 18:16):
Daniel, we could add this, but I'm a bit worried this is an #xy issue. There's a reason why nobody ever needed that. I'm pretty skeptical that you "need to convert it to a normed_group_hom
".
Patrick Massot (Jan 19 2022 at 18:18):
Daniel, if you wonder about the sigma stuff in our code, you can read this blog post.
Daniel Roca GonzΓ‘lez (Jan 19 2022 at 18:26):
You're right: I said this because I didn't find the equivalent of normed_group_hom.antilipschitz_of_norm_ge
, but after looking some more I found linear_map.antilipschitz_of_bound
, which is basically what I needed. Thank you both.
Eric Wieser (Jan 19 2022 at 18:29):
I think the def is still worth having in mathlib simply to show the statement is true, even if it's not useful
Last updated: Dec 20 2023 at 11:08 UTC