mathlib documentation

analysis.​calculus.​inverse

analysis.​calculus.​inverse

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 has_strict_deriv_at.to_local_homeomorph that repacks a function f with a hf : has_strict_fderiv_at f f' a, f' : E โ‰ƒL[๐•œ] F, into a local_homeomorph. The to_fun of this local_homeomorph is defeq to f, so one can apply theorems about local_homeomorph to hf.to_local_homeomorph f, and get statements about f.

Then we define has_strict_fderiv_at.local_inverse to be the inv_fun of this local_homeomorph, and prove two versions of the inverse function theorem:

In the one-dimensional case we reformulate these theorems in terms of has_strict_deriv_at and f'โปยน. Some other versions of the theorem assuming that we already know the inverse function are formulated in fderiv.lean and deriv.lean

Notations

In the section about approximates_linear_on we introduce some local notation to make formulas shorter:

Tags

derivative, strictly differentiable, inverse function

Non-linear maps approximating 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 equivalence and c < โˆฅf'โปยนโˆฅ. Maps of this type behave like f a + f' (x - a) near each a โˆˆ s.

If E is a complete space, we prove that the image f '' s is open, and f is a homeomorphism between s and f '' s. More precisely, we define approximates_linear_on.to_local_homeomorph to be a local_homeomorph with to_fun = 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 approximates_linear_on.to_local_homeomorph 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

def approximates_linear_on {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] :
(E โ†’ F) โ†’ (E โ†’L[๐•œ] F) โ†’ set E โ†’ nnreal โ†’ Prop

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.

Equations

First we prove some properties of a function that approximates_linear_on a (not necessarily invertible) continuous linear map.

theorem approximates_linear_on.​mono_num {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] {f : E โ†’ F} {f' : E โ†’L[๐•œ] F} {s : set E} {c c' : nnreal} :
c โ‰ค c' โ†’ approximates_linear_on f f' s c โ†’ approximates_linear_on f f' s c'

