Zulip Chat Archive
Stream: maths
Topic: prod of inner product spaces
Moritz Doll (Jul 31 2022 at 12:42):
Hi, I was trying to prove some things about the graph of linear_pmap
s in inner product spaces, but there seems to be quite a serious issue with the definition of the norm of the product: if I see it correctly it is at the moment impossible to define an instance inner_product_space š (E Ć F)
since the norm is the norm and not the norm. On the other side I think there were very good reasons to take the maximum and I think I saw some discussion on zulip about this, but I could not find it.
Moritz Doll (Jul 31 2022 at 12:46):
the 'bad' definition is this one docs#prod.seminormed_add_comm_group
Yaƫl Dillies (Jul 31 2022 at 13:27):
You should use docs#pi_Lp, not docs#prod.
Yaƫl Dillies (Jul 31 2022 at 13:27):
I would guess docs#pi_Lp.inner_product_space.
Eric Wieser (Jul 31 2022 at 14:06):
This maybe raises the question of whether defining prod_Lp
is worth the boilerplate it comes with
Heather Macbeth (Jul 31 2022 at 16:30):
One previous discussion where this gap was observed:
https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Fubini's.20for.20fin.202.20-.3E.20R/near/222198621
I don't think we could outright switch to the definition, because the square root function is defined much later in the library than the max function.
As Yaƫl says, so far people have mostly been getting along by using pi_Lp (fin 2)
. But I would be mildly in favour of having prod_Lp
if you have the energy to implement it!
Jireh Loreaux (Jul 31 2022 at 16:41):
On a tangentially related topic, just FYI, I am currently implementing the equivalence between lp and pi_Lp. Should be ready in a day or two once I have time to work on it again.
Moritz Doll (Jul 31 2022 at 16:55):
I guess will not do it in the near future, except if I really need it. I would not be happy using docs#pi_Lp that feels rather unnatural to me. For the definition of the adjoint there is a construction that avoids using the graph, so I don't need products of Hilbert spaces.
Violeta HernƔndez (Jul 31 2022 at 18:25):
What about defining prod_Lp
as pi_Lp (fin 2)
?
Violeta HernƔndez (Jul 31 2022 at 18:26):
Or perhaps pi_Lp bool
, as I imagine that this is the canonical 2-element type
Anatole Dedecker (Jul 31 2022 at 19:21):
I think prod_Lp
would be a natural thing to have, and imo it would be best to define it as a type alias over the true prod
and then pull back all the structure from pi_Lp
Moritz Doll (Jul 31 2022 at 19:50):
Heather Macbeth said:
One previous discussion where this gap was observed:
https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Fubini's.20for.20fin.202.20-.3E.20R/near/222198621I don't think we could outright switch to the definition, because the square root function is defined much later in the library than the max function.
As Yaƫl says, so far people have mostly been getting along by using
pi_Lp (fin 2)
. But I would be mildly in favour of havingprod_Lp
if you have the energy to implement it!
Actually it is possible to include data.real.sqrt
in analysis.normed.group.basic
: https://github.com/leanprover-community/mathlib/blob/mcdoll/adjoint/src/analysis/normed/group/basic.lean
Heather Macbeth (Jul 31 2022 at 20:06):
But it would need to be even earlier, right? We have e.g. docs#prod.metric_space_max
Yaƫl Dillies (Jul 31 2022 at 20:13):
Do NOT change the default distance on the product. This is a very general thing and it is personally crucial to me right now that balls are cubes for proving that upper sets in Ī¹ ā ā
are measurable.
Moritz Doll (Jul 31 2022 at 20:15):
Even if we wanted to do that, I don't think we would find anyone volunteering for that insane amount of work
Yaƫl Dillies (Jul 31 2022 at 20:17):
Actually, can pi_Lp
even represent the max norm? It takes in a real, not a ennreal
.
Moritz Doll (Jul 31 2022 at 20:21):
Heather, you are of course right. there are cyclic import if one wants to import data.real.sqrt
in the metric space file.
Yaƫl Dillies (Jul 31 2022 at 20:24):
Should pi_Lp
be generalized to take in ereal
, so that we can state results about the infinity norm homogeneously with the other norms?
Moritz Doll (Jul 31 2022 at 20:27):
There might be a point to that, since right now I think it would be impossible to state interpolation results in good way.
Yaƫl Dillies (Jul 31 2022 at 20:29):
and maybe mean inequalities?
Eric Wieser (Jul 31 2022 at 21:20):
Do you definitely mean ereal and not ennreal?
Yaƫl Dillies (Jul 31 2022 at 21:25):
Yes, because currently docs#pi_Lp takes in a docs#real, but maybe it could really be restricted to nnreal
.
Jireh Loreaux (Aug 01 2022 at 07:17):
I was thinking it could be nice if it took an ennreal
. Then it would match lp
. This should also make the equivalence significantly simpler.
Jireh Loreaux (Aug 01 2022 at 19:34):
I'm going to undertake the change of switching to ennreal
, unless someone objects, but there seemed to be enough :thumbs_up: to do it.
Heather Macbeth (Aug 01 2022 at 23:09):
ping @Sebastien Gouezel, who wrote docs#pi_Lp
Sebastien Gouezel (Aug 02 2022 at 08:02):
I think it is a very good idea to refactor pi_Lp
to use an ennreal
, and also to define prod_Lp
.
Jireh Loreaux (Aug 03 2022 at 20:02):
@Heather Macbeth , @Sebastien Gouezel the refactor of pi_Lp
is ready: #15833 (modulo moving a few lemmas at the top of the file to appropriate places). I thought you might want to be the one(s) to take a look since you are the authors of pi_Lp
and lp
.
Jireh Loreaux (Aug 10 2022 at 15:25):
@Alex Kontorovich just asked for the inner product on a prod
. Is anyone implementing it currently? I don't think it should be too hard: just define a type synonym for prod
and a map from there into pi_Lp (fin 2)
and pull all the structure back. Actually, now that I think about it, does that pullback actually make the product, uniform and bornological structures match those of prod
definitionally? Probably not?
Anatole Dedecker (Aug 10 2022 at 17:01):
No but if forgetful inheritance is setup correctly that shouldnāt be too much of a problem
Yaƫl Dillies (Aug 10 2022 at 20:53):
You can also just do it by hand and that won't be too hard. I've been waiting to have time to pull it off myself but that didn't happen yet :slight_frown:
Jireh Loreaux (Aug 10 2022 at 21:04):
I mean, it's not a terrible amount of work, but it would be annoying to do it twice (once for pi_Lp
and once for prod_Lp
).
Yaƫl Dillies (Aug 10 2022 at 21:06):
Eh, we treat pi
and prod
separately everywhere else.
Jireh Loreaux (Aug 10 2022 at 21:22):
Yeah, but with pi_Lp
you have to (or rather, prefer to) do all these shenanigans to make the structures determined by the metric structure agree definitionally with the ones that exist on the underlying Ī -type. We would want to do the same with prod_Lp
. It would be nice if we can just get it for free instead of duplicating the work. I believe this is why everyone has been loathe to implement it.
Last updated: Dec 20 2023 at 11:08 UTC