Zulip Chat Archive

Stream: mathlib4

Topic: Cartesian product of two Hilbert spaces


Zhang Ruichong (Aug 31 2023 at 13:59):

It is well known that if A and B a two Hilbert spaces, then A × B is a Hilbert space. So I want to prove this:

import Mathlib.LinearAlgebra.FiniteDimensional
import Mathlib.Analysis.InnerProductSpace.PiL2
import Mathlib.Analysis.InnerProductSpace.Dual
import Mathlib.Analysis.InnerProductSpace.Basic
open InnerProductSpace
noncomputable section

variable {A B : Type _} [NormedAddCommGroup A] [NormedAddCommGroup B]
variable [InnerProductSpace  A] [InnerProductSpace  B]

def prod_inner (x y : A × B) :  :=
  inner x.1 y.1 + inner x.2 y.2

instance prod_inner_product_space :
  InnerProductSpace  (A × B) where
  inner := prod_inner

I'm completely stuck on this, I haven't found any relevant lemmas in Mathlib yet.
Do I really need to construct it by myself?

Yaël Dillies (Aug 31 2023 at 14:00):

See #6136

Anatole Dedecker (Aug 31 2023 at 14:04):

To explain a bit more: this issue has been discussed several times already, but the main problem is that, as currently stated, this is false. The reason is that, in mathlib, the default norm on A × B is (a,b)=max(a,b)\Vert(a, b)\Vert = \max(\Vert a\Vert, \Vert b\Vert), not (a,b)=(a2+b2)12\Vert(a, b)\Vert = (\Vert a\Vert^2 + \Vert b\Vert^2)^{\frac12}. And in general this norm is not a Hilbert space norm at all.

Anatole Dedecker (Aug 31 2023 at 14:06):

The solution will be to use WithLp 2 (A × B), which will soon have the structure you are looking for

Anatole Dedecker (Aug 31 2023 at 14:06):

docs#WithLp

Zhang Ruichong (Aug 31 2023 at 14:15):

Anatole Dedecker said:

The solution will be to use WithLp 2 (A × B), which will soon have the structure you are looking for

Did you mean that it hasn't been implemented, and I have to wait for some time before implementation?

Yaël Dillies (Aug 31 2023 at 14:17):

Yes, the implementation is here, which is not part of mathlib yet.


Last updated: Dec 20 2023 at 11:08 UTC