Banach open mapping theorem #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This file contains the Banach open mapping theorem, i.e., the fact that a bijective bounded linear map between Banach spaces has a bounded inverse.
- to_fun : F → E
- nnnorm : nnreal
- bound' : ∀ (y : F), ‖self.to_fun y‖ ≤ ↑(self.nnnorm) * ‖y‖
- right_inv' : ∀ (y : F), ⇑f (self.to_fun y) = y
A (possibly nonlinear) right inverse to a continuous linear map, which doesn't have to be
linear itself but which satisfies a bound ‖inverse x‖ ≤ C * ‖x‖
. A surjective continuous linear
map doesn't always have a continuous linear right inverse, but it always has a nonlinear inverse
in this sense, by Banach's open mapping theorem.
Instances for continuous_linear_map.nonlinear_right_inverse
- continuous_linear_map.nonlinear_right_inverse.has_sizeof_inst
- continuous_linear_map.nonlinear_right_inverse.has_coe_to_fun
- continuous_linear_map.nonlinear_right_inverse.inhabited
Equations
- continuous_linear_map.nonlinear_right_inverse.has_coe_to_fun f = {coe := λ (fsymm : f.nonlinear_right_inverse), fsymm.to_fun}
Given a continuous linear equivalence, the inverse is in particular an instance of
nonlinear_right_inverse
(which turns out to be linear).
Equations
- f.to_nonlinear_right_inverse = {to_fun := f.to_linear_equiv.inv_fun, nnnorm := ‖↑(f.symm)‖₊, bound' := _, right_inv' := _}
Proof of the Banach open mapping theorem #
First step of the proof of the Banach open mapping theorem (using completeness of F
):
by Baire's theorem, there exists a ball in E
whose image closure has nonempty interior.
Rescaling everything, it follows that any y ∈ F
is arbitrarily well approached by
images of elements of norm at most C * ‖y‖
.
For further use, we will only need such an element whose image
is within distance ‖y‖/2
of y
, to apply an iterative process.
The Banach open mapping theorem: if a bounded linear map between Banach spaces is onto, then any point has a preimage with controlled norm.
The Banach open mapping theorem: a surjective bounded linear map between Banach spaces is open.
Applications of the Banach open mapping theorem #
A surjective continuous linear map between Banach spaces admits a (possibly nonlinear)
controlled right inverse. In general, it is not possible to ensure that such a right inverse
is linear (take for instance the map from E
to E/F
where F
is a closed subspace of E
without a closed complement. Then it doesn't have a continuous linear right inverse.)
Equations
If a bounded linear map is a bijection, then its inverse is also a bounded linear map.
Associating to a linear equivalence between Banach spaces a continuous linear equivalence when the direct map is continuous, thanks to the Banach open mapping theorem that ensures that the inverse map is also continuous.
Equations
- e.to_continuous_linear_equiv_of_continuous h = {to_linear_equiv := {to_fun := e.to_fun, map_add' := _, map_smul' := _, inv_fun := e.inv_fun, left_inv := _, right_inv := _}, continuous_to_fun := h, continuous_inv_fun := _}
Convert a bijective continuous linear map f : E →L[𝕜] F
from a Banach space to a normed space
to a continuous linear equivalence.
Equations
Intermediate definition used to show
continuous_linear_map.closed_complemented_range_of_is_compl_of_ker_eq_bot
.
This is f.coprod G.subtypeL
as an continuous_linear_equiv
.
Equations
- f.coprod_subtypeL_equiv_of_is_compl h hker = continuous_linear_equiv.of_bijective (f.coprod G.subtypeL) _ _
The closed graph theorem : a linear map between two Banach spaces whose graph is closed is continuous.
A useful form of the closed graph theorem : let f
be a linear map between two Banach
spaces. To show that f
is continuous, it suffices to show that for any convergent sequence
uₙ ⟶ x
, if f(uₙ) ⟶ y
then y = f(x)
.
Upgrade a linear_map
to a continuous_linear_map
using the closed graph theorem.
Equations
- continuous_linear_map.of_is_closed_graph hg = {to_linear_map := g, cont := _}
Upgrade a linear_map
to a continuous_linear_map
using a variation on the
closed graph theorem.
Equations
- continuous_linear_map.of_seq_closed_graph hg = {to_linear_map := g, cont := _}