Module docstring
{"# Dilations
We define dilations, i.e., maps between emetric spaces that satisfy
edist (f x) (f y) = r * edist x y for some r ∉ {0, ∞}.
The value r = 0 is not allowed because we want dilations of (e)metric spaces to be automatically
injective. The value r = ∞ is not allowed because this way we can define Dilation.ratio f : ℝ≥0,
not Dilation.ratio f : ℝ≥0∞. Also, we do not often need maps sending distinct points to points at
infinite distance.
Main definitions
Dilation.ratio f : ℝ≥0: the value ofrin the relation above, defaulting to 1 in the case where it is not well-defined.
Notation
α →ᵈ β: notation forDilation α β.
Implementation notes
The type of dilations defined in this file are also referred to as \"similarities\" or \"similitudes\"
by other authors. The name Dilation was chosen to match the Wikipedia name.
Since a lot of elementary properties don't require eq_of_dist_eq_zero we start setting up the
theory for PseudoEMetricSpace and we specialize to PseudoMetricSpace and MetricSpace when
needed.
TODO
- Introduce dilation equivs.
 - Refactor the 
IsometryAPI to match the*HomClassAPI below. 
References
- https://en.wikipedia.org/wiki/Dilation(metricspace)
 - [Marcel Berger, Geometry][berger1987] "}