Module docstring
{"# Tangent cone
In this file, we define two predicates UniqueDiffWithinAt π s x and UniqueDiffOn π s
ensuring that, if a function has two derivatives, then they have to coincide. As a direct
definition of this fact (quantifying on all target types and all functions) would depend on
universes, we use a more intrinsic definition: if all the possible tangent directions to the set
s at the point x span a dense subset of the whole subset, it is easy to check that the
derivative has to be unique.
Therefore, we introduce the set of all tangent directions, named tangentConeAt,
and express UniqueDiffWithinAt and UniqueDiffOn in terms of it.
One should however think of this definition as an implementation detail: the only reason to
introduce the predicates UniqueDiffWithinAt and UniqueDiffOn is to ensure the uniqueness
of the derivative. This is why their names reflect their uses, and not how they are defined.
Implementation details
Note that this file is imported by Mathlib.Analysis.Calculus.FDeriv.Basic. Hence, derivatives are
not defined yet. The property of uniqueness of the derivative is therefore proved in
Mathlib.Analysis.Calculus.FDeriv.Basic, but based on the properties of the tangent cone we prove
here.
","### Properties of UniqueDiffWithinAt and UniqueDiffOn
This section is devoted to properties of the predicates UniqueDiffWithinAt and UniqueDiffOn. "}