@@ -9,16 +9,14 @@ import analysis.normed_space.dual
9
9
/-!
10
10
# The Fréchet-Riesz representation theorem
11
11
12
- We consider inner product spaces, with base field over `ℝ` (the corresponding results for `ℂ`
13
- will require the definition of conjugate-linear maps). We define `to_dual_map`, a linear isometric
14
- embedding of `E` into its dual, which maps an element `x` of the space to `λ y, ⟪x, y⟫`. We also
15
- define `to_dual'` as the function taking taking a vector to its dual for a base field `𝕜`
16
- with `[is_R_or_C 𝕜]`; this is a function and not a linear map.
12
+ We consider an inner product space `E` over `𝕜`, which is either `ℝ` or `ℂ`. We define
13
+ `to_dual_map`, a conjugate-linear isometric embedding of `E` into its dual, which maps an element
14
+ `x` of the space to `λ y, ⟪x, y⟫`.
17
15
18
- Finally, under the hypothesis of completeness (i.e., for Hilbert spaces), we upgrade this to
19
- `to_dual`, a linear isometric *equivalence* of `E` onto its dual; that is, we establish the
20
- surjectivity of `to_dual' `. This is the Fréchet-Riesz representation theorem: every element of the
21
- dual of a Hilbert space `E` has the form `λ u, ⟪x, u⟫` for some `x : E`.
16
+ Under the hypothesis of completeness (i.e., for Hilbert spaces), we upgrade this to `to_dual`, a
17
+ conjugate- linear isometric *equivalence* of `E` onto its dual; that is, we establish the
18
+ surjectivity of `to_dual_map `. This is the Fréchet-Riesz representation theorem: every element of
19
+ the dual of a Hilbert space `E` has the form `λ u, ⟪x, u⟫` for some `x : E`.
22
20
23
21
## References
24
22
@@ -37,55 +35,53 @@ universes u v
37
35
namespace inner_product_space
38
36
open is_R_or_C continuous_linear_map
39
37
40
- section is_R_or_C
41
-
42
38
variables (𝕜 : Type *)
43
- variables { E : Type *} [is_R_or_C 𝕜] [inner_product_space 𝕜 E]
39
+ variables ( E : Type *) [is_R_or_C 𝕜] [inner_product_space 𝕜 E]
44
40
local notation `⟪`x `, `y `⟫` := @inner 𝕜 E _ x y
45
41
local postfix `†`:90 := star_ring_aut
46
42
47
43
/--
48
- Given some `x` in an inner product space, we can define its dual as the continuous linear map
49
- `λ y, ⟪x, y⟫`. Consider using `to_dual` or `to_dual_map` instead in the real case.
44
+ An element `x` of an inner product space `E` induces an element of the dual space `dual 𝕜 E`,
45
+ the map `λ y, ⟪x, y⟫`; moreover this operation is a conjugate-linear isometric embedding of `E`
46
+ into `dual 𝕜 E`.
47
+ If `E` is complete, this operation is surjective, hence a conjugate-linear isometric equivalence;
48
+ see `to_dual`.
50
49
-/
51
- def to_dual' : E →+ normed_space.dual 𝕜 E :=
50
+ def to_dual_map : E →ₗᵢ⋆[𝕜] normed_space.dual 𝕜 E :=
52
51
{ to_fun := λ x, linear_map.mk_continuous
53
- { to_fun := λ y, ⟪x, y⟫,
54
- map_add' := λ _ _, inner_add_right,
55
- map_smul' := λ _ _, inner_smul_right }
56
- ∥x∥
57
- (λ y, by { rw [is_R_or_C.norm_eq_abs], exact abs_inner_le_norm _ _ }),
58
- map_zero' := by { ext z, simp },
59
- map_add' := λ x y, by { ext z, simp [inner_add_left] } }
60
-
61
- @[simp] lemma to_dual'_apply {x y : E} : to_dual' 𝕜 x y = ⟪x, y⟫ := rfl
62
-
63
- /-- In an inner product space, the norm of the dual of a vector `x` is `∥x∥` -/
64
- @[simp] lemma norm_to_dual'_apply (x : E) : ∥to_dual' 𝕜 x∥ = ∥x∥ :=
65
- begin
66
- refine le_antisymm _ _,
67
- { exact linear_map.mk_continuous_norm_le _ (norm_nonneg _) _ },
68
- { cases eq_or_lt_of_le (norm_nonneg x) with h h,
69
- { have : x = 0 := norm_eq_zero.mp (eq.symm h),
70
- simp [this ] },
71
- { refine (mul_le_mul_right h).mp _,
72
- calc ∥x∥ * ∥x∥ = ∥x∥ ^ 2 : by ring
73
- ... = re ⟪x, x⟫ : norm_sq_eq_inner _
74
- ... ≤ abs ⟪x, x⟫ : re_le_abs _
75
- ... = ∥to_dual' 𝕜 x x∥ : by simp [norm_eq_abs]
76
- ... ≤ ∥to_dual' 𝕜 x∥ * ∥x∥ : le_op_norm (to_dual' 𝕜 x) x } }
77
- end
78
-
79
- variables (E)
80
-
81
- lemma to_dual'_isometry : isometry (@to_dual' 𝕜 E _ _) :=
82
- add_monoid_hom.isometry_of_norm _ (norm_to_dual'_apply 𝕜)
52
+ { to_fun := λ y, ⟪x, y⟫,
53
+ map_add' := λ _ _, inner_add_right,
54
+ map_smul' := λ _ _, inner_smul_right }
55
+ ∥x∥
56
+ (λ y, by { rw [is_R_or_C.norm_eq_abs], exact abs_inner_le_norm _ _ }),
57
+ map_add' := λ x y, by { ext z, simp [inner_add_left] },
58
+ map_smul' := λ c y, by { ext z, simp [inner_smul_left] },
59
+ norm_map' := λ x, begin
60
+ refine le_antisymm _ _,
61
+ { exact linear_map.mk_continuous_norm_le _ (norm_nonneg _) _ },
62
+ { cases eq_or_lt_of_le (norm_nonneg x) with h h,
63
+ { have : x = 0 := norm_eq_zero.mp (eq.symm h),
64
+ simp [this ] },
65
+ { refine (mul_le_mul_right h).mp _,
66
+ calc ∥x∥ * ∥x∥ = ∥x∥ ^ 2 : by ring
67
+ ... = re ⟪x, x⟫ : norm_sq_eq_inner _
68
+ ... ≤ abs ⟪x, x⟫ : re_le_abs _
69
+ ... = ∥linear_map.mk_continuous _ _ _ x∥ : by simp [norm_eq_abs]
70
+ ... ≤ ∥linear_map.mk_continuous _ _ _∥ * ∥x∥ : le_op_norm _ x } }
71
+ end }
72
+
73
+ variables {E}
74
+
75
+ @[simp] lemma to_dual_map_apply {x y : E} : to_dual_map 𝕜 E x y = ⟪x, y⟫ := rfl
76
+
77
+ variables (E) [complete_space E]
83
78
84
79
/--
85
80
Fréchet-Riesz representation: any `ℓ` in the dual of a Hilbert space `E` is of the form
86
- `λ u, ⟪y, u⟫` for some `y : E`, i.e. `to_dual' ` is surjective.
81
+ `λ u, ⟪y, u⟫` for some `y : E`, i.e. `to_dual_map ` is surjective.
87
82
-/
88
- lemma to_dual'_surjective [complete_space E] : function.surjective (@to_dual' 𝕜 E _ _) :=
83
+ def to_dual : E ≃ₗᵢ⋆[𝕜] normed_space.dual 𝕜 E :=
84
+ linear_isometry_equiv.of_surjective (to_dual_map 𝕜 E)
89
85
begin
90
86
intros ℓ,
91
87
set Y := ker ℓ with hY,
@@ -130,38 +126,8 @@ begin
130
126
exact h₄ }
131
127
end
132
128
133
- end is_R_or_C
134
-
135
- section real
136
-
137
- variables (F : Type *) [inner_product_space ℝ F]
138
-
139
- /-- In a real inner product space `F`, the function that takes a vector `x` in `F` to its dual
140
- `λ y, ⟪x, y⟫` is an isometric linear embedding. If the space is complete (i.e. is a Hilbert space),
141
- consider using `to_dual` instead. -/
142
- -- TODO extend to `is_R_or_C` (requires a definition of conjugate linear maps)
143
- def to_dual_map : F →ₗᵢ[ℝ] (normed_space.dual ℝ F) :=
144
- { to_fun := to_dual' ℝ,
145
- map_add' := λ x y, by { ext, simp [inner_add_left] },
146
- map_smul' := λ c x, by { ext, simp [inner_smul_left] },
147
- norm_map' := norm_to_dual'_apply ℝ }
148
-
149
- variables {F}
150
-
151
- @[simp] lemma to_dual_map_apply {x y : F} : to_dual_map F x y = ⟪x, y⟫_ℝ := rfl
152
-
153
- variables (F) [complete_space F]
154
-
155
- /--
156
- Fréchet-Riesz representation: If `F` is a Hilbert space, the function that takes a vector in `F` to
157
- its dual is an isometric linear equivalence. -/
158
- def to_dual : F ≃ₗᵢ[ℝ] (normed_space.dual ℝ F) :=
159
- linear_isometry_equiv.of_surjective (to_dual_map F) (to_dual'_surjective ℝ F)
160
-
161
- variables {F}
162
-
163
- @[simp] lemma to_dual_apply {x y : F} : to_dual F x y = ⟪x, y⟫_ℝ := rfl
129
+ variables {E}
164
130
165
- end real
131
+ @[simp] lemma to_dual_apply {x y : E} : to_dual 𝕜 E x y = ⟪x, y⟫ := rfl
166
132
167
133
end inner_product_space
0 commit comments