# The derivative of a linear equivalence #

For detailed documentation of the FrΓ©chet derivative, see the module docstring of Analysis/Calculus/FDeriv/Basic.lean.

This file contains the usual formulas (and existence assertions) for the derivative of continuous linear equivalences.

We also prove the usual formula for the derivative of the inverse function, assuming it exists. The inverse function theorem is in Mathlib/Analysis/Calculus/InverseFunctionTheorem/FDeriv.lean.

### Differentiability of linear equivs, and invariance of differentiability #

theorem ContinuousLinearEquiv.hasStrictFDerivAt {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {x : E} (iso : E βL[π] F) :
HasStrictFDerivAt (βiso) (βiso) x
theorem ContinuousLinearEquiv.hasFDerivWithinAt {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {x : E} {s : Set E} (iso : E βL[π] F) :
HasFDerivWithinAt (βiso) (βiso) s x
theorem ContinuousLinearEquiv.hasFDerivAt {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {x : E} (iso : E βL[π] F) :
HasFDerivAt (βiso) (βiso) x
theorem ContinuousLinearEquiv.differentiableAt {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {x : E} (iso : E βL[π] F) :
DifferentiableAt π (βiso) x
theorem ContinuousLinearEquiv.differentiableWithinAt {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {x : E} {s : Set E} (iso : E βL[π] F) :
DifferentiableWithinAt π (βiso) s x
theorem ContinuousLinearEquiv.fderiv {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {x : E} (iso : E βL[π] F) :
fderiv π (βiso) x = βiso
theorem ContinuousLinearEquiv.fderivWithin {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {x : E} {s : Set E} (iso : E βL[π] F) (hxs : UniqueDiffWithinAt π s x) :
fderivWithin π (βiso) s x = βiso
theorem ContinuousLinearEquiv.differentiable {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] (iso : E βL[π] F) :
Differentiable π βiso
theorem ContinuousLinearEquiv.differentiableOn {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {s : Set E} (iso : E βL[π] F) :
DifferentiableOn π (βiso) s
theorem ContinuousLinearEquiv.comp_differentiableWithinAt_iff {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] (iso : E βL[π] F) {f : G β E} {s : Set G} {x : G} :
DifferentiableWithinAt π (βiso β f) s x β DifferentiableWithinAt π f s x
theorem ContinuousLinearEquiv.comp_differentiableAt_iff {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] (iso : E βL[π] F) {f : G β E} {x : G} :
DifferentiableAt π (βiso β f) x β DifferentiableAt π f x
theorem ContinuousLinearEquiv.comp_differentiableOn_iff {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] (iso : E βL[π] F) {f : G β E} {s : Set G} :
DifferentiableOn π (βiso β f) s β DifferentiableOn π f s
theorem ContinuousLinearEquiv.comp_differentiable_iff {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] (iso : E βL[π] F) {f : G β E} :
Differentiable π (βiso β f) β Differentiable π f
theorem ContinuousLinearEquiv.comp_hasFDerivWithinAt_iff {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] (iso : E βL[π] F) {f : G β E} {s : Set G} {x : G} {f' : G βL[π] E} :
HasFDerivWithinAt (βiso β f) ((βiso).comp f') s x β HasFDerivWithinAt f f' s x
theorem ContinuousLinearEquiv.comp_hasStrictFDerivAt_iff {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] (iso : E βL[π] F) {f : G β E} {x : G} {f' : G βL[π] E} :
HasStrictFDerivAt (βiso β f) ((βiso).comp f') x β
theorem ContinuousLinearEquiv.comp_hasFDerivAt_iff {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] (iso : E βL[π] F) {f : G β E} {x : G} {f' : G βL[π] E} :
HasFDerivAt (βiso β f) ((βiso).comp f') x β HasFDerivAt f f' x
theorem ContinuousLinearEquiv.comp_hasFDerivWithinAt_iff' {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] (iso : E βL[π] F) {f : G β E} {s : Set G} {x : G} {f' : G βL[π] F} :
HasFDerivWithinAt (βiso β f) f' s x β HasFDerivWithinAt f ((βiso.symm).comp f') s x
theorem ContinuousLinearEquiv.comp_hasFDerivAt_iff' {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] (iso : E βL[π] F) {f : G β E} {x : G} {f' : G βL[π] F} :
HasFDerivAt (βiso β f) f' x β HasFDerivAt f ((βiso.symm).comp f') x
theorem ContinuousLinearEquiv.comp_fderivWithin {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] (iso : E βL[π] F) {f : G β E} {s : Set G} {x : G} (hxs : UniqueDiffWithinAt π s x) :
fderivWithin π (βiso β f) s x = (βiso).comp (fderivWithin π f s x)
theorem ContinuousLinearEquiv.comp_fderiv {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] (iso : E βL[π] F) {f : G β E} {x : G} :
fderiv π (βiso β f) x = (βiso).comp (fderiv π f x)
theorem fderivWithin_continuousLinearEquiv_comp {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] {G' : Type u_5} [] [NormedSpace π G'] {x : E} {s : Set E} (L : G βL[π] G') (f : E β F βL[π] G) (hs : UniqueDiffWithinAt π s x) :
fderivWithin π (fun (x : E) => (βL).comp (f x)) s x = (β(().arrowCongr L)).comp (fderivWithin π f s x)
theorem fderiv_continuousLinearEquiv_comp {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] {G' : Type u_5} [] [NormedSpace π G'] (L : G βL[π] G') (f : E β F βL[π] G) (x : E) :
fderiv π (fun (x : E) => (βL).comp (f x)) x = (β(().arrowCongr L)).comp (fderiv π f x)
theorem fderiv_continuousLinearEquiv_comp' {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] {G' : Type u_5} [] [NormedSpace π G'] (L : G βL[π] G') (f : E β F βL[π] G) :
(fderiv π fun (x : E) => (βL).comp (f x)) = fun (x : E) => (β(().arrowCongr L)).comp (fderiv π f x)
theorem ContinuousLinearEquiv.comp_right_differentiableWithinAt_iff {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] (iso : E βL[π] F) {f : F β G} {s : Set F} {x : E} :
DifferentiableWithinAt π (f β βiso) (βiso β»ΒΉ' s) x β DifferentiableWithinAt π f s (iso x)
theorem ContinuousLinearEquiv.comp_right_differentiableAt_iff {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] (iso : E βL[π] F) {f : F β G} {x : E} :
DifferentiableAt π (f β βiso) x β DifferentiableAt π f (iso x)
theorem ContinuousLinearEquiv.comp_right_differentiableOn_iff {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] (iso : E βL[π] F) {f : F β G} {s : Set F} :
DifferentiableOn π (f β βiso) (βiso β»ΒΉ' s) β DifferentiableOn π f s
theorem ContinuousLinearEquiv.comp_right_differentiable_iff {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] (iso : E βL[π] F) {f : F β G} :
Differentiable π (f β βiso) β Differentiable π f
theorem ContinuousLinearEquiv.comp_right_hasFDerivWithinAt_iff {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] (iso : E βL[π] F) {f : F β G} {s : Set F} {x : E} {f' : F βL[π] G} :
HasFDerivWithinAt (f β βiso) (f'.comp βiso) (βiso β»ΒΉ' s) x β HasFDerivWithinAt f f' s (iso x)
theorem ContinuousLinearEquiv.comp_right_hasFDerivAt_iff {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] (iso : E βL[π] F) {f : F β G} {x : E} {f' : F βL[π] G} :
HasFDerivAt (f β βiso) (f'.comp βiso) x β HasFDerivAt f f' (iso x)
theorem ContinuousLinearEquiv.comp_right_hasFDerivWithinAt_iff' {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] (iso : E βL[π] F) {f : F β G} {s : Set F} {x : E} {f' : E βL[π] G} :
HasFDerivWithinAt (f β βiso) f' (βiso β»ΒΉ' s) x β HasFDerivWithinAt f (f'.comp βiso.symm) s (iso x)
theorem ContinuousLinearEquiv.comp_right_hasFDerivAt_iff' {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] (iso : E βL[π] F) {f : F β G} {x : E} {f' : E βL[π] G} :
HasFDerivAt (f β βiso) f' x β HasFDerivAt f (f'.comp βiso.symm) (iso x)
theorem ContinuousLinearEquiv.comp_right_fderivWithin {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] (iso : E βL[π] F) {f : F β G} {s : Set F} {x : E} (hxs : UniqueDiffWithinAt π (βiso β»ΒΉ' s) x) :
fderivWithin π (f β βiso) (βiso β»ΒΉ' s) x = (fderivWithin π f s (iso x)).comp βiso
theorem ContinuousLinearEquiv.comp_right_fderiv {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] (iso : E βL[π] F) {f : F β G} {x : E} :
fderiv π (f β βiso) x = (fderiv π f (iso x)).comp βiso

### Differentiability of linear isometry equivs, and invariance of differentiability #

theorem LinearIsometryEquiv.hasStrictFDerivAt {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {x : E} (iso : E ββα΅’[π] F) :
HasStrictFDerivAt (βiso) (β{ toLinearEquiv := iso.toLinearEquiv, continuous_toFun := β―, continuous_invFun := β― }) x
theorem LinearIsometryEquiv.hasFDerivWithinAt {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {x : E} {s : Set E} (iso : E ββα΅’[π] F) :
HasFDerivWithinAt (βiso) (β{ toLinearEquiv := iso.toLinearEquiv, continuous_toFun := β―, continuous_invFun := β― }) s x
theorem LinearIsometryEquiv.hasFDerivAt {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {x : E} (iso : E ββα΅’[π] F) :
HasFDerivAt (βiso) (β{ toLinearEquiv := iso.toLinearEquiv, continuous_toFun := β―, continuous_invFun := β― }) x
theorem LinearIsometryEquiv.differentiableAt {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {x : E} (iso : E ββα΅’[π] F) :
DifferentiableAt π (βiso) x
theorem LinearIsometryEquiv.differentiableWithinAt {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {x : E} {s : Set E} (iso : E ββα΅’[π] F) :
DifferentiableWithinAt π (βiso) s x
theorem LinearIsometryEquiv.fderiv {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {x : E} (iso : E ββα΅’[π] F) :
fderiv π (βiso) x = β{ toLinearEquiv := iso.toLinearEquiv, continuous_toFun := β―, continuous_invFun := β― }
theorem LinearIsometryEquiv.fderivWithin {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {x : E} {s : Set E} (iso : E ββα΅’[π] F) (hxs : UniqueDiffWithinAt π s x) :
fderivWithin π (βiso) s x = β{ toLinearEquiv := iso.toLinearEquiv, continuous_toFun := β―, continuous_invFun := β― }
theorem LinearIsometryEquiv.differentiable {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] (iso : E ββα΅’[π] F) :
Differentiable π βiso
theorem LinearIsometryEquiv.differentiableOn {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {s : Set E} (iso : E ββα΅’[π] F) :
DifferentiableOn π (βiso) s
theorem LinearIsometryEquiv.comp_differentiableWithinAt_iff {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] (iso : E ββα΅’[π] F) {f : G β E} {s : Set G} {x : G} :
DifferentiableWithinAt π (βiso β f) s x β DifferentiableWithinAt π f s x
theorem LinearIsometryEquiv.comp_differentiableAt_iff {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] (iso : E ββα΅’[π] F) {f : G β E} {x : G} :
DifferentiableAt π (βiso β f) x β DifferentiableAt π f x
theorem LinearIsometryEquiv.comp_differentiableOn_iff {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] (iso : E ββα΅’[π] F) {f : G β E} {s : Set G} :
DifferentiableOn π (βiso β f) s β DifferentiableOn π f s
theorem LinearIsometryEquiv.comp_differentiable_iff {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] (iso : E ββα΅’[π] F) {f : G β E} :
Differentiable π (βiso β f) β Differentiable π f
theorem LinearIsometryEquiv.comp_hasFDerivWithinAt_iff {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] (iso : E ββα΅’[π] F) {f : G β E} {s : Set G} {x : G} {f' : G βL[π] E} :
HasFDerivWithinAt (βiso β f) ((β{ toLinearEquiv := iso.toLinearEquiv, continuous_toFun := β―, continuous_invFun := β― }).comp f') s x β HasFDerivWithinAt f f' s x
theorem LinearIsometryEquiv.comp_hasStrictFDerivAt_iff {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] (iso : E ββα΅’[π] F) {f : G β E} {x : G} {f' : G βL[π] E} :
HasStrictFDerivAt (βiso β f) ((β{ toLinearEquiv := iso.toLinearEquiv, continuous_toFun := β―, continuous_invFun := β― }).comp f') x β
theorem LinearIsometryEquiv.comp_hasFDerivAt_iff {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] (iso : E ββα΅’[π] F) {f : G β E} {x : G} {f' : G βL[π] E} :
HasFDerivAt (βiso β f) ((β{ toLinearEquiv := iso.toLinearEquiv, continuous_toFun := β―, continuous_invFun := β― }).comp f') x β HasFDerivAt f f' x
theorem LinearIsometryEquiv.comp_hasFDerivWithinAt_iff' {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] (iso : E ββα΅’[π] F) {f : G β E} {s : Set G} {x : G} {f' : G βL[π] F} :
HasFDerivWithinAt (βiso β f) f' s x β HasFDerivWithinAt f ((β{ toLinearEquiv := iso.symm.toLinearEquiv, continuous_toFun := β―, continuous_invFun := β― }).comp f') s x
theorem LinearIsometryEquiv.comp_hasFDerivAt_iff' {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] (iso : E ββα΅’[π] F) {f : G β E} {x : G} {f' : G βL[π] F} :
HasFDerivAt (βiso β f) f' x β HasFDerivAt f ((β{ toLinearEquiv := iso.symm.toLinearEquiv, continuous_toFun := β―, continuous_invFun := β― }).comp f') x
theorem LinearIsometryEquiv.comp_fderivWithin {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] (iso : E ββα΅’[π] F) {f : G β E} {s : Set G} {x : G} (hxs : UniqueDiffWithinAt π s x) :
fderivWithin π (βiso β f) s x = (β{ toLinearEquiv := iso.toLinearEquiv, continuous_toFun := β―, continuous_invFun := β― }).comp (fderivWithin π f s x)
theorem LinearIsometryEquiv.comp_fderiv {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] (iso : E ββα΅’[π] F) {f : G β E} {x : G} :
fderiv π (βiso β f) x = (β{ toLinearEquiv := iso.toLinearEquiv, continuous_toFun := β―, continuous_invFun := β― }).comp (fderiv π f x)
theorem LinearIsometryEquiv.comp_fderiv' {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {G : Type u_4} [NormedSpace π G] (iso : E ββα΅’[π] F) {f : G β E} :
fderiv π (βiso β f) = fun (x : G) => (β{ toLinearEquiv := iso.toLinearEquiv, continuous_toFun := β―, continuous_invFun := β― }).comp (fderiv π f x)
theorem HasStrictFDerivAt.of_local_left_inverse {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {f : E β F} {f' : E βL[π] F} {g : F β E} {a : F} (hg : ) (hf : HasStrictFDerivAt f (βf') (g a)) (hfg : βαΆ  (y : F) in nhds a, f (g y) = y) :
HasStrictFDerivAt g (βf'.symm) a

If f (g y) = y for y in some neighborhood of a, g is continuous at a, and f has an invertible derivative f' at g a in the strict sense, then g has the derivative f'β»ΒΉ at a in the strict sense.

This is one of the easy parts of the inverse function theorem: it assumes that we already have an inverse function.

theorem HasFDerivAt.of_local_left_inverse {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {f : E β F} {f' : E βL[π] F} {g : F β E} {a : F} (hg : ) (hf : HasFDerivAt f (βf') (g a)) (hfg : βαΆ  (y : F) in nhds a, f (g y) = y) :
HasFDerivAt g (βf'.symm) a

If f (g y) = y for y in some neighborhood of a, g is continuous at a, and f has an invertible derivative f' at g a, then g has the derivative f'β»ΒΉ at a.

This is one of the easy parts of the inverse function theorem: it assumes that we already have an inverse function.

theorem PartialHomeomorph.hasStrictFDerivAt_symm {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] (f : ) {f' : E βL[π] F} {a : F} (ha : a β f.target) (htff' : HasStrictFDerivAt (βf) (βf') (βf.symm a)) :
HasStrictFDerivAt (βf.symm) (βf'.symm) a

If f is a partial homeomorphism defined on a neighbourhood of f.symm a, and f has an invertible derivative f' in the sense of strict differentiability at f.symm a, then f.symm has the derivative f'β»ΒΉ at a.

This is one of the easy parts of the inverse function theorem: it assumes that we already have an inverse function.

theorem PartialHomeomorph.hasFDerivAt_symm {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] (f : ) {f' : E βL[π] F} {a : F} (ha : a β f.target) (htff' : HasFDerivAt (βf) (βf') (βf.symm a)) :
HasFDerivAt (βf.symm) (βf'.symm) a

If f is a partial homeomorphism defined on a neighbourhood of f.symm a, and f has an invertible derivative f' at f.symm a, then f.symm has the derivative f'β»ΒΉ at a.

This is one of the easy parts of the inverse function theorem: it assumes that we already have an inverse function.

theorem HasFDerivWithinAt.eventually_ne {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {f : E β F} {f' : E βL[π] F} {x : E} {s : Set E} (h : HasFDerivWithinAt f f' s x) (hf' : β (C : β), β (z : E), β€ C * βf' zβ) :
βαΆ  (z : E) in nhdsWithin x (s \ {x}), f z β  f x
theorem HasFDerivAt.eventually_ne {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {f : E β F} {f' : E βL[π] F} {x : E} (h : HasFDerivAt f f' x) (hf' : β (C : β), β (z : E), β€ C * βf' zβ) :
βαΆ  (z : E) in nhdsWithin x {x}αΆ, f z β  f x
theorem has_fderiv_at_filter_real_equiv {E : Type u_1} [] {F : Type u_2} [] {f : E β F} {f' : } {x : E} {L : } :
Filter.Tendsto (fun (x' : E) => βx' - xββ»ΒΉ * βf x' - f x - f' (x' - x)β) L (nhds 0) β Filter.Tendsto (fun (x' : E) => βx' - xββ»ΒΉ β’ (f x' - f x - f' (x' - x))) L (nhds 0)
theorem HasFDerivAt.lim_real {E : Type u_1} [] {F : Type u_2} [] {f : E β F} {f' : } {x : E} (hf : HasFDerivAt f f' x) (v : E) :
Filter.Tendsto (fun (c : β) => c β’ (f (x + β’ v) - f x)) Filter.atTop (nhds (f' v))
theorem HasFDerivWithinAt.mapsTo_tangent_cone {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {f : E β F} {s : Set E} {f' : E βL[π] F} {x : E} (h : HasFDerivWithinAt f f' s x) :
Set.MapsTo (βf') (tangentConeAt π s x) (tangentConeAt π (f '' s) (f x))

The image of a tangent cone under the differential of a map is included in the tangent cone to the image.

theorem HasFDerivWithinAt.uniqueDiffWithinAt {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {f : E β F} {s : Set E} {f' : E βL[π] F} {x : E} (h : HasFDerivWithinAt f f' s x) (hs : UniqueDiffWithinAt π s x) (h' : DenseRange βf') :
UniqueDiffWithinAt π (f '' s) (f x)

If a set has the unique differentiability property at a point x, then the image of this set under a map with onto derivative has also the unique differentiability property at the image point.

theorem UniqueDiffOn.image {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {f : E β F} {s : Set E} {f' : E β E βL[π] F} (hs : UniqueDiffOn π s) (hf' : β x β s, HasFDerivWithinAt f (f' x) s x) (hd : β x β s, DenseRange β(f' x)) :
UniqueDiffOn π (f '' s)
theorem HasFDerivWithinAt.uniqueDiffWithinAt_of_continuousLinearEquiv {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {f : E β F} {s : Set E} {x : E} (e' : E βL[π] F) (h : HasFDerivWithinAt f (βe') s x) (hs : UniqueDiffWithinAt π s x) :
UniqueDiffWithinAt π (f '' s) (f x)
theorem ContinuousLinearEquiv.uniqueDiffOn_image {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {s : Set E} (e : E βL[π] F) (h : UniqueDiffOn π s) :
UniqueDiffOn π (βe '' s)
@[simp]
theorem ContinuousLinearEquiv.uniqueDiffOn_image_iff {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {s : Set E} (e : E βL[π] F) :
UniqueDiffOn π (βe '' s) β UniqueDiffOn π s
@[simp]
theorem ContinuousLinearEquiv.uniqueDiffOn_preimage_iff {π : Type u_1} [] {E : Type u_2} [NormedSpace π E] {F : Type u_3} [NormedSpace π F] {s : Set E} (e : F βL[π] E) :
UniqueDiffOn π (βe β»ΒΉ' s) β UniqueDiffOn π s