Theorem: ContinuousLinearMap.toPMap_adjoint_eq_adjoint_toPMap_of_dense
File: Mathlib/Analysis/InnerProductSpace/LinearPMap.lean

tactic: ext x y hxy
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 F
inst✝¹ : CompleteSpace E
inst✝ : CompleteSpace F
A : E →L[𝕜] F
p : Submodule 𝕜 E
hp : Dense ↑p
⊢ ((↑A).toPMap p).adjoint = (↑(adjoint A)).toPMap ⊤
state_after: case h.h
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 F
inst✝¹ : CompleteSpace E
inst✝ : CompleteSpace F
A : E →L[𝕜] F
p : Submodule 𝕜 E
hp : Dense ↑p
x : F
⊢ x ∈ ((↑A).toPMap p).adjoint.domain ↔ x ∈ ((↑(adjoint A)).toPMap ⊤).domain

case h'
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 F
inst✝¹ : CompleteSpace E
inst✝ : CompleteSpace F
A : E →L[𝕜] F
p : Submodule 𝕜 E
hp : Dense ↑p
x : ↥((↑A).toPMap p).adjoint.domain
y : ↥((↑(adjoint A)).toPMap ⊤).domain
hxy : ↑x = ↑y
⊢ ↑((↑A).toPMap p).adjoint x = ↑((↑(adjoint A)).toPMap ⊤) y

tactic: refine LinearPMap.adjoint_apply_eq ?_ _ fun v => ?_
state_before: case h'
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 F
inst✝¹ : CompleteSpace E
inst✝ : CompleteSpace F
A : E →L[𝕜] F
p : Submodule 𝕜 E
hp : Dense ↑p
x : ↥((↑A).toPMap p).adjoint.domain
y : ↥((↑(adjoint A)).toPMap ⊤).domain
hxy : ↑x = ↑y
⊢ ↑((↑A).toPMap p).adjoint x = ↑((↑(adjoint A)).toPMap ⊤) y
state_after: case h'.refine_1
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 F
inst✝¹ : CompleteSpace E
inst✝ : CompleteSpace F
A : E →L[𝕜] F
p : Submodule 𝕜 E
hp : Dense ↑p
x : ↥((↑A).toPMap p).adjoint.domain
y : ↥((↑(adjoint A)).toPMap ⊤).domain
hxy : ↑x = ↑y
⊢ Dense ↑((↑A).toPMap p).domain

case h'.refine_2
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 F
inst✝¹ : CompleteSpace E
inst✝ : CompleteSpace F
A : E →L[𝕜] F
p : Submodule 𝕜 E
hp : Dense ↑p
x : ↥((↑A).toPMap p).adjoint.domain
y : ↥((↑(adjoint A)).toPMap ⊤).domain
hxy : ↑x = ↑y
v : ↥((↑A).toPMap p).domain
⊢ ⟪↑((↑(adjoint A)).toPMap ⊤) y, ↑v⟫_𝕜 = ⟪↑x, ↑((↑A).toPMap p) v⟫_𝕜

tactic: simp only [LinearMap.toPMap_domain, Submodule.mem_top, iff_true_iff,
  LinearPMap.mem_adjoint_domain_iff, LinearMap.coe_comp, innerₛₗ_apply_coe]
state_before: case h.h
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 F
inst✝¹ : CompleteSpace E
inst✝ : CompleteSpace F
A : E →L[𝕜] F
p : Submodule 𝕜 E
hp : Dense ↑p
x : F
⊢ x ∈ ((↑A).toPMap p).adjoint.domain ↔ x ∈ ((↑(adjoint A)).toPMap ⊤).domain
state_after: case h.h
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 F
inst✝¹ : CompleteSpace E
inst✝ : CompleteSpace F
A : E →L[𝕜] F
p : Submodule 𝕜 E
hp : Dense ↑p
x : F
⊢ Continuous ((fun w => ⟪x, w⟫_𝕜) ∘ ⇑((↑A).toPMap p).toFun)

tactic: exact ((innerSL 𝕜 x).comp <| A.comp <| Submodule.subtypeL _).cont
state_before: case h.h
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 F
inst✝¹ : CompleteSpace E
inst✝ : CompleteSpace F
A : E →L[𝕜] F
p : Submodule 𝕜 E
hp : Dense ↑p
x : F
⊢ Continuous ((fun w => ⟪x, w⟫_𝕜) ∘ ⇑((↑A).toPMap p).toFun)
state_after: no goals

tactic: simpa using hp
state_before: case h'.refine_1
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 F
inst✝¹ : CompleteSpace E
inst✝ : CompleteSpace F
A : E →L[𝕜] F
p : Submodule 𝕜 E
hp : Dense ↑p
x : ↥((↑A).toPMap p).adjoint.domain
y : ↥((↑(adjoint A)).toPMap ⊤).domain
hxy : ↑x = ↑y
⊢ Dense ↑((↑A).toPMap p).domain
state_after: no goals

tactic: simp only [adjoint_inner_left, hxy, LinearMap.toPMap_apply, coe_coe]
state_before: case h'.refine_2
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 F
inst✝¹ : CompleteSpace E
inst✝ : CompleteSpace F
A : E →L[𝕜] F
p : Submodule 𝕜 E
hp : Dense ↑p
x : ↥((↑A).toPMap p).adjoint.domain
y : ↥((↑(adjoint A)).toPMap ⊤).domain
hxy : ↑x = ↑y
v : ↥((↑A).toPMap p).domain
⊢ ⟪↑((↑(adjoint A)).toPMap ⊤) y, ↑v⟫_𝕜 = ⟪↑x, ↑((↑A).toPMap p) v⟫_𝕜
state_after: no goals