Inverse function theorem #
In this file we prove the inverse function theorem. It says that if a map f : E โ F
has an invertible strict derivative f'
at a
, then it is locally invertible,
and the inverse function has derivative f' โปยน
.
We define HasStrictDerivAt.toLocalHomeomorph
that repacks a function f
with a hf : HasStrictFDerivAt f f' a
, f' : E โL[๐] F
, into a LocalHomeomorph
.
The toFun
of this LocalHomeomorph
is defeq to f
, so one can apply theorems
about LocalHomeomorph
to hf.toLocalHomeomorph f
, and get statements about f
.
Then we define HasStrictFDerivAt.localInverse
to be the invFun
of this LocalHomeomorph
,
and prove two versions of the inverse function theorem:
-
HasStrictFDerivAt.to_localInverse
: iff
has an invertible derivativef'
ata
in the strict sense (hf
), thenhf.localInverse f f' a
has derivativef'.symm
atf a
in the strict sense; -
HasStrictFDerivAt.to_local_left_inverse
: iff
has an invertible derivativef'
ata
in the strict sense andg
is locally left inverse tof
neara
, theng
has derivativef'.symm
atf a
in the strict sense.
In the one-dimensional case we reformulate these theorems in terms of HasStrictDerivAt
and
f'โปยน
.
We also reformulate the theorems in terms of ContDiff
, to give that C^k
(respectively,
smooth) inputs give C^k
(smooth) inverses. These versions require that continuous
differentiability implies strict differentiability; this is false over a general field, true over
โ
or โ
and implemented here assuming IsROrC ๐
.
Some related theorems, providing the derivative and higher regularity assuming that we already know
the inverse function, are formulated in the Analysis/Calculus/FDeriv
and Analysis/Calculus/Deriv
folders, and in ContDiff.lean
.
Notations #
In the section about ApproximatesLinearOn
we introduce some local notation
to make formulas
shorter:
- by
N
we denoteโf'โปยนโ
; - by
g
we denote the auxiliary contracting mapx โฆ x + f'.symm (y - f x)
used to prove that{x | f x = y}
is nonempty.
Tags #
derivative, strictly differentiable, continuously differentiable, smooth, inverse function
Non-linear maps close to affine maps #
In this section we study a map f
such that โf x - f y - f' (x - y)โ โค c * โx - yโ
on an open set
s
, where f' : E โL[๐] F
is a continuous linear map and c
is suitably small. Maps of this type
behave like f a + f' (x - a)
near each a โ s
.
When f'
is onto, we show that f
is locally onto.
When f'
is a continuous linear equiv, we show that f
is a homeomorphism
between s
and f '' s
. More precisely, we define ApproximatesLinearOn.toLocalHomeomorph
to
be a LocalHomeomorph
with toFun = f
, source = s
, and target = f '' s
.
Maps of this type naturally appear in the proof of the inverse function theorem (see next section),
and ApproximatesLinearOn.toLocalHomeomorph
will imply that the locally inverse function
exists.
We define this auxiliary notion to split the proof of the inverse function theorem into small lemmas. This approach makes it possible
-
to prove a lower estimate on the size of the domain of the inverse function;
-
to reuse parts of the proofs in the case if a function is not strictly differentiable. E.g., for a function
f : E ร F โ G
with estimates onf x yโ - f x yโ
but not onf xโ y - f xโ y
.
We say that f
approximates a continuous linear map f'
on s
with constant c
,
if โf x - f y - f' (x - y)โ โค c * โx - yโ
whenever x, y โ s
.
This predicate is defined to facilitate the splitting of the inverse function theorem into small lemmas. Some of these lemmas can be useful, e.g., to prove that the inverse function is defined on a specific set.
Instances For
First we prove some properties of a function that ApproximatesLinearOn
a (not necessarily
invertible) continuous linear map.
Alias of the forward direction of ApproximatesLinearOn.approximatesLinearOn_iff_lipschitzOnWith
.
Alias of the reverse direction of ApproximatesLinearOn.approximatesLinearOn_iff_lipschitzOnWith
.
We prove that a function which is linearly approximated by a continuous linear map with a nonlinear right inverse is locally onto. This will apply to the case where the approximating map is a linear equivalence, for the local inverse theorem, but also whenever the approximating map is onto, by Banach's open mapping theorem.
If a function is linearly approximated by a continuous linear map with a (possibly nonlinear) right inverse, then it is locally onto: a ball of an explicit radius is included in the image of the map.
From now on we assume that f
approximates an invertible continuous linear map f : E โL[๐] F
.
We also assume that either E = {0}
, or c < โf'โปยนโโปยน
. We use N
as an abbreviation for โf'โปยนโ
.
A map approximating a linear equivalence on a set defines a local equivalence on this set.
Should not be used outside of this file, because it is superseded by toLocalHomeomorph
below.
This is a first step towards the inverse function.
Instances For
The inverse function is continuous on f '' s
. Use properties of LocalHomeomorph
instead.
The inverse function is approximated linearly on f '' s
by f'.symm
.
Given a function f
that approximates a linear equivalence on an open set s
,
returns a local homeomorph with toFun = f
and source = s
.
Instances For
A function f
that approximates a linear equivalence on the whole space is a homeomorphism.
Instances For
In a real vector space, a function f
that approximates a linear equivalence on a subset s
can be extended to a homeomorphism of the whole space.
Inverse function theorem #
Now we prove the inverse function theorem. Let f : E โ F
be a map defined on a complete vector
space E
. Assume that f
has an invertible derivative f' : E โL[๐] F
at a : E
in the strict
sense. Then f
approximates f'
in the sense of ApproximatesLinearOn
on an open neighborhood
of a
, and we can apply ApproximatesLinearOn.toLocalHomeomorph
to construct the inverse
function.
If f
has derivative f'
at a
in the strict sense and c > 0
, then f
approximates f'
with constant c
on some neighborhood of a
.
Given a function with an invertible strict derivative at a
, returns a LocalHomeomorph
with to_fun = f
and a โ source
. This is a part of the inverse function theorem.
The other part HasStrictFDerivAt.to_localInverse
states that the inverse function
of this LocalHomeomorph
has derivative f'.symm
.
Instances For
Given a function f
with an invertible derivative, returns a function that is locally inverse
to f
.
Instances For
If f
has an invertible derivative f'
at a
in the sense of strict differentiability (hf)
,
then the inverse function hf.localInverse f
has derivative f'.symm
at f a
.
If f : E โ F
has an invertible derivative f'
at a
in the sense of strict differentiability
and g (f x) = x
in a neighborhood of a
, then g
has derivative f'.symm
at f a
.
For a version assuming f (g y) = y
and continuity of g
at f a
but not [CompleteSpace E]
see of_local_left_inverse
.
If a function has an invertible strict derivative at all points, then it is an open map.
Inverse function theorem, 1D case #
In this case we prove a version of the inverse function theorem for maps f : ๐ โ ๐
.
We use ContinuousLinearEquiv.unitsEquivAut
to translate HasStrictDerivAt f f' a
and
f' โ 0
into HasStrictFDerivAt f (_ : ๐ โL[๐] ๐) a
.
A function that is inverse to f
near a
.
Instances For
If a function has a non-zero strict derivative at all points, then it is an open map.
Inverse function theorem, smooth case #
Given a ContDiff
function over ๐
(which is โ
or โ
) with an invertible
derivative at a
, returns a LocalHomeomorph
with to_fun = f
and a โ source
.
Instances For
Given a ContDiff
function over ๐
(which is โ
or โ
) with an invertible derivative
at a
, returns a function that is locally inverse to f
.
Instances For
Given a ContDiff
function over ๐
(which is โ
or โ
) with an invertible derivative
at a
, the inverse function (produced by ContDiff.toLocalHomeomorph
) is
also ContDiff
.