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 ofrin 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
isometryAPI to match the*_hom_classAPI 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.