theorem approximates_linear_on.​mono_set {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] {f : E โ†’ F} {f' : E โ†’L[๐•œ] F} {s t : set E} {c : nnreal} :
s โŠ† t โ†’ approximates_linear_on f f' t c โ†’ approximates_linear_on f f' s c

theorem approximates_linear_on.​lipschitz_sub {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] {f : E โ†’ F} {f' : E โ†’L[๐•œ] F} {s : set E} {c : nnreal} :
approximates_linear_on f f' s c โ†’ lipschitz_with c (ฮป (x : โ†ฅs), f โ†‘x - โ‡‘f' โ†‘x)

theorem approximates_linear_on.​lipschitz {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] {f : E โ†’ F} {f' : E โ†’L[๐•œ] F} {s : set E} {c : nnreal} :

theorem approximates_linear_on.​continuous {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] {f : E โ†’ F} {f' : E โ†’L[๐•œ] F} {s : set E} {c : nnreal} :

theorem approximates_linear_on.​continuous_on {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] {f : E โ†’ F} {f' : E โ†’L[๐•œ] F} {s : set E} {c : nnreal} :

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'โปยนโˆฅ.

theorem approximates_linear_on.​antilipschitz {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] {f : E โ†’ F} {f' : E โ‰ƒL[๐•œ] F} {s : set E} {c : nnreal} :

theorem approximates_linear_on.​injective {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] {f : E โ†’ F} {f' : E โ‰ƒL[๐•œ] F} {s : set E} {c : nnreal} :

theorem approximates_linear_on.​inj_on {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] {f : E โ†’ F} {f' : E โ‰ƒL[๐•œ] F} {s : set E} {c : nnreal} :

def approximates_linear_on.​to_local_equiv {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] {f : E โ†’ F} {f' : E โ‰ƒL[๐•œ] F} {s : set E} {c : nnreal} :

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 to_local_homeomorph below.

This is a first step towards the inverse function.

Equations
theorem approximates_linear_on.​inverse_continuous_on {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] {f : E โ†’ F} {f' : E โ‰ƒL[๐•œ] F} {s : set E} {c : nnreal} (hf : approximates_linear_on f โ†‘f' s c) (hc : subsingleton E โˆจ c < (nnnorm โ†‘(f'.symm))โปยน) :

The inverse function is continuous on f '' s. Use properties of local_homeomorph instead.

Now we prove that f '' s is an open set. This follows from the fact that the restriction of f on s is an open map. More precisely, we show that the image of a closed ball $$\bar B(a, ฮต) โŠ† s$$ under f includes the closed ball $$\bar B\left(f(a), frac{ฮต}{โˆฅ{f'}โปยนโˆฅโปยน-c}\right)$$.

In order to do this, we introduce an auxiliary map $$g_y(x) = x + {f'}โปยน (y - f x)$$. Provided that $$โˆฅy - f aโˆฅ โ‰ค frac{ฮต}{โˆฅ{f'}โปยนโˆฅโปยน-c}$$, we prove that $$g_y$$ contracts in $$\bar B(a, ฮต)$$ and f sends the fixed point of $$g_y$$ to y.

def approximates_linear_on.​inverse_approx_map {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] :
(E โ†’ F) โ†’ (E โ‰ƒL[๐•œ] F) โ†’ F โ†’ E โ†’ E

Iterations of this map converge to fโปยน y. The formula is very similar to the one used in Newton's method, but we use the same f'.symm for all y instead of evaluating the derivative at each point along the orbit.

Equations
theorem approximates_linear_on.​inverse_approx_map_sub {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] {f : E โ†’ F} {f' : E โ‰ƒL[๐•œ] F} (y : F) (x x' : E) :

theorem approximates_linear_on.​inverse_approx_map_dist_self {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] {f : E โ†’ F} {f' : E โ‰ƒL[๐•œ] F} (y : F) (x : E) :

theorem approximates_linear_on.​inverse_approx_map_dist_self_le {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] {f : E โ†’ F} {f' : E โ‰ƒL[๐•œ] F} (y : F) (x : E) :

theorem approximates_linear_on.​inverse_approx_map_fixed_iff {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] {f : E โ†’ F} {f' : E โ‰ƒL[๐•œ] F} (y : F) {x : E} :

theorem approximates_linear_on.​inverse_approx_map_contracts_on {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] {f : E โ†’ F} {f' : E โ‰ƒL[๐•œ] F} {s : set E} {c : nnreal} (y : F) (hf : approximates_linear_on f โ†‘f' s c) {x x' : E} :

theorem approximates_linear_on.​inverse_approx_map_maps_to {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] {f : E โ†’ F} {f' : E โ‰ƒL[๐•œ] F} {s : set E} {c : nnreal} {y : F} {ฮต : โ„} (hf : approximates_linear_on f โ†‘f' s c) (hc : subsingleton E โˆจ c < (nnnorm โ†‘(f'.symm))โปยน) {b : E} :

theorem approximates_linear_on.​surj_on_closed_ball {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] [cs : complete_space E] {f : E โ†’ F} {f' : E โ‰ƒL[๐•œ] F} {s : set E} {c : nnreal} {ฮต : โ„} (hf : approximates_linear_on f โ†‘f' s c) (hc : subsingleton E โˆจ c < (nnnorm โ†‘(f'.symm))โปยน) {b : E} :
0 โ‰ค ฮต โ†’ metric.closed_ball b ฮต โŠ† s โ†’ set.surj_on f (metric.closed_ball b ฮต) (metric.closed_ball (f b) (((โ†‘(nnnorm โ†‘(f'.symm)))โปยน - โ†‘c) * ฮต))

def approximates_linear_on.​to_local_homeomorph {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] [cs : complete_space E] (f : E โ†’ F) {f' : E โ‰ƒL[๐•œ] F} (s : set E) {c : nnreal} :

Given a function f that approximates a linear equivalence on an open set s, returns a local homeomorph with to_fun = f and source = s.

Equations
@[simp]
theorem approximates_linear_on.​to_local_homeomorph_coe {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] [cs : complete_space E] {f : E โ†’ F} {f' : E โ‰ƒL[๐•œ] F} {s : set E} {c : nnreal} (hf : approximates_linear_on f โ†‘f' s c) (hc : subsingleton E โˆจ c < (nnnorm โ†‘(f'.symm))โปยน) (hs : is_open s) :

@[simp]
theorem approximates_linear_on.​to_local_homeomorph_source {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] [cs : complete_space E] {f : E โ†’ F} {f' : E โ‰ƒL[๐•œ] F} {s : set E} {c : nnreal} (hf : approximates_linear_on f โ†‘f' s c) (hc : subsingleton E โˆจ c < (nnnorm โ†‘(f'.symm))โปยน) (hs : is_open s) :

@[simp]
theorem approximates_linear_on.​to_local_homeomorph_target {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] [cs : complete_space E] {f : E โ†’ F} {f' : E โ‰ƒL[๐•œ] F} {s : set E} {c : nnreal} (hf : approximates_linear_on f โ†‘f' s c) (hc : subsingleton E โˆจ c < (nnnorm โ†‘(f'.symm))โปยน) (hs : is_open s) :

theorem approximates_linear_on.​closed_ball_subset_target {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] [cs : complete_space E] {f : E โ†’ F} {f' : E โ‰ƒL[๐•œ] F} {s : set E} {c : nnreal} {ฮต : โ„} (hf : approximates_linear_on f โ†‘f' s c) (hc : subsingleton E โˆจ c < (nnnorm โ†‘(f'.symm))โปยน) (hs : is_open s) {b : E} :

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 approximates_linear_on on an open neighborhood of a, and we can apply approximates_linear_on.to_local_homeomorph to construct the inverse function.

theorem has_strict_fderiv_at.​approximates_deriv_on_nhds {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] {f : E โ†’ F} {f' : E โ†’L[๐•œ] F} {a : E} (hf : has_strict_fderiv_at f f' a) {c : nnreal} :
subsingleton E โˆจ 0 < c โ†’ (โˆƒ (s : set E) (H : s โˆˆ nhds a), approximates_linear_on f f' s c)

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.

theorem has_strict_fderiv_at.​approximates_deriv_on_open_nhds {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] {f : E โ†’ F} {f' : E โ‰ƒL[๐•œ] F} {a : E} :

def has_strict_fderiv_at.​to_local_homeomorph {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] [cs : complete_space E] (f : E โ†’ F) {f' : E โ‰ƒL[๐•œ] F} {a : E} :

Given a function with an invertible strict derivative at a, returns a local_homeomorph with to_fun = f and a โˆˆ source. This is a part of the inverse function theorem. The other part has_strict_fderiv_at.to_local_inverse states that the inverse function of this local_homeomorph has derivative f'.symm.

Equations
@[simp]
theorem has_strict_fderiv_at.​to_local_homeomorph_coe {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] [cs : complete_space E] {f : E โ†’ F} {f' : E โ‰ƒL[๐•œ] F} {a : E} (hf : has_strict_fderiv_at f โ†‘f' a) :

theorem has_strict_fderiv_at.​mem_to_local_homeomorph_source {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] [cs : complete_space E] {f : E โ†’ F} {f' : E โ‰ƒL[๐•œ] F} {a : E} (hf : has_strict_fderiv_at f โ†‘f' a) :

theorem has_strict_fderiv_at.​image_mem_to_local_homeomorph_target {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] [cs : complete_space E] {f : E โ†’ F} {f' : E โ‰ƒL[๐•œ] F} {a : E} (hf : has_strict_fderiv_at f โ†‘f' a) :

def has_strict_fderiv_at.​local_inverse {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] [cs : complete_space E] (f : E โ†’ F) (f' : E โ‰ƒL[๐•œ] F) (a : E) :
has_strict_fderiv_at f โ†‘f' a โ†’ F โ†’ E

Given a function f with an invertible derivative, returns a function that is locally inverse to f.

Equations
theorem has_strict_fderiv_at.​eventually_left_inverse {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] [cs : complete_space E] {f : E โ†’ F} {f' : E โ‰ƒL[๐•œ] F} {a : E} (hf : has_strict_fderiv_at f โ†‘f' a) :
โˆ€แถ  (x : E) in nhds a, has_strict_fderiv_at.local_inverse f f' a hf (f x) = x

theorem has_strict_fderiv_at.​local_inverse_apply_image {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] [cs : complete_space E] {f : E โ†’ F} {f' : E โ‰ƒL[๐•œ] F} {a : E} (hf : has_strict_fderiv_at f โ†‘f' a) :

theorem has_strict_fderiv_at.​eventually_right_inverse {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] [cs : complete_space E] {f : E โ†’ F} {f' : E โ‰ƒL[๐•œ] F} {a : E} (hf : has_strict_fderiv_at f โ†‘f' a) :
โˆ€แถ  (y : F) in nhds (f a), f (has_strict_fderiv_at.local_inverse f f' a hf y) = y

theorem has_strict_fderiv_at.​local_inverse_continuous_at {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] [cs : complete_space E] {f : E โ†’ F} {f' : E โ‰ƒL[๐•œ] F} {a : E} (hf : has_strict_fderiv_at f โ†‘f' a) :

theorem has_strict_fderiv_at.​local_inverse_tendsto {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] [cs : complete_space E] {f : E โ†’ F} {f' : E โ‰ƒL[๐•œ] F} {a : E} (hf : has_strict_fderiv_at f โ†‘f' a) :

theorem has_strict_fderiv_at.​local_inverse_unique {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] [cs : complete_space E] {f : E โ†’ F} {f' : E โ‰ƒL[๐•œ] F} {a : E} (hf : has_strict_fderiv_at f โ†‘f' a) {g : F โ†’ E} :
(โˆ€แถ  (x : E) in nhds a, g (f x) = x) โ†’ (โˆ€แถ  (y : F) in nhds (f a), g y = has_strict_fderiv_at.local_inverse f f' a hf y)

theorem has_strict_fderiv_at.​to_local_inverse {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] [cs : complete_space E] {f : E โ†’ F} {f' : E โ‰ƒL[๐•œ] F} {a : E} (hf : has_strict_fderiv_at f โ†‘f' a) :

If f has an invertible derivative f' at a in the sense of strict differentiability (hf), then the inverse function hf.local_inverse f has derivative f'.symm at f a.

theorem has_strict_fderiv_at.​to_local_left_inverse {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] {E : Type u_2} [normed_group E] [normed_space ๐•œ E] {F : Type u_3} [normed_group F] [normed_space ๐•œ F] [cs : complete_space E] {f : E โ†’ F} {f' : E โ‰ƒL[๐•œ] F} {a : E} (hf : has_strict_fderiv_at f โ†‘f' a) {g : F โ†’ E} :
(โˆ€แถ  (x : E) in nhds a, g (f x) = x) โ†’ has_strict_fderiv_at g โ†‘(f'.symm) (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 [complete_space E] see of_local_left_inverse.

Inverse function theorem, 1D case

In this case we prove a version of the inverse function theorem for maps f : ๐•œ โ†’ ๐•œ. We use continuous_linear_equiv.units_equiv_aut to translate has_strict_deriv_at f f' a and f' โ‰  0 into has_strict_fderiv_at f (_ : ๐•œ โ‰ƒL[๐•œ] ๐•œ) a.

def has_strict_deriv_at.​local_inverse {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] [cs : complete_space ๐•œ] (f : ๐•œ โ†’ ๐•œ) (f' a : ๐•œ) :
has_strict_deriv_at f f' a โ†’ f' โ‰  0 โ†’ ๐•œ โ†’ ๐•œ

A function that is inverse to f near a.

Equations
theorem has_strict_deriv_at.​to_local_inverse {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] [cs : complete_space ๐•œ] {f : ๐•œ โ†’ ๐•œ} {f' a : ๐•œ} (hf : has_strict_deriv_at f f' a) (hf' : f' โ‰  0) :

theorem has_strict_deriv_at.​to_local_left_inverse {๐•œ : Type u_1} [nondiscrete_normed_field ๐•œ] [cs : complete_space ๐•œ] {f : ๐•œ โ†’ ๐•œ} {f' a : ๐•œ} (hf : has_strict_deriv_at f f' a) (hf' : f' โ‰  0) {g : ๐•œ โ†’ ๐•œ} :
(โˆ€แถ  (x : ๐•œ) in nhds a, g (f x) = x) โ†’ has_strict_deriv_at g f'โปยน (f a)