  Incremental stability is a property of dynamical and control systems,
requiring the uniform asymptotic stability of every trajectory, rather than
that of an equilibrium point or a particular time-varying trajectory. Similarly
to stability, Lyapunov functions and contraction metrics play important roles
in the study of incremental stability. In this paper, we provide
characterizations and descriptions of incremental stability in terms of
existence of coordinate-invariant notions of incremental Lyapunov functions and
contraction metrics, respectively. Most design techniques providing controllers
rendering control systems incrementally stable have two main drawbacks: they
can only be applied to control systems in either parametric-strict-feedback or
strict-feedback form, and they require these control systems to be smooth. In
this paper, we propose a design technique that is applicable to larger classes
of (not necessarily smooth) control systems. Moreover, we propose a recursive
way of constructing contraction metrics (for smooth control systems) and
incremental Lyapunov functions which have been identified as a key tool
enabling the construction of finite abstractions of nonlinear control systems,
the approximation of stochastic hybrid systems, source-code model checking for
nonlinear dynamical systems and so on. The effectiveness of the proposed
results in this paper is illustrated by synthesizing a controller rendering a
non-smooth control system incrementally stable as well as constructing its
finite abstraction, using the computed incremental Lyapunov function.
