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 × F⊢ f ∈ 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.1⊢ inner ℂ 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 b⊢ inner ℂ w (WithLp.toLp 2 (b, -a)) = 0 All goals completed! 🐙 All goals completed! 🐙All goals completed! 🐙