Dilations #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
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 defintions #
dilation.ratio f : ℝ≥0
: the value ofr
in the relation above, defaulting to 1 in the case where it is not well-defined.
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 choosen 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 pseudo_emetric_space
and we specialize to pseudo_metric_space
and metric_space
when
needed.
TODO #
- Introduce dilation equivs.
- Refactor the
isometry
API to match the*_hom_class
API below.
References #
- to_fun : α → β
- edist_eq' : ∃ (r : nnreal), r ≠ 0 ∧ ∀ (x y : α), has_edist.edist (self.to_fun x) (self.to_fun y) = ↑r * has_edist.edist x y
A dilation is a map that uniformly scales the edistance between any two points.
Instances for dilation
- dilation.has_sizeof_inst
- dilation.to_dilation_class
- dilation.has_coe_to_fun
- dilation.inhabited
- dilation.monoid
- to_fun_like : fun_like F α (λ (_x : α), β)
- edist_eq' : ∀ (f : F), ∃ (r : nnreal), r ≠ 0 ∧ ∀ (x y : α), has_edist.edist (⇑f x) (⇑f y) = ↑r * has_edist.edist x y
dilation_class F α β r
states that F
is a type of r
-dilations.
You should extend this typeclass when you extend dilation
.
Instances of this typeclass
Instances of other typeclasses for dilation_class
- dilation_class.has_sizeof_inst
Equations
- dilation.to_dilation_class = {to_fun_like := {coe := dilation.to_fun _inst_2, coe_injective' := _}, edist_eq' := _}
Equations
Copy of a dilation
with a new to_fun
equal to the old one. Useful to fix definitional
equalities.
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 = ite (∀ (x y : α), has_edist.edist x y = 0 ∨ has_edist.edist x y = ⊤) 1 _.some
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.mk_of_nndist_eq f h = {to_fun := f, edist_eq' := _}
Alternative dilation
constructor when the distance hypothesis is over dist
Equations
A dilation from an emetric space is injective
The identity is a dilation
Equations
- dilation.inhabited = {default := dilation.id α _inst_1}
The composition of dilations is a dilation
Ratio of the composition g.comp f
of two dilations is the product of their ratios. We assume
that the domain α
of f
is nontrivial, otherwise ratio f = ratio (g.comp f) = 1
but ratio g
may have any value.
Equations
- dilation.monoid = {mul := dilation.comp _inst_1, mul_assoc := _, one := dilation.id α _inst_1, one_mul := _, mul_one := _, npow := npow_rec (mul_one_class.to_has_mul (dilation α α)), npow_zero' := _, npow_succ' := _}
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
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
.