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 ofr
in 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
Isometry
API to match the*HomClass
API below.
References #
- https://en.wikipedia.org/wiki/Dilation_(metric_space)
- [Marcel Berger, Geometry][berger1987]
A dilation is a map that uniformly scales the edistance between any two points.
- toFun : α → β
Instances For
Equations
- «term_→ᵈ_» = Lean.ParserDescr.trailingNode `term_→ᵈ_ 25 25 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " →ᵈ ") (Lean.ParserDescr.cat `term 26))
Instances For
DilationClass F α β r
states that F
is a type of r
-dilations.
You should extend this typeclass when you extend Dilation
.
Instances
Equations
- Dilation.funLike = { coe := Dilation.toFun, coe_injective' := ⋯ }
Equations
- ⋯ = ⋯
Equations
- Dilation.instCoeFunDilationForAll = DFunLike.hasCoeToFun
Copy of a Dilation
with a new toFun
equal to the old one. Useful to fix definitional
equalities.
Equations
- Dilation.copy f f' h = { toFun := f', edist_eq' := ⋯ }
Instances For
The ratio of a dilation f
. If the ratio is undefined (i.e., the distance between any two
points in α
is either zero or infinity), then we choose one as the ratio.
Equations
- Dilation.ratio f = if ∀ (x y : α), edist x y = 0 ∨ edist x y = ⊤ then 1 else Exists.choose ⋯
Instances For
The ratio
is equal to the distance ratio for any two points with nonzero finite distance.
dist
and nndist
versions below
The ratio
is equal to the distance ratio for any two points
with nonzero finite distance; nndist
version
The ratio
is equal to the distance ratio for any two points
with nonzero finite distance; dist
version
Alternative Dilation
constructor when the distance hypothesis is over nndist
Equations
- Dilation.mkOfNNDistEq f h = { toFun := f, edist_eq' := ⋯ }
Instances For
Alternative Dilation
constructor when the distance hypothesis is over dist
Equations
Instances For
Every isometry is a dilation of ratio 1
.
Equations
- Isometry.toDilation f hf = { toFun := f, edist_eq' := ⋯ }
Instances For
A dilation from an emetric space is injective
Equations
- Dilation.instInhabitedDilation = { default := Dilation.id α }
The composition of dilations is a dilation
Equations
- Dilation.comp g f = { toFun := ⇑g ∘ ⇑f, edist_eq' := ⋯ }
Instances For
Ratio of the composition g.comp f
of two dilations is the product of their ratios. We assume
that there exist two points in α
at extended distance neither 0
nor ∞
because otherwise
Dilation.ratio (g.comp f) = Dilation.ratio f = 1
while Dilation.ratio g
can be any number. This
version works for most general spaces, see also Dilation.ratio_comp
for a version assuming that
α
is a nontrivial metric space.
Dilation.ratio
as a monoid homomorphism from α →ᵈ α
to ℝ≥0
.
Equations
- Dilation.ratioHom = { toOneHom := { toFun := Dilation.ratio, map_one' := ⋯ }, map_mul' := ⋯ }
Instances For
A dilation from a metric space is a uniform inducing map
A dilation is continuous.
Dilations scale the diameter by ratio f
in pseudoemetric spaces.
A dilation scales the diameter of the range by ratio f
.
A dilation maps balls to balls and scales the radius by ratio f
.
A dilation maps closed balls to closed balls and scales the radius by ratio f
.
A dilation from a metric space is a uniform embedding
A dilation from a metric space is an embedding
A dilation from a complete emetric space is a closed embedding
Ratio of the composition g.comp f
of two dilations is the product of their ratios. We assume
that the domain α
of f
is a nontrivial metric space, otherwise
Dilation.ratio f = Dilation.ratio (g.comp f) = 1
but Dilation.ratio g
may have any value.
See also Dilation.ratio_comp'
for a version that works for more general spaces.
A dilation scales the diameter by ratio f
in pseudometric spaces.
A dilation maps balls to balls and scales the radius by ratio f
.
A dilation maps spheres to spheres and scales the radius by ratio f
.
A dilation maps closed balls to closed balls and scales the radius by ratio f
.