Theorem: LinearPMap.mem_adjoint_domain_of_exists
File: Mathlib/Analysis/InnerProductSpace/LinearPMap.lean

Proof steps:
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
T : E →ₗ.[𝕜] F
S : F →ₗ.[𝕜] E
hT : Dense ↑T.domain
inst✝ : CompleteSpace E
y : F
h : ∃ w, ∀ (x : ↥T.domain), ⟪w, ↑x⟫_𝕜 = ⟪y, ↑T x⟫_𝕜
⊢ y ∈ T†.domain
state_after: case intro
𝕜 : 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
T : E →ₗ.[𝕜] F
S : F →ₗ.[𝕜] E
hT : Dense ↑T.domain
inst✝ : CompleteSpace E
y : F
w : E
hw : ∀ (x : ↥T.domain), ⟪w, ↑x⟫_𝕜 = ⟪y, ↑T x⟫_𝕜
⊢ y ∈ T†.domain
tactic: cases' h with w hw
state_before: case intro
𝕜 : 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
T : E →ₗ.[𝕜] F
S : F →ₗ.[𝕜] E
hT : Dense ↑T.domain
inst✝ : CompleteSpace E
y : F
w : E
hw : ∀ (x : ↥T.domain), ⟪w, ↑x⟫_𝕜 = ⟪y, ↑T x⟫_𝕜
⊢ y ∈ T†.domain
state_after: case intro
𝕜 : 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
T : E →ₗ.[𝕜] F
S : F →ₗ.[𝕜] E
hT : Dense ↑T.domain
inst✝ : CompleteSpace E
y : F
w : E
hw : ∀ (x : ↥T.domain), ⟪w, ↑x⟫_𝕜 = ⟪y, ↑T x⟫_𝕜
⊢ Continuous ⇑((innerₛₗ 𝕜) y ∘ₗ T.toFun)
tactic: rw [T.mem_adjoint_domain_iff]
state_before: case intro
𝕜 : 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
T : E →ₗ.[𝕜] F
S : F →ₗ.[𝕜] E
hT : Dense ↑T.domain
inst✝ : CompleteSpace E
y : F
w : E
hw : ∀ (x : ↥T.domain), ⟪w, ↑x⟫_𝕜 = ⟪y, ↑T x⟫_𝕜
⊢ Continuous ⇑((innerₛₗ 𝕜) y ∘ₗ T.toFun)
state_after: case intro
𝕜 : 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
T : E →ₗ.[𝕜] F
S : F →ₗ.[𝕜] E
hT : Dense ↑T.domain
inst✝ : CompleteSpace E
y : F
w : E
hw : ∀ (x : ↥T.domain), ⟪w, ↑x⟫_𝕜 = ⟪y, ↑T x⟫_𝕜
this : Continuous ⇑(((innerSL 𝕜) w).comp T.domain.subtypeL)
⊢ Continuous ⇑((innerₛₗ 𝕜) y ∘ₗ T.toFun)
tactic: have : Continuous ((innerSL 𝕜 w).comp T.domain.subtypeL) := by fun_prop
state_before: case intro
𝕜 : 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
T : E →ₗ.[𝕜] F
S : F →ₗ.[𝕜] E
hT : Dense ↑T.domain
inst✝ : CompleteSpace E
y : F
w : E
hw : ∀ (x : ↥T.domain), ⟪w, ↑x⟫_𝕜 = ⟪y, ↑T x⟫_𝕜
this : Continuous ⇑(((innerSL 𝕜) w).comp T.domain.subtypeL)
⊢ Continuous ⇑((innerₛₗ 𝕜) y ∘ₗ T.toFun)
state_after: case h.e'_5
𝕜 : 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
T : E →ₗ.[𝕜] F
S : F →ₗ.[𝕜] E
hT : Dense ↑T.domain
inst✝ : CompleteSpace E
y : F
w : E
hw : ∀ (x : ↥T.domain), ⟪w, ↑x⟫_𝕜 = ⟪y, ↑T x⟫_𝕜
this : Continuous ⇑(((innerSL 𝕜) w).comp T.domain.subtypeL)
⊢ ⇑((innerₛₗ 𝕜) y ∘ₗ T.toFun) = ⇑(((innerSL 𝕜) w).comp T.domain.subtypeL)
tactic: convert this using 1
state_before: case h.e'_5
𝕜 : 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
T : E →ₗ.[𝕜] F
S : F →ₗ.[𝕜] E
hT : Dense ↑T.domain
inst✝ : CompleteSpace E
y : F
w : E
hw : ∀ (x : ↥T.domain), ⟪w, ↑x⟫_𝕜 = ⟪y, ↑T x⟫_𝕜
this : Continuous ⇑(((innerSL 𝕜) w).comp T.domain.subtypeL)
⊢ ⇑((innerₛₗ 𝕜) y ∘ₗ T.toFun) = ⇑(((innerSL 𝕜) w).comp T.domain.subtypeL)
state_after: no goals
tactic: exact funext fun x => (hw x).symm