Imports
/- Copyright (c) 2026 Gregory J. Loges. All rights reserved. Released under Apache 2.0 license as described in the file LICENSE. Authors: Gregory J. Loges -/ module public import Mathlib.Analysis.InnerProductSpace.LinearPMap

Submodules of E × F

In this module we define submoduleToLp which reinterprets a submodule of E × F, where E and F are inner product spaces, as a submodule of WithLp 2 (E × F). This allows us to take advantage of the inner product structure, since otherwise by default E × F is given the sup norm.

@[expose] public section

The submodule of WithLp 2 (E × F) defined by M.

def submoduleToLp : Submodule (WithLp 2 (E × F)) where carrier := {x | x.ofLp M} add_mem' := E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace FM:Submodule (E × F)f:E × Fg:F × E {a b : WithLp 2 (E × F)}, a {x | x.ofLp M} b {x | x.ofLp M} a + b {x | x.ofLp M} E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace FM:Submodule (E × F)f:E × Fg:F × Ea:WithLp 2 (E × F)b:WithLp 2 (E × F)ha:a {x | x.ofLp M}hb:b {x | x.ofLp M}a + b {x | x.ofLp M} All goals completed! 🐙 zero_mem' := Submodule.zero_mem M smul_mem' := E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace FM:Submodule (E × F)f:E × Fg:F × E (c : ) {x : WithLp 2 (E × F)}, x {x | x.ofLp M} c x {x | x.ofLp M} E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace FM:Submodule (E × F)f:E × Fg:F × Ec:x:WithLp 2 (E × F)hx:x {x | x.ofLp M}c x {x | x.ofLp M} All goals completed! 🐙
lemma mem_submodule_iff_mem_submoduleToLp : f M (WithLp.toLp 2 f) submoduleToLp M := Eq.to_iff rflE:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace FM:Submodule (E × F)x:WithLp 2 (E × F)h: t nhds x, (t (submoduleToLp M)).Nonemptyt:Set (E × F)t1:Set (E × F)ht1:t1 tht1':IsOpen t1hx:x.ofLp t1this: t' nhds x, y t', y.ofLp t1(t M).Nonempty E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace FM:Submodule (E × F)x:WithLp 2 (E × F)h: t nhds x, (t (submoduleToLp M)).Nonemptyt:Set (E × F)t1:Set (E × F)ht1:t1 tht1':IsOpen t1hx:x.ofLp t1t2:Set (WithLp 2 (E × F))ht2:t2 nhds xht2': y t2, y.ofLp t1(t M).Nonempty E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace FM:Submodule (E × F)x:WithLp 2 (E × F)h: t nhds x, (t (submoduleToLp M)).Nonemptyt:Set (E × F)t1:Set (E × F)ht1:t1 tht1':IsOpen t1hx:x.ofLp t1t2:Set (WithLp 2 (E × F))ht2:t2 nhds xht2': y t2, y.ofLp t1w:WithLp 2 (E × F)hw:w t2 (submoduleToLp M)(t M).Nonempty E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace FM:Submodule (E × F)x:WithLp 2 (E × F)h: t nhds x, (t (submoduleToLp M)).Nonemptyt:Set (E × F)t1:Set (E × F)ht1:t1 tht1':IsOpen t1hx:x.ofLp t1t2:Set (WithLp 2 (E × F))ht2:t2 nhds xht2': y t2, y.ofLp t1w:WithLp 2 (E × F)hw:w t2 (submoduleToLp M)w.ofLp t M All goals completed! 🐙E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace FM:Submodule (E × F)f:E × Ff M.topologicalClosure WithLp.toLp 2 f submoduleToLp M.topologicalClosure All goals completed! 🐙E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace FM:Submodule (E × F)g:F × Eh: u submoduleToLp M, inner u (WithLp.toLp 2 (g.2, -g.1)) = 0a:Eb:Fhab:(a, b) Mhab':WithLp.toLp 2 (a, b) submoduleToLp Mh':inner a g.2 = inner b g.1inner b g.1 - inner a g.2 = 0 All goals completed! 🐙E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace FM:Submodule (E × F)f:E × Fh: (v : WithLp 2 (E × F)), (∀ w submoduleToLp M, inner w v = 0) inner v (WithLp.toLp 2 f) = 0a:Fb:Eh': (a_1 : E) (b_1 : F), (a_1, b_1) M inner b_1 a - inner a_1 b = 0w:WithLp 2 (E × F)hw:w submoduleToLp Mhw':inner w.snd a = inner w.fst binner w (WithLp.toLp 2 (b, -a)) = 0 All goals completed! 🐙 All goals completed! 🐙All goals completed! 🐙