Recently, while wandering the corridors of the Mathematics Department, I overheard one of the graduate students explaining the **Inverse Function Theorem** to some first-year undergraduates. On a non-rigorous level, the Inverse Function Theorem is one of the most accessible (or “obvious”) results in elementary calculus: if the graph of a function *y* = *f*(*x*) has a well-defined and non-zero slope (derivative) *s* at some point *x*_{0}, then

- we ought to be able to write
*x*as a function of*y*, i.e.*x*=*f*^{−1}(*y*) for*y*near*f*(*x*_{0}), - and, moreover, the slope of the inverse function
*f*^{−1}at*f*(*x*_{0}) should be^{1}⁄_{s}.

The “visual proof” of this statement amounts to sketching the graph of *f*, observing that the graph of *f*^{−1} (if the inverse function exists at all) is the graph of *f* with the *x* and *y* axes interchanged, and hence that if the slope of *f* is approximately ^{Δy}⁄_{Δx} then the slope of *f*^{−1} is approximately ^{Δx}⁄_{Δy}, i.e. the reciprocal of that of *f*.

Recall that the derivative of a function *f*: ℝ^{n} → ℝ^{m} is the rectangular *m* × *n* matrix of partial derivatives

whenever all these partial derivatives exist. With this notation, a more careful statement of the Inverse Function Theorem is that if *f*: ℝ^{n} → ℝ^{n} is continuously differentiable in a neighbourhood of *x*_{0} and the square *n* × *n* matrix of partial derivatives D*f*(*x*_{0}) is invertible, then there exist neighbourhoods *U* of *x*_{0} and *V* of *f*(*x*_{0}) and a continuously differentiable function *g*: *V* → ℝ^{n} (called a **local inverse** for *f*) such that

- for every
*u*∈*U*,*g*(*f*(*u*)) =*u*, and - for every
*v*∈*V*,*f*(*g*(*v*)) =*v*.

An interesting question to ask is whether one really needs continuous differentiability of *f*. For example, Rademacher’s theorem says that whenever *f* satisfies a **Lipschitz condition** of the form

for some constant *C* ≥ 0 it follows that *f* is differentiable almost everywhere in ℝ^{n} with derivative having norm at most *C*. Is this sufficient? It turns out, courtesy of a theorem of F. H. Clarke, that the Inverse Function Theorem does hold true for Lipschitz functions provided that one adopts the right generalized interpretation of the derivative of *f*.

The (set-valued) **generalized derivative** D*f*(*x*_{0}) of *f*: ℝ^{n} → ℝ^{m} at *x*_{0} is defined to be the convex hull of the set of all matrices *M* ∈ ℝ^{m×n} that arise as a limit

for some sequence (*x*_{k}) in ℝ^{n} of differentiability points of *f* that converges to *x*_{0}. One can show that, when *f* satisfies a Lipschitz condition in a neighbourhood of *x*_{0}, D*f*(*x*_{0}) is a non-empty, compact, convex subset of ℝ^{m×n}. The generalized derivative D*f*(*x*_{0}) is said to be of **maximal rank** if every *M* ∈ D*f*(*x*_{0}) has maximal rank (i.e. has rank(*M*) = min(*m*, *n*)).

**Theorem.**(Clarke, 1976) If

*f*: ℝ

^{n}→ ℝ

^{n}satisfies a Lipschitz condition in some neighbourhood of

*x*

_{0}and D

*f*(

*x*) ⊆ ℝ

^{n}is of maximal rank, then there exist neighbourhoods

*U*of

*x*

_{0}and

*V*of

*f*(

*x*

_{0}) and a Lipschitz function

*g*:

*V*→ ℝ

^{n}such that

- for every
*u*∈*U*,*g*(*f*(*u*)) =*u*, and - for every
*v*∈*V*,*f*(*g*(*v*)) =*v*.

It’s very important to note the maximal rank condition in Clarke’s Inverse Function Theorem: we need *every* matrix *M* in the generalized derivative to be non-singular. So, for example, the absolute value function on the real line ℝ does *not* satisfy the hypotheses of Clarke’s theorem at *x* = 0, even though it is Lipschitz with Lipschitz constant 1, since its generalized derivative at 0 is

which contains the non-invertible derivative matrix [0]. It is hardly surprising that the Inverse Function Theorem cannot be applied here since the absolute value function is non-injective in any neighbourhood of 0: both +*δ* and −*δ* map to +*δ*. On the other hand, the function *f* defined by

has generalized derivative at 0 given by

which is of maximal rank. The local (in fact, global) Lipschitz inverse of this function *f* is, unsurprisingly,