forked from leanprover-community/mathlib4
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathWeakDual.lean
More file actions
371 lines (290 loc) Β· 17.4 KB
/
WeakDual.lean
File metadata and controls
371 lines (290 loc) Β· 17.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
/-
Copyright (c) 2021 Kalle KytΓΆlΓ€. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Kalle KytΓΆlΓ€, Yury Kudryashov, MichaΕ ΕwiΔtek
-/
module
public import Mathlib.Analysis.Normed.Module.Dual
public import Mathlib.Analysis.Normed.Operator.Completeness
public import Mathlib.Topology.Algebra.Module.WeakDual
public import Mathlib.Topology.MetricSpace.PiNat
public import Mathlib.Analysis.Normed.Operator.BanachSteinhaus
public import Mathlib.Analysis.LocallyConvex.WeakDual
/-!
# Weak dual of normed space
Let `E` be a normed space over a field `π`. This file is concerned with properties of the weak-*
topology on the dual of `E`. By the dual, we mean either of the type synonyms
`StrongDual π E` or `WeakDual π E`, depending on whether it is viewed as equipped with its usual
operator norm topology or the weak-* topology.
It is shown that the canonical mapping `StrongDual π E β WeakDual π E` is continuous, and
as a consequence the weak-* topology is coarser than the topology obtained from the operator norm
(dual norm).
The file also equips `WeakDual π E` with the norm bornology inherited from `StrongDual π E`, so
that `IsBounded` refers to operator-norm boundedness. This is a pragmatic choice discussed
further in the implementation notes.
We establish the Banach-Alaoglu theorem about the compactness of closed balls in the dual of `E`
(as well as sets of somewhat more general form) with respect to the weak-* topology.
The first main result concerns the comparison of the operator norm topology on `StrongDual π E` and
the weak-* topology on (its type synonym) `WeakDual π E`:
* `dual_norm_topology_le_weak_dual_topology`: The weak-* topology on the dual of a normed space is
coarser (not necessarily strictly) than the operator norm topology.
* `WeakDual.isCompact_polar` (a version of the Banach-Alaoglu theorem): The polar set of a
neighborhood of the origin in a normed space `E` over `π` is compact in `WeakDual _ E`, if the
nontrivially normed field `π` is proper as a topological space.
* `WeakDual.isCompact_closedBall` (the most common special case of the Banach-Alaoglu theorem):
Closed balls in the dual of a normed space `E` over `β` or `β` are compact in the weak-star
topology.
## Main definitions
* `StrongDual.toWeakDual` and `WeakDual.toStrongDual`: Linear equivalences between the dual types.
* `WeakDual.instBornology`: The norm bornology on `WeakDual π E`.
* `WeakDual.seminormFamily`: The family of seminorms `fun x f β¦ βf xβ` generating the weak-*
topology.
* `WeakDual.polar`: The polar set of `s : Set E` viewed as a subset of `WeakDual π E`.
## Main results
### Topology comparison
* `NormedSpace.Dual.toWeakDual_continuous`: The weak-* topology is coarser than the norm topology.
### Bornology and pointwise bounds
* `WeakDual.isBounded_iff_isVonNBounded`: Equivalence of norm and weak-* boundedness for
Banach spaces.
### Compactness and Banach-Alaoglu
* `WeakDual.isCompact_polar`: Polars of neighborhoods of the origin are weak-* compact.
* `WeakDual.isCompact_closedBall`: Closed balls are weak-* compact.
* `WeakDual.isSeqCompact_closedBall`: Sequential version for separable spaces.
## Implementation notes
* **Topology synonym:** When `M` is a vector space, the duals `StrongDual π M` and `WeakDual π M`
are type synonyms with different topology instances.
* **Bornology choice:** The `Bornology` instance on `WeakDual π E` is inherited from
`StrongDual π E` via `inferInstanceAs` and corresponds to the operator-norm bornology.
While the natural bornology for a weak topology is technically the von Neumann bornology
(pointwise boundedness), we use the norm bornology for several pragmatic reasons:
1. **Practicality:** In the normed setting, "bounded" is almost universally synonymous with
"norm-bounded". This allows `IsBounded` to be used directly in statements like Banach-Alaoglu.
2. **Clarity:** It preserves a clear distinction between norm-boundedness (`IsBounded`) and
topological weak-* boundedness (`IsVonNBounded`).
3. **Consistency:** By the Uniform Boundedness Principle, these notions coincide whenever
`E` is a Banach space (`isBounded_iff_isVonNBounded`).
* **Polar sets:** The polar set `polar π s` of a subset `s` of `E` is originally defined as a
subset of the dual `StrongDual π E`. We care about properties of these w.r.t. weak-* topology,
and for this purpose give the definition `WeakDual.polar π s` for the "same" subset viewed as a
subset of `WeakDual π E` (a type synonym of the dual but with a different topology instance).
* **Banach-Alaoglu Proof:** The weak dual of `E` is embedded in the space of functions `E β π`
with the topology of pointwise convergence.
## TODO
* Add that in finite dimensions, the weak-* topology and the dual norm topology coincide.
* Add that in infinite dimensions, the weak-* topology is strictly coarser than the dual norm
topology.
* Add metrizability of the dual unit ball (more generally weak-star compact subsets) of
`WeakDual π E` under the assumption of separability of `E`.
* Add the sequential Banach-Alaoglu theorem: the dual unit ball of a separable normed space `E`
is sequentially compact in the weak-star topology. This would follow from the metrizability above.
## References
* https://en.wikipedia.org/wiki/Weak_topology#Weak-*_topology
* https://en.wikipedia.org/wiki/Banach%E2%80%93Alaoglu_theorem
## Tags
weak-star, weak dual
-/
@[expose] public section
noncomputable section
open Filter Function Bornology Metric Set Topology Filter
variable {π M E : Type*}
variable [NontriviallyNormedField π]
variable [AddCommGroup M] [TopologicalSpace M] [Module π M]
variable [SeminormedAddCommGroup E] [NormedSpace π E]
namespace WeakDual
section Bornology
/-- The bornology on `WeakDual π F` is the norm bornology inherited from `StrongDual π F`.
Note: This is a pragmatic choice. To be precise, the bornology of a weak topology should be
the von Neumann bornology (pointwise boundedness). However, in the normed setting,
`IsBounded` is most useful when referring to the operator norm (e.g., to state
Banach-Alaoglu concisely).
Pointwise boundedness is instead captured by `Bornology.IsVonNBounded`.
For Banach spaces, these notions coincide via `isBounded_iff_isVonNBounded`.
See the module docstring for more details. -/
instance instBornology : Bornology (WeakDual π E) := inferInstanceAs (Bornology (StrongDual π E))
/-- A set in `WeakDual π E` is bounded iff its image in `StrongDual π E` is bounded. -/
@[simp]
theorem isBounded_toStrongDual_preimage_iff_isBounded {s : Set (StrongDual π E)} :
IsBounded (WeakDual.toStrongDual β»ΒΉ' s) β IsBounded s := Iff.rfl
/-- A set in `StrongDual π E` is bounded iff its image in `WeakDual π E` is bounded. -/
@[simp]
theorem isBounded_toWeakDual_preimage_iff_isBounded {s : Set (WeakDual π E)} :
IsBounded (StrongDual.toWeakDual β»ΒΉ' s) β IsBounded s := Iff.rfl
end Bornology
end WeakDual
/-!
### Weak star topology on duals of normed spaces
In this section, we prove properties about the weak-* topology on duals of normed spaces.
We prove in particular that the canonical mapping `StrongDual π E β WeakDual π E` is continuous,
i.e., that the weak-* topology is coarser (not necessarily strictly) than the topology given
by the dual-norm (i.e. the operator-norm).
-/
namespace NormedSpace
namespace Dual
theorem toWeakDual_continuous : Continuous fun x' : StrongDual π E => StrongDual.toWeakDual x' :=
WeakBilin.continuous_of_continuous_eval _ fun z => (ContinuousLinearMap.apply π π z).continuous
/-- For a normed space `E`, according to `toWeakDual_continuous` the "identity mapping"
`StrongDual π E β WeakDual π E` is continuous. This definition implements it as a continuous linear
map. -/
def continuousLinearMapToWeakDual : StrongDual π E βL[π] WeakDual π E :=
{ StrongDual.toWeakDual with cont := toWeakDual_continuous }
/-- The weak-star topology is coarser than the dual-norm topology. -/
theorem dual_norm_topology_le_weak_dual_topology :
(UniformSpace.toTopologicalSpace : TopologicalSpace (StrongDual π E)) β€
(instTopologicalSpaceWeakDual .. : TopologicalSpace (WeakDual π E)) := by
convert (@toWeakDual_continuous _ _ _ _ (by assumption)).le_induced
exact induced_id.symm
end Dual
end NormedSpace
namespace WeakDual
open NormedSpace
/-!
### Bornology and pointwise bounds
This section relates the inherited norm bornology (`IsBounded`) to the intrinsic
von Neumann bornology of the weak-* topology (`IsVonNBounded`).
The following results justify using the norm bornology as the default instance: by the
Uniform Boundedness Principle, it coincides with the von Neumann bornology whenever
$E$ is a Banach space.
-/
variable (π E) in
/-- The family of seminorms on `WeakDual π E` given by `fun x f β¦ βf xβ`, indexed by `E`.
This is the seminorm family associated to the weak-* topology via `topDualPairing`. -/
def seminormFamily : SeminormFamily π (WeakDual π E) E := (topDualPairing π E).toSeminormFamily
@[simp]
lemma seminormFamily_apply (x : E) (f : WeakDual π E) : seminormFamily π E x f = βf xβ := rfl
variable (π E) in
lemma withSeminorms : WithSeminorms (seminormFamily π E) :=
(topDualPairing π E).weakBilin_withSeminorms
/-- By the Uniform Boundedness Principle, norm-boundedness (the default bornology)
and pointwise-boundedness (`IsVonNBounded`) coincide on the weak dual of a Banach space. -/
theorem isBounded_iff_isVonNBounded [CompleteSpace E] {s : Set (WeakDual π E)} :
IsBounded s β Bornology.IsVonNBounded π s := by
constructor
Β· exact fun h => ((NormedSpace.isVonNBounded_iff π).mpr h).of_topologicalSpace_le
Dual.dual_norm_topology_le_weak_dual_topology
Β· intro h_vN
have h_ptwise := (withSeminorms π E).isVonNBounded_iff_seminorm_bounded.mp h_vN
obtain β¨C, hCβ© := banach_steinhaus (g := fun i : s β¦ WeakDual.toStrongDual i.val) fun x β¦
let β¨M, _, hMβ© := h_ptwise x
β¨M, fun i β¦ le_of_lt (hM i.val i.property)β©
rw [β isBounded_toWeakDual_preimage_iff_isBounded, isBounded_iff_forall_norm_le]
exact β¨C, fun f hf β¦ hC β¨StrongDual.toWeakDual f, hfβ©β©
/-!
### Compactness of bounded closed sets
While the coercion `β : WeakDual π E β (E β π)` is not a closed map, it sends *bounded*
closed sets to closed sets.
-/
/-- The coercion `β : WeakDual π E β (E β π)` sends bounded closed sets to closed sets. -/
theorem isClosed_image_coe_of_bounded_of_closed {s : Set (WeakDual π E)}
(hb : IsBounded s) (hc : IsClosed s) :
IsClosed (((β) : WeakDual π E β E β π) '' s) :=
ContinuousLinearMap.isClosed_image_coe_of_bounded_of_weak_closed hb (isClosed_induced_iff'.1 hc)
/-- Bounded closed sets in `WeakDual π E` are compact when `π` is a proper space. -/
theorem isCompact_of_bounded_of_closed [ProperSpace π] {s : Set (WeakDual π E)}
(hb : IsBounded s) (hc : IsClosed s) : IsCompact s :=
DFunLike.coe_injective.isEmbedding_induced.isCompact_iff.mpr <|
ContinuousLinearMap.isCompact_image_coe_of_bounded_of_closed_image hb <|
isClosed_image_coe_of_bounded_of_closed hb hc
/-!
### Closed balls
-/
/-- Closed balls in `StrongDual π E` pull back to closed sets in `WeakDual π E`. -/
theorem isClosed_closedBall (x' : StrongDual π E) (r : β) :
IsClosed (toStrongDual β»ΒΉ' closedBall x' r) :=
isClosed_induced_iff'.2 (ContinuousLinearMap.is_weak_closed_closedBall x' r)
/-- Closed balls are bounded in the weak dual. -/
theorem isBounded_closedBall (x' : StrongDual π E) (r : β) :
IsBounded (toStrongDual β»ΒΉ' closedBall x' r) :=
isBounded_toStrongDual_preimage_iff_isBounded.mpr Metric.isBounded_closedBall
/-- The weak-* closure of a norm-bounded set is norm-bounded, because norm-closed balls
are weak-* closed. -/
theorem isBounded_closure {s : Set (WeakDual π E)} (hb : IsBounded s) :
IsBounded (closure s) := by
obtain β¨R, hRβ© := (Metric.isBounded_iff_subset_closedBall (0 : StrongDual π E)).mp hb
exact (isBounded_closedBall 0 R).subset
(closure_minimal (fun y hy β¦ hR (a := toStrongDual y) hy) (isClosed_closedBall 0 R))
/-- The **Banach-Alaoglu theorem**: closed balls of the dual of a normed space `E` are compact in
the weak-star topology. -/
theorem isCompact_closedBall [ProperSpace π] (x' : StrongDual π E) (r : β) :
IsCompact (toStrongDual β»ΒΉ' closedBall x' r) :=
isCompact_of_bounded_of_closed (isBounded_closedBall x' r) (isClosed_closedBall x' r)
/-!
### Polar sets in the weak dual space
-/
section PolarSets
variable (π)
/-- The polar set `polar π s` of `s : Set E` seen as a subset of the dual of `E` with the
weak-star topology is `WeakDual.polar π s`. -/
def polar (s : Set M) : Set (WeakDual π M) := toStrongDual β»ΒΉ' (StrongDual.polar π) s
theorem polar_def (s : Set M) : polar π s = { f : WeakDual π M | β x β s, βf xβ β€ 1 } := rfl
/-- The polar `polar π s` of a set `s : E` is a closed subset when the weak star topology
is used. -/
theorem isClosed_polar (s : Set M) : IsClosed (polar π s) := by
simp only [polar_def, setOf_forall]
exact isClosed_biInter fun x hx => isClosed_Iic.preimage (WeakBilin.eval_continuous _ _).norm
/-- Polar sets of neighborhoods of the origin are bounded in the weak dual. -/
theorem isBounded_polar {s : Set E} (s_nhds : s β π (0 : E)) : IsBounded (polar π s) :=
isBounded_toStrongDual_preimage_iff_isBounded.mpr
(NormedSpace.isBounded_polar_of_mem_nhds_zero π s_nhds)
/-- The image under `β : WeakDual π E β (E β π)` of a polar `WeakDual.polar π s` of a
neighborhood `s` of the origin is a closed set. -/
theorem isClosed_image_polar_of_mem_nhds {s : Set E} (s_nhds : s β π (0 : E)) :
IsClosed (((β) : WeakDual π E β E β π) '' polar π s) :=
isClosed_image_coe_of_bounded_of_closed (isBounded_polar π s_nhds) (isClosed_polar _ _)
/-- The image under `β : StrongDual π E β (E β π)` of a polar `polar π s` of a
neighborhood `s` of the origin is a closed set. -/
theorem _root_.NormedSpace.Dual.isClosed_image_polar_of_mem_nhds {s : Set E}
(s_nhds : s β π (0 : E)) :
IsClosed (((β) : StrongDual π E β E β π) '' StrongDual.polar π s) :=
WeakDual.isClosed_image_polar_of_mem_nhds π s_nhds
/-- The **Banach-Alaoglu theorem**: the polar set of a neighborhood `s` of the origin in a
normed space `E` is a compact subset of `WeakDual π E`. -/
theorem isCompact_polar [ProperSpace π] {s : Set E} (s_nhds : s β π (0 : E)) :
IsCompact (polar π s) :=
isCompact_of_bounded_of_closed (isBounded_polar π s_nhds) (isClosed_polar _ _)
end PolarSets
/-!
### Sequential compactness
-/
open TopologicalSpace
variable (π E) [TopologicalSpace.SeparableSpace E] (K : Set (WeakDual π E))
/-- In a separable normed space, there exists a sequence of continuous functions that
separates points of the weak dual. -/
lemma exists_countable_separating : β (gs : β β (WeakDual π E) β π),
(β n, Continuous (gs n)) β§ (β β¦x yβ¦, x β y β β n, gs n x β gs n y) := by
use (fun n Ο β¦ Ο (denseSeq E n))
constructor
Β· exact fun _ β¦ eval_continuous _
Β· intro w y w_ne_y
contrapose! w_ne_y
exact DFunLike.ext'_iff.mpr <| (map_continuous w).ext_on
(denseRange_denseSeq E) (map_continuous y) (Set.eqOn_range.mpr (funext w_ne_y))
/-- A compact subset of the weak dual of a separable normed space is metrizable. -/
lemma metrizable_of_isCompact (K_cpt : IsCompact K) : TopologicalSpace.MetrizableSpace K := by
have : CompactSpace K := isCompact_iff_compactSpace.mp K_cpt
obtain β¨gs, gs_cont, gs_sepβ© := exists_countable_separating π E
exact Metric.PiNatEmbed.TopologicalSpace.MetrizableSpace.of_countable_separating
(fun n k β¦ gs n k) (fun n β¦ (gs_cont n).comp continuous_subtype_val)
fun x y hxy β¦ gs_sep <| Subtype.val_injective.ne hxy
variable [ProperSpace π] (K_cpt : IsCompact K)
/-- Bounded closed sets in the weak dual of a separable normed space are sequentially compact. -/
theorem isSeqCompact_of_isBounded_of_isClosed {s : Set (WeakDual π E)}
(hb : IsBounded s) (hc : IsClosed s) :
IsSeqCompact s := by
have b_isCompact' : CompactSpace s :=
isCompact_iff_compactSpace.mp <| isCompact_of_bounded_of_closed hb hc
have b_isMetrizable : TopologicalSpace.MetrizableSpace s :=
metrizable_of_isCompact π E s <| isCompact_of_bounded_of_closed hb hc
have seq_cont_phi : SeqContinuous (fun Ο : s β¦ (Ο : WeakDual π E)) :=
continuous_iff_seqContinuous.mp continuous_subtype_val
simpa using IsSeqCompact.range seq_cont_phi
/-- The **Sequential Banach-Alaoglu theorem**: the polar set of a neighborhood `s` of the origin in
a separable normed space `V` is a sequentially compact subset of `WeakDual π V`. -/
theorem isSeqCompact_polar {s : Set E} (s_nhd : s β π (0 : E)) :
IsSeqCompact (polar π s) :=
isSeqCompact_of_isBounded_of_isClosed π _ (isBounded_polar π s_nhd) (isClosed_polar _ _)
/-- The **Sequential Banach-Alaoglu theorem**: closed balls of the dual of a separable
normed space `V` are sequentially compact in the weak-* topology. -/
theorem isSeqCompact_closedBall (x' : StrongDual π E) (r : β) :
IsSeqCompact (toStrongDual β»ΒΉ' Metric.closedBall x' r) :=
isSeqCompact_of_isBounded_of_isClosed π _ (isBounded_closedBall x' r) (isClosed_closedBall x' r)
end WeakDual