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 rflmpr 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 ∈ t1this:∃ t' ∈ nhds x, ∀ y ∈ t', y.ofLp ∈ t1⊢ (t ∩ ↑M).Nonempty
rcases this with ⟨t2, ht2, ht2'⟩ mpr 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
rcases h t2 ht2 with ⟨w, hw⟩ mpr 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
use w.ofLp h 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
exact ⟨Set.mem_preimage.mp (ht1 (ht2' w hw.1)), (mem_toAddSubgroup (submoduleToLp M)).mp hw.2⟩ All goals completed! 🐙
lemma mem_submodule_closure_iff_mem_submoduleToLp_closure :
f ∈ M.topologicalClosure ↔ (WithLp.toLp 2 f) ∈ (submoduleToLp M).topologicalClosure := by 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
rw [← submoduleToLp_closure 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 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] 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
rfl All goals completed! 🐙
lemma mem_submodule_adjoint_iff_mem_submoduleToLp_orthogonal :
g ∈ M.adjoint ↔ WithLp.toLp 2 (g.2, -g.1) ∈ (submoduleToLp M)ᗮ := by E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)g:F × E⊢ g ∈ M.adjoint ↔ WithLp.toLp 2 (g.2, -g.1) ∈ (submoduleToLp M)ᗮ
constructor mp E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)g:F × E⊢ g ∈ M.adjoint → WithLp.toLp 2 (g.2, -g.1) ∈ (submoduleToLp M)ᗮmpr E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)g:F × E⊢ WithLp.toLp 2 (g.2, -g.1) ∈ (submoduleToLp M)ᗮ → g ∈ M.adjoint <;> mp E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)g:F × E⊢ g ∈ M.adjoint → WithLp.toLp 2 (g.2, -g.1) ∈ (submoduleToLp M)ᗮmpr E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)g:F × E⊢ WithLp.toLp 2 (g.2, -g.1) ∈ (submoduleToLp M)ᗮ → g ∈ M.adjoint intro h mpr E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)g:F × Eh:WithLp.toLp 2 (g.2, -g.1) ∈ (submoduleToLp M)ᗮ⊢ g ∈ M.adjoint
· mp E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)g:F × Eh:g ∈ M.adjoint⊢ WithLp.toLp 2 (g.2, -g.1) ∈ (submoduleToLp M)ᗮ rw [mem_orthogonal mp E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)g:F × Eh:g ∈ M.adjoint⊢ ∀ u ∈ submoduleToLp M, inner ℂ u (WithLp.toLp 2 (g.2, -g.1)) = 0 mp E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)g:F × Eh:g ∈ M.adjoint⊢ ∀ u ∈ submoduleToLp M, inner ℂ u (WithLp.toLp 2 (g.2, -g.1)) = 0] mp E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)g:F × Eh:g ∈ M.adjoint⊢ ∀ u ∈ submoduleToLp M, inner ℂ u (WithLp.toLp 2 (g.2, -g.1)) = 0
intro u hu mp E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)g:F × Eh:g ∈ M.adjointu:WithLp 2 (E × F)hu:u ∈ submoduleToLp M⊢ inner ℂ u (WithLp.toLp 2 (g.2, -g.1)) = 0
rw [mem_adjoint_iff mp E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)g:F × Eh:∀ (a : E) (b : F), (a, b) ∈ M → inner ℂ b g.1 - inner ℂ a g.2 = 0u:WithLp 2 (E × F)hu:u ∈ submoduleToLp M⊢ inner ℂ u (WithLp.toLp 2 (g.2, -g.1)) = 0 mp E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)g:F × Eh:∀ (a : E) (b : F), (a, b) ∈ M → inner ℂ b g.1 - inner ℂ a g.2 = 0u:WithLp 2 (E × F)hu:u ∈ submoduleToLp M⊢ inner ℂ u (WithLp.toLp 2 (g.2, -g.1)) = 0] at hmp E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)g:F × Eh:∀ (a : E) (b : F), (a, b) ∈ M → inner ℂ b g.1 - inner ℂ a g.2 = 0u:WithLp 2 (E × F)hu:u ∈ submoduleToLp M⊢ inner ℂ u (WithLp.toLp 2 (g.2, -g.1)) = 0
have h' : inner ℂ u.snd g.1 = inner ℂ u.fst g.2 := by E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)g:F × E⊢ g ∈ M.adjoint ↔ WithLp.toLp 2 (g.2, -g.1) ∈ (submoduleToLp M)ᗮ mp E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)g:F × Eh:∀ (a : E) (b : F), (a, b) ∈ M → inner ℂ b g.1 - inner ℂ a g.2 = 0u:WithLp 2 (E × F)hu:u ∈ submoduleToLp Mh':inner ℂ u.snd g.1 = inner ℂ u.fst g.2⊢ inner ℂ u (WithLp.toLp 2 (g.2, -g.1)) = 0
rw [← sub_eq_zero E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)g:F × Eh:∀ (a : E) (b : F), (a, b) ∈ M → inner ℂ b g.1 - inner ℂ a g.2 = 0u:WithLp 2 (E × F)hu:u ∈ submoduleToLp M⊢ inner ℂ u.snd g.1 - inner ℂ u.fst g.2 = 0 E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)g:F × Eh:∀ (a : E) (b : F), (a, b) ∈ M → inner ℂ b g.1 - inner ℂ a g.2 = 0u:WithLp 2 (E × F)hu:u ∈ submoduleToLp M⊢ inner ℂ u.snd g.1 - inner ℂ u.fst g.2 = 0mp E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)g:F × Eh:∀ (a : E) (b : F), (a, b) ∈ M → inner ℂ b g.1 - inner ℂ a g.2 = 0u:WithLp 2 (E × F)hu:u ∈ submoduleToLp Mh':inner ℂ u.snd g.1 = inner ℂ u.fst g.2⊢ inner ℂ u (WithLp.toLp 2 (g.2, -g.1)) = 0] E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)g:F × Eh:∀ (a : E) (b : F), (a, b) ∈ M → inner ℂ b g.1 - inner ℂ a g.2 = 0u:WithLp 2 (E × F)hu:u ∈ submoduleToLp M⊢ inner ℂ u.snd g.1 - inner ℂ u.fst g.2 = 0mp E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)g:F × Eh:∀ (a : E) (b : F), (a, b) ∈ M → inner ℂ b g.1 - inner ℂ a g.2 = 0u:WithLp 2 (E × F)hu:u ∈ submoduleToLp Mh':inner ℂ u.snd g.1 = inner ℂ u.fst g.2⊢ inner ℂ u (WithLp.toLp 2 (g.2, -g.1)) = 0
exact h u.fst u.snd hump E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)g:F × Eh:∀ (a : E) (b : F), (a, b) ∈ M → inner ℂ b g.1 - inner ℂ a g.2 = 0u:WithLp 2 (E × F)hu:u ∈ submoduleToLp Mh':inner ℂ u.snd g.1 = inner ℂ u.fst g.2⊢ inner ℂ u (WithLp.toLp 2 (g.2, -g.1)) = 0mp E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)g:F × Eh:∀ (a : E) (b : F), (a, b) ∈ M → inner ℂ b g.1 - inner ℂ a g.2 = 0u:WithLp 2 (E × F)hu:u ∈ submoduleToLp Mh':inner ℂ u.snd g.1 = inner ℂ u.fst g.2⊢ inner ℂ u (WithLp.toLp 2 (g.2, -g.1)) = 0
simp [h'] All goals completed! 🐙
· mpr E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)g:F × Eh:WithLp.toLp 2 (g.2, -g.1) ∈ (submoduleToLp M)ᗮ⊢ g ∈ M.adjoint rw [mem_adjoint_iff mpr E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)g:F × Eh:WithLp.toLp 2 (g.2, -g.1) ∈ (submoduleToLp M)ᗮ⊢ ∀ (a : E) (b : F), (a, b) ∈ M → inner ℂ b g.1 - inner ℂ a g.2 = 0 mpr E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)g:F × Eh:WithLp.toLp 2 (g.2, -g.1) ∈ (submoduleToLp M)ᗮ⊢ ∀ (a : E) (b : F), (a, b) ∈ M → inner ℂ b g.1 - inner ℂ a g.2 = 0]mpr E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)g:F × Eh:WithLp.toLp 2 (g.2, -g.1) ∈ (submoduleToLp M)ᗮ⊢ ∀ (a : E) (b : F), (a, b) ∈ M → inner ℂ b g.1 - inner ℂ a g.2 = 0
intro a b hab mpr E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)g:F × Eh:WithLp.toLp 2 (g.2, -g.1) ∈ (submoduleToLp M)ᗮa:Eb:Fhab:(a, b) ∈ M⊢ inner ℂ b g.1 - inner ℂ a g.2 = 0
rw [mem_orthogonal mpr 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) ∈ M⊢ inner ℂ b g.1 - inner ℂ a g.2 = 0 mpr 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) ∈ M⊢ inner ℂ b g.1 - inner ℂ a g.2 = 0] at hmpr 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) ∈ M⊢ inner ℂ b g.1 - inner ℂ a g.2 = 0
have hab' := (mem_submodule_iff_mem_submoduleToLp M (a, b)).mp hab mpr 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 M⊢ inner ℂ b g.1 - inner ℂ a g.2 = 0
have h' : inner ℂ a g.2 = inner ℂ b g.1 := by E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)g:F × E⊢ g ∈ M.adjoint ↔ WithLp.toLp 2 (g.2, -g.1) ∈ (submoduleToLp M)ᗮ mpr 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
rw [← sub_eq_zero, 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 M⊢ inner ℂ a g.2 - inner ℂ b g.1 = 0 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 M⊢ inner ℂ a g.2 + inner ℂ b (-g.1) = 0mpr 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 sub_eq_add_neg, 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 M⊢ inner ℂ a g.2 + -inner ℂ b g.1 = 0 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 M⊢ inner ℂ a g.2 + inner ℂ b (-g.1) = 0mpr 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 ← inner_neg_right 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 M⊢ inner ℂ a g.2 + inner ℂ b (-g.1) = 0 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 M⊢ inner ℂ a g.2 + inner ℂ b (-g.1) = 0mpr 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] 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 M⊢ inner ℂ a g.2 + inner ℂ b (-g.1) = 0mpr 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
exact h (WithLp.toLp 2 (a, b)) hab'mpr 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 = 0mpr 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
simp [h'] All goals completed! 🐙
lemma mem_submodule_adjoint_adjoint_iff_mem_submoduleToLp_orthogonal_orthogonal :
f ∈ M.adjoint.adjoint ↔ WithLp.toLp 2 f ∈ (submoduleToLp M)ᗮᗮ := by E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)f:E × F⊢ f ∈ M.adjoint.adjoint ↔ WithLp.toLp 2 f ∈ (submoduleToLp M)ᗮᗮ
simp only [mem_adjoint_iff] E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)f:E × F⊢ (∀ (a : F) (b : E),
(∀ (a_1 : E) (b_1 : F), (a_1, b_1) ∈ M → inner ℂ b_1 a - inner ℂ a_1 b = 0) → inner ℂ b f.1 - inner ℂ a f.2 = 0) ↔
WithLp.toLp 2 f ∈ (submoduleToLp M)ᗮᗮ
trans ∀ v, (∀ w ∈ submoduleToLp M, inner ℂ w v = 0) → inner ℂ v (WithLp.toLp 2 f) = 0 E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)f:E × F⊢ (∀ (a : F) (b : E),
(∀ (a_1 : E) (b_1 : F), (a_1, b_1) ∈ M → inner ℂ b_1 a - inner ℂ a_1 b = 0) → inner ℂ b f.1 - inner ℂ a f.2 = 0) ↔
∀ (v : WithLp 2 (E × F)), (∀ w ∈ submoduleToLp M, inner ℂ w v = 0) → inner ℂ v (WithLp.toLp 2 f) = 0E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)f:E × F⊢ (∀ (v : WithLp 2 (E × F)), (∀ w ∈ submoduleToLp M, inner ℂ w v = 0) → inner ℂ v (WithLp.toLp 2 f) = 0) ↔
WithLp.toLp 2 f ∈ (submoduleToLp M)ᗮᗮ
· E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)f:E × F⊢ (∀ (a : F) (b : E),
(∀ (a_1 : E) (b_1 : F), (a_1, b_1) ∈ M → inner ℂ b_1 a - inner ℂ a_1 b = 0) → inner ℂ b f.1 - inner ℂ a f.2 = 0) ↔
∀ (v : WithLp 2 (E × F)), (∀ w ∈ submoduleToLp M, inner ℂ w v = 0) → inner ℂ v (WithLp.toLp 2 f) = 0 constructor mp E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)f:E × F⊢ (∀ (a : F) (b : E),
(∀ (a_1 : E) (b_1 : F), (a_1, b_1) ∈ M → inner ℂ b_1 a - inner ℂ a_1 b = 0) → inner ℂ b f.1 - inner ℂ a f.2 = 0) →
∀ (v : WithLp 2 (E × F)), (∀ w ∈ submoduleToLp M, inner ℂ w v = 0) → inner ℂ v (WithLp.toLp 2 f) = 0mpr E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)f:E × F⊢ (∀ (v : WithLp 2 (E × F)), (∀ w ∈ submoduleToLp M, inner ℂ w v = 0) → inner ℂ v (WithLp.toLp 2 f) = 0) →
∀ (a : F) (b : E),
(∀ (a_1 : E) (b_1 : F), (a_1, b_1) ∈ M → inner ℂ b_1 a - inner ℂ a_1 b = 0) → inner ℂ b f.1 - inner ℂ a f.2 = 0 <;> mp E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)f:E × F⊢ (∀ (a : F) (b : E),
(∀ (a_1 : E) (b_1 : F), (a_1, b_1) ∈ M → inner ℂ b_1 a - inner ℂ a_1 b = 0) → inner ℂ b f.1 - inner ℂ a f.2 = 0) →
∀ (v : WithLp 2 (E × F)), (∀ w ∈ submoduleToLp M, inner ℂ w v = 0) → inner ℂ v (WithLp.toLp 2 f) = 0mpr E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)f:E × F⊢ (∀ (v : WithLp 2 (E × F)), (∀ w ∈ submoduleToLp M, inner ℂ w v = 0) → inner ℂ v (WithLp.toLp 2 f) = 0) →
∀ (a : F) (b : E),
(∀ (a_1 : E) (b_1 : F), (a_1, b_1) ∈ M → inner ℂ b_1 a - inner ℂ a_1 b = 0) → inner ℂ b f.1 - inner ℂ a f.2 = 0 intro h mpr 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) = 0⊢ ∀ (a : F) (b : E),
(∀ (a_1 : E) (b_1 : F), (a_1, b_1) ∈ M → inner ℂ b_1 a - inner ℂ a_1 b = 0) → inner ℂ b f.1 - inner ℂ a f.2 = 0
· mp E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)f:E × Fh:∀ (a : F) (b : E),
(∀ (a_1 : E) (b_1 : F), (a_1, b_1) ∈ M → inner ℂ b_1 a - inner ℂ a_1 b = 0) → inner ℂ b f.1 - inner ℂ a f.2 = 0⊢ ∀ (v : WithLp 2 (E × F)), (∀ w ∈ submoduleToLp M, inner ℂ w v = 0) → inner ℂ v (WithLp.toLp 2 f) = 0 intro v hw mp E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)f:E × Fh:∀ (a : F) (b : E),
(∀ (a_1 : E) (b_1 : F), (a_1, b_1) ∈ M → inner ℂ b_1 a - inner ℂ a_1 b = 0) → inner ℂ b f.1 - inner ℂ a f.2 = 0v:WithLp 2 (E × F)hw:∀ w ∈ submoduleToLp M, inner ℂ w v = 0⊢ inner ℂ v (WithLp.toLp 2 f) = 0
have h' := h (-v.snd) v.fst mp E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)f:E × Fh:∀ (a : F) (b : E),
(∀ (a_1 : E) (b_1 : F), (a_1, b_1) ∈ M → inner ℂ b_1 a - inner ℂ a_1 b = 0) → inner ℂ b f.1 - inner ℂ a f.2 = 0v:WithLp 2 (E × F)hw:∀ w ∈ submoduleToLp M, inner ℂ w v = 0h':(∀ (a : E) (b : F), (a, b) ∈ M → inner ℂ b (-v.snd) - inner ℂ a v.fst = 0) →
inner ℂ v.fst f.1 - inner ℂ (-v.snd) f.2 = 0⊢ inner ℂ v (WithLp.toLp 2 f) = 0
rw [inner_neg_left, mp E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)f:E × Fh:∀ (a : F) (b : E),
(∀ (a_1 : E) (b_1 : F), (a_1, b_1) ∈ M → inner ℂ b_1 a - inner ℂ a_1 b = 0) → inner ℂ b f.1 - inner ℂ a f.2 = 0v:WithLp 2 (E × F)hw:∀ w ∈ submoduleToLp M, inner ℂ w v = 0h':(∀ (a : E) (b : F), (a, b) ∈ M → inner ℂ b (-v.snd) - inner ℂ a v.fst = 0) → inner ℂ v.fst f.1 - -inner ℂ v.snd f.2 = 0⊢ inner ℂ v (WithLp.toLp 2 f) = 0 mp E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)f:E × Fh:∀ (a : F) (b : E),
(∀ (a_1 : E) (b_1 : F), (a_1, b_1) ∈ M → inner ℂ b_1 a - inner ℂ a_1 b = 0) → inner ℂ b f.1 - inner ℂ a f.2 = 0v:WithLp 2 (E × F)hw:∀ w ∈ submoduleToLp M, inner ℂ w v = 0h':(∀ (a : E) (b : F), (a, b) ∈ M → inner ℂ b (-v.snd) - inner ℂ a v.fst = 0) → inner ℂ v.fst f.1 + inner ℂ v.snd f.2 = 0⊢ inner ℂ v (WithLp.toLp 2 f) = 0 sub_neg_eq_add mp E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)f:E × Fh:∀ (a : F) (b : E),
(∀ (a_1 : E) (b_1 : F), (a_1, b_1) ∈ M → inner ℂ b_1 a - inner ℂ a_1 b = 0) → inner ℂ b f.1 - inner ℂ a f.2 = 0v:WithLp 2 (E × F)hw:∀ w ∈ submoduleToLp M, inner ℂ w v = 0h':(∀ (a : E) (b : F), (a, b) ∈ M → inner ℂ b (-v.snd) - inner ℂ a v.fst = 0) → inner ℂ v.fst f.1 + inner ℂ v.snd f.2 = 0⊢ inner ℂ v (WithLp.toLp 2 f) = 0 mp E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)f:E × Fh:∀ (a : F) (b : E),
(∀ (a_1 : E) (b_1 : F), (a_1, b_1) ∈ M → inner ℂ b_1 a - inner ℂ a_1 b = 0) → inner ℂ b f.1 - inner ℂ a f.2 = 0v:WithLp 2 (E × F)hw:∀ w ∈ submoduleToLp M, inner ℂ w v = 0h':(∀ (a : E) (b : F), (a, b) ∈ M → inner ℂ b (-v.snd) - inner ℂ a v.fst = 0) → inner ℂ v.fst f.1 + inner ℂ v.snd f.2 = 0⊢ inner ℂ v (WithLp.toLp 2 f) = 0] at h'mp E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)f:E × Fh:∀ (a : F) (b : E),
(∀ (a_1 : E) (b_1 : F), (a_1, b_1) ∈ M → inner ℂ b_1 a - inner ℂ a_1 b = 0) → inner ℂ b f.1 - inner ℂ a f.2 = 0v:WithLp 2 (E × F)hw:∀ w ∈ submoduleToLp M, inner ℂ w v = 0h':(∀ (a : E) (b : F), (a, b) ∈ M → inner ℂ b (-v.snd) - inner ℂ a v.fst = 0) → inner ℂ v.fst f.1 + inner ℂ v.snd f.2 = 0⊢ inner ℂ v (WithLp.toLp 2 f) = 0
apply h' mp E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)f:E × Fh:∀ (a : F) (b : E),
(∀ (a_1 : E) (b_1 : F), (a_1, b_1) ∈ M → inner ℂ b_1 a - inner ℂ a_1 b = 0) → inner ℂ b f.1 - inner ℂ a f.2 = 0v:WithLp 2 (E × F)hw:∀ w ∈ submoduleToLp M, inner ℂ w v = 0h':(∀ (a : E) (b : F), (a, b) ∈ M → inner ℂ b (-v.snd) - inner ℂ a v.fst = 0) → inner ℂ v.fst f.1 + inner ℂ v.snd f.2 = 0⊢ ∀ (a : E) (b : F), (a, b) ∈ M → inner ℂ b (-v.snd) - inner ℂ a v.fst = 0
intro a b hab mp E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)f:E × Fh:∀ (a : F) (b : E),
(∀ (a_1 : E) (b_1 : F), (a_1, b_1) ∈ M → inner ℂ b_1 a - inner ℂ a_1 b = 0) → inner ℂ b f.1 - inner ℂ a f.2 = 0v:WithLp 2 (E × F)hw:∀ w ∈ submoduleToLp M, inner ℂ w v = 0h':(∀ (a : E) (b : F), (a, b) ∈ M → inner ℂ b (-v.snd) - inner ℂ a v.fst = 0) → inner ℂ v.fst f.1 + inner ℂ v.snd f.2 = 0a:Eb:Fhab:(a, b) ∈ M⊢ inner ℂ b (-v.snd) - inner ℂ a v.fst = 0
rw [inner_neg_right, mp E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)f:E × Fh:∀ (a : F) (b : E),
(∀ (a_1 : E) (b_1 : F), (a_1, b_1) ∈ M → inner ℂ b_1 a - inner ℂ a_1 b = 0) → inner ℂ b f.1 - inner ℂ a f.2 = 0v:WithLp 2 (E × F)hw:∀ w ∈ submoduleToLp M, inner ℂ w v = 0h':(∀ (a : E) (b : F), (a, b) ∈ M → inner ℂ b (-v.snd) - inner ℂ a v.fst = 0) → inner ℂ v.fst f.1 + inner ℂ v.snd f.2 = 0a:Eb:Fhab:(a, b) ∈ M⊢ -inner ℂ b v.snd - inner ℂ a v.fst = 0 mp E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)f:E × Fh:∀ (a : F) (b : E),
(∀ (a_1 : E) (b_1 : F), (a_1, b_1) ∈ M → inner ℂ b_1 a - inner ℂ a_1 b = 0) → inner ℂ b f.1 - inner ℂ a f.2 = 0v:WithLp 2 (E × F)hw:∀ w ∈ submoduleToLp M, inner ℂ w v = 0h':(∀ (a : E) (b : F), (a, b) ∈ M → inner ℂ b (-v.snd) - inner ℂ a v.fst = 0) → inner ℂ v.fst f.1 + inner ℂ v.snd f.2 = 0a:Eb:Fhab:(a, b) ∈ M⊢ inner ℂ a v.fst + inner ℂ b v.snd = 0 neg_sub_left, mp E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)f:E × Fh:∀ (a : F) (b : E),
(∀ (a_1 : E) (b_1 : F), (a_1, b_1) ∈ M → inner ℂ b_1 a - inner ℂ a_1 b = 0) → inner ℂ b f.1 - inner ℂ a f.2 = 0v:WithLp 2 (E × F)hw:∀ w ∈ submoduleToLp M, inner ℂ w v = 0h':(∀ (a : E) (b : F), (a, b) ∈ M → inner ℂ b (-v.snd) - inner ℂ a v.fst = 0) → inner ℂ v.fst f.1 + inner ℂ v.snd f.2 = 0a:Eb:Fhab:(a, b) ∈ M⊢ -(inner ℂ a v.fst + inner ℂ b v.snd) = 0mp E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)f:E × Fh:∀ (a : F) (b : E),
(∀ (a_1 : E) (b_1 : F), (a_1, b_1) ∈ M → inner ℂ b_1 a - inner ℂ a_1 b = 0) → inner ℂ b f.1 - inner ℂ a f.2 = 0v:WithLp 2 (E × F)hw:∀ w ∈ submoduleToLp M, inner ℂ w v = 0h':(∀ (a : E) (b : F), (a, b) ∈ M → inner ℂ b (-v.snd) - inner ℂ a v.fst = 0) → inner ℂ v.fst f.1 + inner ℂ v.snd f.2 = 0a:Eb:Fhab:(a, b) ∈ M⊢ inner ℂ a v.fst + inner ℂ b v.snd = 0 neg_eq_zero mp E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)f:E × Fh:∀ (a : F) (b : E),
(∀ (a_1 : E) (b_1 : F), (a_1, b_1) ∈ M → inner ℂ b_1 a - inner ℂ a_1 b = 0) → inner ℂ b f.1 - inner ℂ a f.2 = 0v:WithLp 2 (E × F)hw:∀ w ∈ submoduleToLp M, inner ℂ w v = 0h':(∀ (a : E) (b : F), (a, b) ∈ M → inner ℂ b (-v.snd) - inner ℂ a v.fst = 0) → inner ℂ v.fst f.1 + inner ℂ v.snd f.2 = 0a:Eb:Fhab:(a, b) ∈ M⊢ inner ℂ a v.fst + inner ℂ b v.snd = 0mp E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)f:E × Fh:∀ (a : F) (b : E),
(∀ (a_1 : E) (b_1 : F), (a_1, b_1) ∈ M → inner ℂ b_1 a - inner ℂ a_1 b = 0) → inner ℂ b f.1 - inner ℂ a f.2 = 0v:WithLp 2 (E × F)hw:∀ w ∈ submoduleToLp M, inner ℂ w v = 0h':(∀ (a : E) (b : F), (a, b) ∈ M → inner ℂ b (-v.snd) - inner ℂ a v.fst = 0) → inner ℂ v.fst f.1 + inner ℂ v.snd f.2 = 0a:Eb:Fhab:(a, b) ∈ M⊢ inner ℂ a v.fst + inner ℂ b v.snd = 0]mp E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)f:E × Fh:∀ (a : F) (b : E),
(∀ (a_1 : E) (b_1 : F), (a_1, b_1) ∈ M → inner ℂ b_1 a - inner ℂ a_1 b = 0) → inner ℂ b f.1 - inner ℂ a f.2 = 0v:WithLp 2 (E × F)hw:∀ w ∈ submoduleToLp M, inner ℂ w v = 0h':(∀ (a : E) (b : F), (a, b) ∈ M → inner ℂ b (-v.snd) - inner ℂ a v.fst = 0) → inner ℂ v.fst f.1 + inner ℂ v.snd f.2 = 0a:Eb:Fhab:(a, b) ∈ M⊢ inner ℂ a v.fst + inner ℂ b v.snd = 0
exact hw (WithLp.toLp 2 (a, b)) ((mem_submodule_iff_mem_submoduleToLp M (a, b)).mp hab) All goals completed! 🐙
· mpr 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) = 0⊢ ∀ (a : F) (b : E),
(∀ (a_1 : E) (b_1 : F), (a_1, b_1) ∈ M → inner ℂ b_1 a - inner ℂ a_1 b = 0) → inner ℂ b f.1 - inner ℂ a f.2 = 0 intro a b h' mpr 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 = 0⊢ inner ℂ b f.1 - inner ℂ a f.2 = 0
rw [sub_eq_add_neg, mpr 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 = 0⊢ inner ℂ b f.1 + -inner ℂ a f.2 = 0 mpr 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 = 0⊢ inner ℂ b f.1 + inner ℂ (-a) f.2 = 0 ← inner_neg_left mpr 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 = 0⊢ inner ℂ b f.1 + inner ℂ (-a) f.2 = 0mpr 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 = 0⊢ inner ℂ b f.1 + inner ℂ (-a) f.2 = 0]mpr 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 = 0⊢ inner ℂ b f.1 + inner ℂ (-a) f.2 = 0
apply h (WithLp.toLp 2 (b, -a)) mpr 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 = 0⊢ ∀ w ∈ submoduleToLp M, inner ℂ w (WithLp.toLp 2 (b, -a)) = 0
intro w hw mpr 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 M⊢ inner ℂ w (WithLp.toLp 2 (b, -a)) = 0
have hw' := h' w.fst w.snd hw mpr 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 = 0⊢ inner ℂ w (WithLp.toLp 2 (b, -a)) = 0
rw [sub_eq_zero mpr 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 mpr 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] at hw'mpr 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
simp [hw'] All goals completed! 🐙
simp only [← mem_orthogonal] All goals completed! 🐙
lemma mem_submodule_closure_adjoint_iff_mem_submoduleToLp_closure_orthogonal :
g ∈ M.topologicalClosure.adjoint ↔
WithLp.toLp 2 (g.2, -g.1) ∈ (submoduleToLp M).topologicalClosureᗮ := by E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)g:F × E⊢ g ∈ M.topologicalClosure.adjoint ↔ WithLp.toLp 2 (g.2, -g.1) ∈ (submoduleToLp M).topologicalClosureᗮ
rw [mem_submodule_adjoint_iff_mem_submoduleToLp_orthogonal, E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)g:F × E⊢ WithLp.toLp 2 (g.2, -g.1) ∈ (submoduleToLp M.topologicalClosure)ᗮ ↔
WithLp.toLp 2 (g.2, -g.1) ∈ (submoduleToLp M).topologicalClosureᗮ All goals completed! 🐙 submoduleToLp_closure E:Type u_1inst✝³:NormedAddCommGroup Einst✝²:InnerProductSpace ℂ EF:Type u_2inst✝¹:NormedAddCommGroup Finst✝:InnerProductSpace ℂ FM:Submodule ℂ (E × F)g:F × E⊢ WithLp.toLp 2 (g.2, -g.1) ∈ (submoduleToLp M).topologicalClosureᗮ ↔
WithLp.toLp 2 (g.2, -g.1) ∈ (submoduleToLp M).topologicalClosureᗮ All goals completed! 🐙] All goals completed! 🐙