Isometries #
We define isometries, i.e., maps between emetric spaces that preserve the edistance (on metric spaces, these are exactly the maps that preserve distances), and prove their basic properties. We also introduce isometric bijections.
Since a lot of elementary properties don't require eq_of_dist_eq_zero
we start setting up the
theory for PseudoMetricSpace
and we specialize to MetricSpace
when needed.
An isometry (also known as isometric embedding) is a map preserving the edistance between pseudoemetric spaces, or equivalently the distance between pseudometric space.
Instances For
On pseudometric spaces, a map is an isometry if and only if it preserves nonnegative distances.
On pseudometric spaces, a map is an isometry if and only if it preserves distances.
An isometry preserves distances.
A map that preserves distances is an isometry
An isometry preserves non-negative distances.
A map that preserves non-negative distances is an isometry.
An isometry preserves edistances.
Any map on a subsingleton is an isometry
The identity is an isometry
The composition of isometries is an isometry.
An isometry from a metric space is a uniform continuous map
An isometry from a metric space is a uniform inducing map
An isometry is continuous.
The right inverse of an isometry is an isometry.
Isometries preserve the diameter in pseudoemetric spaces.
The injection from a subtype is an isometry
An isometry from an emetric space is injective
An isometry from an emetric space is a uniform embedding
An isometry from an emetric space is an embedding
An isometry from a complete emetric space is a closed embedding
An isometry preserves the diameter in pseudometric spaces.
A uniform embedding from a uniform space to a metric space is an isometry with respect to the induced metric space structure on the source space.
An embedding from a topological space to a metric space is an isometry with respect to the induced metric space structure on the source space.
- toFun : α → β
- invFun : β → α
- left_inv : Function.LeftInverse s.invFun s.toFun
- right_inv : Function.RightInverse s.invFun s.toFun
- isometry_toFun : Isometry s.toFun
α
and β
are isometric if there is an isometric bijection between them.
Instances For
α
and β
are isometric if there is an isometric bijection between them.
Equations
- «term_≃ᵢ_» = Lean.ParserDescr.trailingNode `term_≃ᵢ_ 25 25 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ≃ᵢ ") (Lean.ParserDescr.cat `term 26))
Instances For
Equations
- One or more equations did not get rendered due to their size.
Alternative constructor for isometric bijections, taking as input an isometry, and a right inverse.
Equations
- IsometryEquiv.mk' f g hfg hf = { toEquiv := { toFun := f, invFun := g, left_inv := (_ : ∀ (x : α), g (f x) = x), right_inv := hfg }, isometry_toFun := hf }
Instances For
The identity isometry of a space.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The composition of two isometric isomorphisms, as an isometric isomorphism.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The inverse of an isometric isomorphism, as an isometric isomorphism.
Equations
- IsometryEquiv.symm h = { toEquiv := h.symm, isometry_toFun := (_ : Isometry h.symm.toFun) }
Instances For
See Note [custom simps projection]. We need to specify this projection explicitly in this case, because it is a composition of multiple projections.
Equations
Instances For
See Note [custom simps projection]
Equations
Instances For
The (bundled) homeomorphism associated to an isometric isomorphism.
Equations
- IsometryEquiv.toHomeomorph h = Homeomorph.mk h.toEquiv
Instances For
Equiv.funUnique
as an IsometryEquiv
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
piFinTwoEquiv
as an IsometryEquiv
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
An isometry induces an isometric isomorphism between the source space and the range of the isometry.
Equations
- Isometry.isometryEquivOnRange h = { toEquiv := Equiv.ofInjective f (_ : Function.Injective f), isometry_toFun := h }