diff --git a/src/metric-spaces.lagda.md b/src/metric-spaces.lagda.md index 76d05aabee..4dd23a4e05 100644 --- a/src/metric-spaces.lagda.md +++ b/src/metric-spaces.lagda.md @@ -62,6 +62,7 @@ open import metric-spaces.bounded-distance-decompositions-of-metric-spaces publi open import metric-spaces.cartesian-products-metric-spaces public open import metric-spaces.category-of-metric-spaces-and-isometries public open import metric-spaces.category-of-metric-spaces-and-short-functions public +open import metric-spaces.cauchy-approximations-metric-quotients-of-pseudometric-spaces public open import metric-spaces.cauchy-approximations-metric-spaces public open import metric-spaces.cauchy-approximations-pseudometric-spaces public open import metric-spaces.cauchy-pseudocompletion-of-metric-spaces public @@ -103,6 +104,7 @@ open import metric-spaces.limits-of-sequences-metric-spaces public open import metric-spaces.lipschitz-functions-metric-spaces public open import metric-spaces.locally-constant-functions-metric-spaces public open import metric-spaces.located-metric-spaces public +open import metric-spaces.metric-quotients-of-pseudometric-spaces public open import metric-spaces.metric-space-of-cauchy-approximations-complete-metric-spaces public open import metric-spaces.metric-space-of-cauchy-approximations-metric-spaces public open import metric-spaces.metric-space-of-convergent-cauchy-approximations-metric-spaces public diff --git a/src/metric-spaces/cauchy-approximations-metric-quotients-of-pseudometric-spaces.lagda.md b/src/metric-spaces/cauchy-approximations-metric-quotients-of-pseudometric-spaces.lagda.md new file mode 100644 index 0000000000..13705b93b6 --- /dev/null +++ b/src/metric-spaces/cauchy-approximations-metric-quotients-of-pseudometric-spaces.lagda.md @@ -0,0 +1,358 @@ +# Cauchy approximations in metric quotients of pseudometric spaces + +```agda +{-# OPTIONS --lossy-unification #-} + +module metric-spaces.cauchy-approximations-metric-quotients-of-pseudometric-spaces where +``` + +
Imports + +```agda +open import elementary-number-theory.addition-positive-rational-numbers +open import elementary-number-theory.positive-rational-numbers + +open import foundation.action-on-identifications-functions +open import foundation.binary-relations +open import foundation.binary-transport +open import foundation.contractible-maps +open import foundation.contractible-types +open import foundation.dependent-pair-types +open import foundation.equivalence-classes +open import foundation.equivalences +open import foundation.existential-quantification +open import foundation.fibers-of-maps +open import foundation.function-types +open import foundation.functoriality-dependent-pair-types +open import foundation.homotopies +open import foundation.identity-types +open import foundation.inhabited-subtypes +open import foundation.logical-equivalences +open import foundation.propositional-truncations +open import foundation.propositions +open import foundation.reflecting-maps-equivalence-relations +open import foundation.retractions +open import foundation.sections +open import foundation.set-quotients +open import foundation.sets +open import foundation.subtypes +open import foundation.transport-along-identifications +open import foundation.universal-property-set-quotients +open import foundation.universe-levels + +open import logic.functoriality-existential-quantification + +open import metric-spaces.cauchy-approximations-metric-spaces +open import metric-spaces.cauchy-approximations-pseudometric-spaces +open import metric-spaces.cauchy-pseudocompletion-of-metric-spaces +open import metric-spaces.cauchy-pseudocompletion-of-pseudometric-spaces +open import metric-spaces.complete-metric-spaces +open import metric-spaces.convergent-cauchy-approximations-metric-spaces +open import metric-spaces.equality-of-metric-spaces +open import metric-spaces.extensionality-pseudometric-spaces +open import metric-spaces.functions-metric-spaces +open import metric-spaces.isometries-metric-spaces +open import metric-spaces.isometries-pseudometric-spaces +open import metric-spaces.limits-of-cauchy-approximations-metric-spaces +open import metric-spaces.limits-of-cauchy-approximations-pseudometric-spaces +open import metric-spaces.metric-quotients-of-pseudometric-spaces +open import metric-spaces.metric-spaces +open import metric-spaces.pseudometric-spaces +open import metric-spaces.rational-neighborhood-relations +open import metric-spaces.short-functions-metric-spaces +open import metric-spaces.short-functions-pseudometric-spaces +open import metric-spaces.similarity-of-elements-pseudometric-spaces +``` + +
+ +## Idea + +The pointwise [quotients](foundation.set-quotients.md) of +[Cauchy approximations](metric-spaces.cauchy-approximations-pseudometric-spaces.md) +by the +[similarity relation](metric-spaces.similarity-of-elements-pseudometric-spaces.md) +of the [pseudometric space](metric-spaces.pseudometric-spaces.md) are Cauchy +approximations in the +[metric quotient](metric-spaces.metric-quotients-of-pseudometric-spaces.md). A +Cauchy approximation in the metric quotient of a pseudometric space has a +{{#concept "lift up to similarity" Agda=has-lift-cauchy-approximation-metric-quotient-Pseudometric-Space}} +if it is similar (in the +[Cauchy pseudocompletion](metric-spaces.cauchy-pseudocompletion-of-metric-spaces.md) +of the metric quotient) to the pointwise quotient of +[some](foundation.existential-quantification.md) Cauchy approximation in the +pseudometric space. + +The pointwise quotient of Cauchy approximations preserves +[limits](metric-spaces.limits-of-cauchy-approximations-pseudometric-spaces.md). +The pointwise quotient of a Cauchy approximation has a lift. A Cauchy +approximation that admits a +[limit](metric-spaces.limits-of-cauchy-approximations-pseudometric-spaces.md) +has a lift. If the metric quotient is +[complete](metric-spaces.complete-metric-spaces.md), then all Cauchy +approximations in the metric quotient have a lift. + +## Definitions + +### The pointwise quotient Cauchy approximation of a Cauchy approximation in a pseudometric space + +```agda +module _ + {l1 l2 : Level} (M : Pseudometric-Space l1 l2) + where + + short-map-metric-quotient-cauchy-apprtoximation-Pseudometric-Space : + short-function-Pseudometric-Space + ( cauchy-pseudocompletion-Pseudometric-Space M) + ( cauchy-pseudocompletion-Metric-Space + ( metric-quotient-Pseudometric-Space M)) + short-map-metric-quotient-cauchy-apprtoximation-Pseudometric-Space = + short-map-short-function-cauchy-approximation-Pseudometric-Space + ( M) + ( pseudometric-metric-quotient-Pseudometric-Space M) + ( short-map-metric-quotient-Pseudometric-Space M) + + map-metric-quotient-cauchy-approximation-Pseudometric-Space : + cauchy-approximation-Pseudometric-Space M → + cauchy-approximation-Metric-Space + ( metric-quotient-Pseudometric-Space M) + map-metric-quotient-cauchy-approximation-Pseudometric-Space = + map-short-function-Pseudometric-Space + ( cauchy-pseudocompletion-Pseudometric-Space M) + ( cauchy-pseudocompletion-Metric-Space + ( metric-quotient-Pseudometric-Space M)) + ( short-map-metric-quotient-cauchy-apprtoximation-Pseudometric-Space) + + is-short-map-metric-quotient-cauchy-approximation-Pseudometric-Space : + is-short-function-Pseudometric-Space + ( cauchy-pseudocompletion-Pseudometric-Space M) + ( cauchy-pseudocompletion-Metric-Space + ( metric-quotient-Pseudometric-Space M)) + ( map-metric-quotient-cauchy-approximation-Pseudometric-Space) + is-short-map-metric-quotient-cauchy-approximation-Pseudometric-Space = + is-short-map-short-function-Pseudometric-Space + ( cauchy-pseudocompletion-Pseudometric-Space M) + ( cauchy-pseudocompletion-Metric-Space + ( metric-quotient-Pseudometric-Space M)) + ( short-map-metric-quotient-cauchy-apprtoximation-Pseudometric-Space) +``` + +### Lifts of Cauchy approximations in the quotient metric space up to similarity + +```agda +module _ + { l1 l2 : Level} (A : Pseudometric-Space l1 l2) + ( u : + cauchy-approximation-Metric-Space + ( metric-quotient-Pseudometric-Space A)) + ( v : cauchy-approximation-Pseudometric-Space A) + where + + is-lift-quotient-prop-cauchy-approximation-Pseudometric-Space : + Prop (l1 ⊔ l2) + is-lift-quotient-prop-cauchy-approximation-Pseudometric-Space = + sim-prop-Pseudometric-Space + ( cauchy-pseudocompletion-Pseudometric-Space + ( pseudometric-metric-quotient-Pseudometric-Space A)) + ( u) + ( map-metric-quotient-cauchy-approximation-Pseudometric-Space A v) + + is-lift-quotient-cauchy-approximation-Pseudometric-Space : UU (l1 ⊔ l2) + is-lift-quotient-cauchy-approximation-Pseudometric-Space = + type-Prop is-lift-quotient-prop-cauchy-approximation-Pseudometric-Space + + is-prop-is-lift-quotient-cauchy-approximation-Pseudometric-Space : + is-prop is-lift-quotient-cauchy-approximation-Pseudometric-Space + is-prop-is-lift-quotient-cauchy-approximation-Pseudometric-Space = + is-prop-type-Prop + is-lift-quotient-prop-cauchy-approximation-Pseudometric-Space + +module _ + {l1 l2 : Level} (A : Pseudometric-Space l1 l2) + ( u : + cauchy-approximation-Metric-Space + ( metric-quotient-Pseudometric-Space A)) + where + + has-lift-prop-cauchy-approximation-metric-quotient-Pseudometric-Space : + Prop (l1 ⊔ l2) + has-lift-prop-cauchy-approximation-metric-quotient-Pseudometric-Space = + ∃ ( cauchy-approximation-Pseudometric-Space A) + ( is-lift-quotient-prop-cauchy-approximation-Pseudometric-Space A u) + + has-lift-cauchy-approximation-metric-quotient-Pseudometric-Space : + UU (l1 ⊔ l2) + has-lift-cauchy-approximation-metric-quotient-Pseudometric-Space = + type-Prop + has-lift-prop-cauchy-approximation-metric-quotient-Pseudometric-Space + + is-prop-has-lift-cauchy-approximation-metric-quotient-Pseudometric-Space : + is-prop has-lift-cauchy-approximation-metric-quotient-Pseudometric-Space + is-prop-has-lift-cauchy-approximation-metric-quotient-Pseudometric-Space = + is-prop-type-Prop + has-lift-prop-cauchy-approximation-metric-quotient-Pseudometric-Space +``` + +## Properties + +### The pointwise quotient of Cauchy approximations in the quotient metric space preserves limits + +```agda +module _ + {l1 l2 : Level} (M : Pseudometric-Space l1 l2) + (u : cauchy-approximation-Pseudometric-Space M) + (lim : type-Pseudometric-Space M) + (is-lim : + is-limit-cauchy-approximation-Pseudometric-Space M u lim) + where + + preserves-limit-map-metric-quotient-cauchy-approximation-Pseudometric-Space : + is-limit-cauchy-approximation-Metric-Space + ( metric-quotient-Pseudometric-Space M) + ( map-metric-quotient-cauchy-approximation-Pseudometric-Space M u) + ( map-metric-quotient-Pseudometric-Space M lim) + preserves-limit-map-metric-quotient-cauchy-approximation-Pseudometric-Space + ε δ (x , x∈uε) (y , y∈lim) = + let + lim~y : sim-Pseudometric-Space M lim y + lim~y = + sim-is-in-equivalence-class-quotient-map-set-quotient + ( equivalence-relation-sim-Pseudometric-Space M) + ( lim) + ( y) + ( y∈lim) + + uε~x : + sim-Pseudometric-Space M + ( map-cauchy-approximation-Pseudometric-Space M u ε) + ( x) + uε~x = + sim-is-in-equivalence-class-quotient-map-set-quotient + ( equivalence-relation-sim-Pseudometric-Space M) + ( map-cauchy-approximation-Pseudometric-Space M u ε) + ( x) + ( x∈uε) + in + preserves-neighborhood-sim-Pseudometric-Space + ( M) + ( uε~x) + ( lim~y) + ( ε +ℚ⁺ δ) + ( is-lim ε δ) +``` + +### Pointwise quotients of Cauchy approximations have lifts + +```agda +module _ + {l1 l2 : Level} (A : Pseudometric-Space l1 l2) + (u : cauchy-approximation-Pseudometric-Space A) + where + + has-lift-map-quotient-cauchy-approximation-metric-quotient-Pseudometric-Space : + has-lift-cauchy-approximation-metric-quotient-Pseudometric-Space + ( A) + ( map-metric-quotient-cauchy-approximation-Pseudometric-Space A u) + has-lift-map-quotient-cauchy-approximation-metric-quotient-Pseudometric-Space = + unit-trunc-Prop + ( u , + refl-sim-Pseudometric-Space + ( cauchy-pseudocompletion-Pseudometric-Space + ( pseudometric-metric-quotient-Pseudometric-Space A)) + ( map-metric-quotient-cauchy-approximation-Pseudometric-Space A u)) +``` + +### Convergent Cauchy approximations in the quotient metric space have a lift up to similarity + +```agda +module _ + {l1 l2 : Level} (A : Pseudometric-Space l1 l2) + ( u : + cauchy-approximation-Metric-Space + ( metric-quotient-Pseudometric-Space A)) + ( lim : type-Metric-Space (metric-quotient-Pseudometric-Space A)) + ( is-lim : + is-limit-cauchy-approximation-Metric-Space + ( metric-quotient-Pseudometric-Space A) + ( u) + ( lim)) + where + + lemma-sim-lift-is-limit-cauchy-approximation-metric-quotient-Pseudometric-Space : + (x : type-Pseudometric-Space A) → + (is-in-class-metric-quotient-Pseudometric-Space A lim x) → + is-lift-quotient-cauchy-approximation-Pseudometric-Space + ( A) + ( u) + ( const-cauchy-approximation-Pseudometric-Space A x) + lemma-sim-lift-is-limit-cauchy-approximation-metric-quotient-Pseudometric-Space + x x∈lim = + transitive-sim-Pseudometric-Space + ( cauchy-pseudocompletion-Pseudometric-Space + ( pseudometric-metric-quotient-Pseudometric-Space A)) + ( u) + ( const-cauchy-approximation-Pseudometric-Space + ( pseudometric-metric-quotient-Pseudometric-Space A) + ( lim)) + ( const-cauchy-approximation-Pseudometric-Space + ( pseudometric-metric-quotient-Pseudometric-Space A) + ( map-metric-quotient-Pseudometric-Space A x)) + ( λ d α β → + sim-eq-Pseudometric-Space + ( pseudometric-metric-quotient-Pseudometric-Space A) + ( lim) + ( map-metric-quotient-Pseudometric-Space A x) + ( inv + ( eq-set-quotient-equivalence-class-set-quotient + ( equivalence-relation-sim-Pseudometric-Space A) + ( lim) + ( x∈lim))) + ( α +ℚ⁺ β +ℚ⁺ d)) + ( sim-const-is-limit-cauchy-approximation-Pseudometric-Space + ( pseudometric-metric-quotient-Pseudometric-Space A) + ( u) + ( lim) + ( is-lim)) + +module _ + {l1 l2 : Level} (A : Pseudometric-Space l1 l2) + ( u : + cauchy-approximation-Metric-Space + ( metric-quotient-Pseudometric-Space A)) + where + + has-lift-is-convergent-cauchy-approximation-metric-quotient-Pseudometric-Space : + is-convergent-cauchy-approximation-Metric-Space + ( metric-quotient-Pseudometric-Space A) + ( u) → + has-lift-cauchy-approximation-metric-quotient-Pseudometric-Space A u + has-lift-is-convergent-cauchy-approximation-metric-quotient-Pseudometric-Space + (lim , is-lim) = + map-exists + ( is-lift-quotient-cauchy-approximation-Pseudometric-Space A u) + ( const-cauchy-approximation-Pseudometric-Space A) + ( lemma-sim-lift-is-limit-cauchy-approximation-metric-quotient-Pseudometric-Space + ( A) + ( u) + ( lim) + ( is-lim)) + ( is-inhabited-class-metric-quotient-Pseudometric-Space A lim) +``` + +### If the metric quotient of a pseudometric space is complete, all cauchy approximations have lifts up to similarity + +```agda +module _ + {l1 l2 : Level} (A : Pseudometric-Space l1 l2) + (H : is-complete-Metric-Space (metric-quotient-Pseudometric-Space A)) + (u : cauchy-approximation-Metric-Space (metric-quotient-Pseudometric-Space A)) + where + + has-lift-cauchy-approximation-is-complete-metric-quotient-Pseudometric-Space : + has-lift-cauchy-approximation-metric-quotient-Pseudometric-Space A u + has-lift-cauchy-approximation-is-complete-metric-quotient-Pseudometric-Space = + has-lift-is-convergent-cauchy-approximation-metric-quotient-Pseudometric-Space + ( A) + ( u) + ( H u) +``` diff --git a/src/metric-spaces/cauchy-pseudocompletion-of-pseudometric-spaces.lagda.md b/src/metric-spaces/cauchy-pseudocompletion-of-pseudometric-spaces.lagda.md index 3856b3ea5f..5bc301fcc1 100644 --- a/src/metric-spaces/cauchy-pseudocompletion-of-pseudometric-spaces.lagda.md +++ b/src/metric-spaces/cauchy-pseudocompletion-of-pseudometric-spaces.lagda.md @@ -762,3 +762,99 @@ module _ ( lim-cauchy-approximation-cauchy-pseudocompletion-Pseudometric-Space M , is-isometry-lim-cauchy-approximation-cauchy-pseudocompletion-Pseudometric-Space) ``` + +### The action of short maps on Cauchy approximations is short + +```agda +module _ + {l1 l2 l1' l2' : Level} + (A : Pseudometric-Space l1 l2) (B : Pseudometric-Space l1' l2') + (f : short-function-Pseudometric-Space A B) + where + + is-short-map-short-function-cauchy-approximation-Pseudometric-Space : + is-short-function-Pseudometric-Space + ( cauchy-pseudocompletion-Pseudometric-Space A) + ( cauchy-pseudocompletion-Pseudometric-Space B) + ( map-short-function-cauchy-approximation-Pseudometric-Space A B f) + is-short-map-short-function-cauchy-approximation-Pseudometric-Space + d x y Nxy α β = + is-short-map-short-function-Pseudometric-Space A B f + ( α +ℚ⁺ β +ℚ⁺ d) + ( map-cauchy-approximation-Pseudometric-Space A x α) + ( map-cauchy-approximation-Pseudometric-Space A y β) + ( Nxy α β) + + short-map-short-function-cauchy-approximation-Pseudometric-Space : + short-function-Pseudometric-Space + ( cauchy-pseudocompletion-Pseudometric-Space A) + ( cauchy-pseudocompletion-Pseudometric-Space B) + short-map-short-function-cauchy-approximation-Pseudometric-Space = + ( map-short-function-cauchy-approximation-Pseudometric-Space A B f , + is-short-map-short-function-cauchy-approximation-Pseudometric-Space) +``` + +### The image of a Cauchy approximation in the Cauchy pseudocompletion is convergent + +```agda +module _ + {l1 l2 : Level} (M : Pseudometric-Space l1 l2) + (u : cauchy-approximation-Pseudometric-Space M) + where + + is-limit-map-cauchy-approximation-cauchy-pseudocompletion-Ppseudometric-Space : + is-limit-cauchy-approximation-Pseudometric-Space + ( cauchy-pseudocompletion-Pseudometric-Space M) + ( map-short-function-cauchy-approximation-Pseudometric-Space + ( M) + ( cauchy-pseudocompletion-Pseudometric-Space M) + ( short-map-cauchy-pseudocompletion-Pseudometric-Space M) + ( u)) + ( u) + is-limit-map-cauchy-approximation-cauchy-pseudocompletion-Ppseudometric-Space + ε δ α β = + symmetric-neighborhood-Pseudometric-Space M + ( (α +ℚ⁺ β) +ℚ⁺ (ε +ℚ⁺ δ)) + ( map-cauchy-approximation-Pseudometric-Space M u β) + ( map-cauchy-approximation-Pseudometric-Space M u ε) + ( monotonic-neighborhood-Pseudometric-Space M + ( map-cauchy-approximation-Pseudometric-Space M u β) + ( map-cauchy-approximation-Pseudometric-Space M u ε) + ( β +ℚ⁺ ε) + ( (α +ℚ⁺ β) +ℚ⁺ (ε +ℚ⁺ δ)) + ( preserves-le-add-ℚ + { rational-ℚ⁺ β} + { rational-ℚ⁺ (α +ℚ⁺ β)} + { rational-ℚ⁺ ε} + { rational-ℚ⁺ (ε +ℚ⁺ δ)} + ( le-right-add-ℚ⁺ α β) + ( le-left-add-ℚ⁺ ε δ)) + ( is-cauchy-approximation-map-cauchy-approximation-Pseudometric-Space + ( M) + ( u) + ( β) + ( ε))) + + sim-map-cauchy-approximation-cauchy-pseudocompletion-Pseudometric-Space : + sim-Pseudometric-Space + ( cauchy-pseudocompletion-Pseudometric-Space + ( cauchy-pseudocompletion-Pseudometric-Space M)) + ( map-short-function-cauchy-approximation-Pseudometric-Space + ( M) + ( cauchy-pseudocompletion-Pseudometric-Space M) + ( short-map-cauchy-pseudocompletion-Pseudometric-Space M) + ( u)) + ( map-cauchy-pseudocompletion-Pseudometric-Space + ( cauchy-pseudocompletion-Pseudometric-Space M) + ( u)) + sim-map-cauchy-approximation-cauchy-pseudocompletion-Pseudometric-Space = + sim-const-is-limit-cauchy-approximation-Pseudometric-Space + ( cauchy-pseudocompletion-Pseudometric-Space M) + ( map-short-function-cauchy-approximation-Pseudometric-Space + ( M) + ( cauchy-pseudocompletion-Pseudometric-Space M) + ( short-map-cauchy-pseudocompletion-Pseudometric-Space M) + ( u)) + ( u) + ( is-limit-map-cauchy-approximation-cauchy-pseudocompletion-Ppseudometric-Space) +``` diff --git a/src/metric-spaces/metric-quotients-of-pseudometric-spaces.lagda.md b/src/metric-spaces/metric-quotients-of-pseudometric-spaces.lagda.md new file mode 100644 index 0000000000..ffecd0aafc --- /dev/null +++ b/src/metric-spaces/metric-quotients-of-pseudometric-spaces.lagda.md @@ -0,0 +1,838 @@ +# Metric quotients of pseudometric spaces + +```agda +{-# OPTIONS --lossy-unification #-} + +module metric-spaces.metric-quotients-of-pseudometric-spaces where +``` + +
Imports + +```agda +open import elementary-number-theory.addition-positive-rational-numbers +open import elementary-number-theory.positive-rational-numbers + +open import foundation.action-on-identifications-functions +open import foundation.binary-relations +open import foundation.binary-transport +open import foundation.contractible-maps +open import foundation.contractible-types +open import foundation.dependent-pair-types +open import foundation.equivalence-classes +open import foundation.equivalences +open import foundation.existential-quantification +open import foundation.fibers-of-maps +open import foundation.function-types +open import foundation.functoriality-dependent-pair-types +open import foundation.homotopies +open import foundation.identity-types +open import foundation.inhabited-subtypes +open import foundation.logical-equivalences +open import foundation.propositional-truncations +open import foundation.propositions +open import foundation.reflecting-maps-equivalence-relations +open import foundation.retractions +open import foundation.sections +open import foundation.set-quotients +open import foundation.sets +open import foundation.subtypes +open import foundation.transport-along-identifications +open import foundation.universal-property-set-quotients +open import foundation.universe-levels + +open import logic.functoriality-existential-quantification + +open import metric-spaces.cauchy-approximations-metric-spaces +open import metric-spaces.cauchy-approximations-pseudometric-spaces +open import metric-spaces.convergent-cauchy-approximations-metric-spaces +open import metric-spaces.equality-of-metric-spaces +open import metric-spaces.extensionality-pseudometric-spaces +open import metric-spaces.functions-metric-spaces +open import metric-spaces.isometries-metric-spaces +open import metric-spaces.isometries-pseudometric-spaces +open import metric-spaces.limits-of-cauchy-approximations-metric-spaces +open import metric-spaces.limits-of-cauchy-approximations-pseudometric-spaces +open import metric-spaces.metric-spaces +open import metric-spaces.pseudometric-spaces +open import metric-spaces.rational-neighborhood-relations +open import metric-spaces.short-functions-metric-spaces +open import metric-spaces.short-functions-pseudometric-spaces +open import metric-spaces.similarity-of-elements-pseudometric-spaces +``` + +
+ +## Idea + +The +{{#concept "metric quotient" Disambiguation="of a pseudometric space" Agda=metric-quotient-Pseudometric-Space}} +of a [pseudometric space](metric-spaces.pseudometric-spaces.md) is the +[metric space](metric-spaces.metric-spaces.md) whose points are +[quotient classes](foundation.set-quotients.md) of `M` by the +[similarity relation](metric-spaces.similarity-of-elements-pseudometric-spaces.md) +and [neighborhoods](metric-spaces.rational-neighborhood-relations.md) are +neighborhoods of inhabitants of the quotient classes: two quotient classes `X`, +`Y` are in a `d`-neighborhood if for all `x ∈ X` and `y ∈ Y`, `x` and `y` are +`d`-neighbors in the pseudometric space. + +Any pseudometric space `M` has an +[isometry](metric-spaces.isometries-pseudometric-spaces.md) into its metric +quotient; if `M` is a metric space, this is an +[isometric equivalence](metric-spaces.equality-of-metric-spaces.md). + +Any [short map](metric-spaces.short-functions-pseudometric-spaces.md) (resp. +isometry) from a pseudometric space to a metric space factors uniquely as a +short map (resp. isometry) through the metric quotient of its domain. This is +the +{{#concept "universal property" Disambiguation="of the metric space quotient of a pseudometric space"}} +of the metric space quotient. + +## Definitions + +```agda +module _ + {l1 l2 : Level} + (M : Pseudometric-Space l1 l2) + where + + set-metric-quotient-Pseudometric-Space : Set (l1 ⊔ l2) + set-metric-quotient-Pseudometric-Space = + quotient-Set (equivalence-relation-sim-Pseudometric-Space M) + + type-metric-quotient-Pseudometric-Space : UU (l1 ⊔ l2) + type-metric-quotient-Pseudometric-Space = + type-Set set-metric-quotient-Pseudometric-Space + + subtype-class-metric-quotient-Pseudometric-Space : + (X : type-metric-quotient-Pseudometric-Space) → + subtype l2 (type-Pseudometric-Space M) + subtype-class-metric-quotient-Pseudometric-Space = + subtype-set-quotient + ( equivalence-relation-sim-Pseudometric-Space M) + + is-in-class-metric-quotient-Pseudometric-Space : + (X : type-metric-quotient-Pseudometric-Space) → + type-Pseudometric-Space M → + UU l2 + is-in-class-metric-quotient-Pseudometric-Space = + is-in-equivalence-class-set-quotient + ( equivalence-relation-sim-Pseudometric-Space M) + + type-subtype-metric-quotient-Pseudometric-Space : + (X : type-metric-quotient-Pseudometric-Space) → UU (l1 ⊔ l2) + type-subtype-metric-quotient-Pseudometric-Space X = + type-subtype + ( subtype-class-metric-quotient-Pseudometric-Space X) + + neighborhood-prop-metric-quotient-Pseudometric-Space : + Rational-Neighborhood-Relation + ( l1 ⊔ l2) + ( type-metric-quotient-Pseudometric-Space) + neighborhood-prop-metric-quotient-Pseudometric-Space ε X Y = + Π-Prop + ( type-subtype-metric-quotient-Pseudometric-Space X) + ( λ (x , x∈X) → + Π-Prop + ( type-subtype-metric-quotient-Pseudometric-Space Y) + ( λ (y , y∈Y) → neighborhood-prop-Pseudometric-Space M ε x y)) + + neighborhood-metric-quotient-Pseudometric-Space : + ℚ⁺ → Relation (l1 ⊔ l2) type-metric-quotient-Pseudometric-Space + neighborhood-metric-quotient-Pseudometric-Space ε X Y = + type-Prop (neighborhood-prop-metric-quotient-Pseudometric-Space ε X Y) +``` + +## Properties + +### All quotient classes are inhabited + +```agda +module _ + {l1 l2 : Level} (A : Pseudometric-Space l1 l2) + (x : type-metric-quotient-Pseudometric-Space A) + where + + is-inhabited-class-metric-quotient-Pseudometric-Space : + is-inhabited-subtype + ( subtype-class-metric-quotient-Pseudometric-Space A x) + is-inhabited-class-metric-quotient-Pseudometric-Space = + is-inhabited-subtype-set-quotient + ( equivalence-relation-sim-Pseudometric-Space A) + ( x) +``` + +### The quotient neighborhood relation is reflexive + +```agda +module _ + {l1 l2 : Level} + (M : Pseudometric-Space l1 l2) + where + + abstract + is-reflexive-neighborhood-metric-quotient-Pseudometric-Space : + (d : ℚ⁺) (X : type-metric-quotient-Pseudometric-Space M) → + neighborhood-metric-quotient-Pseudometric-Space M d X X + is-reflexive-neighborhood-metric-quotient-Pseudometric-Space + d X (x , x∈X) (y , y∈X) = + apply-effectiveness-quotient-map + ( equivalence-relation-sim-Pseudometric-Space M) + ( ( eq-set-quotient-equivalence-class-set-quotient + ( equivalence-relation-sim-Pseudometric-Space M) + ( X) + ( x∈X)) ∙ + ( inv + ( eq-set-quotient-equivalence-class-set-quotient + ( equivalence-relation-sim-Pseudometric-Space M) + ( X) + ( y∈X)))) + ( d) +``` + +### The quotient neighborhood relation is symmetric + +```agda +module _ + {l1 l2 : Level} + (M : Pseudometric-Space l1 l2) + where + + abstract + is-symmetric-neighborhood-metric-quotient-Pseudometric-Space : + (d : ℚ⁺) (x y : type-metric-quotient-Pseudometric-Space M) → + neighborhood-metric-quotient-Pseudometric-Space M d x y → + neighborhood-metric-quotient-Pseudometric-Space M d y x + is-symmetric-neighborhood-metric-quotient-Pseudometric-Space + d X Y d⟨X,Y⟩ (y , y∈Y) (x , x∈X) = + symmetric-neighborhood-Pseudometric-Space + ( M) + ( d) + ( x) + ( y) + ( d⟨X,Y⟩ (x , x∈X) (y , y∈Y)) +``` + +### The quotient neighborhood relation is triangular + +```agda +module _ + {l1 l2 : Level} + (M : Pseudometric-Space l1 l2) + (X Y Z : type-metric-quotient-Pseudometric-Space M) + (d₁ d₂ : ℚ⁺) + where + + abstract + is-triangular-neighborhood-metric-quotient-Pseudometric-Space : + neighborhood-metric-quotient-Pseudometric-Space M d₂ Y Z → + neighborhood-metric-quotient-Pseudometric-Space M d₁ X Y → + neighborhood-metric-quotient-Pseudometric-Space M (d₁ +ℚ⁺ d₂) X Z + is-triangular-neighborhood-metric-quotient-Pseudometric-Space + d₂⟨Y,Z⟩ d₁⟨X,Y⟩ (x , x∈X) (z , z∈Z) = + let + open + do-syntax-trunc-Prop + ( neighborhood-prop-Pseudometric-Space M (d₁ +ℚ⁺ d₂) x z) + in do + (y , y∈Y) ← + is-inhabited-subtype-set-quotient + ( equivalence-relation-sim-Pseudometric-Space M) + ( Y) + triangular-neighborhood-Pseudometric-Space + ( M) + ( x) + ( y) + ( z) + ( d₁) + ( d₂) + ( d₂⟨Y,Z⟩ (y , y∈Y) (z , z∈Z)) + ( d₁⟨X,Y⟩ (x , x∈X) (y , y∈Y)) +``` + +### The quotient neighborhood relation is saturated + +```agda +module _ + {l1 l2 : Level} + (M : Pseudometric-Space l1 l2) + where + + abstract + is-saturated-neighborhood-metric-quotient-Pseudometric-Space : + (ε : ℚ⁺) (X Y : type-metric-quotient-Pseudometric-Space M) → + ((δ : ℚ⁺) → + neighborhood-metric-quotient-Pseudometric-Space M (ε +ℚ⁺ δ) X Y) → + neighborhood-metric-quotient-Pseudometric-Space M ε X Y + is-saturated-neighborhood-metric-quotient-Pseudometric-Space + ε X Y H (x , x∈X) (y , y∈Y) = + saturated-neighborhood-Pseudometric-Space M ε x y + ( λ δ → H δ (x , x∈X) (y , y∈Y)) +``` + +### The quotient pseudometric space + +```agda +module _ + {l1 l2 : Level} + (M : Pseudometric-Space l1 l2) + where + + pseudometric-metric-quotient-Pseudometric-Space : + Pseudometric-Space (l1 ⊔ l2) (l1 ⊔ l2) + pseudometric-metric-quotient-Pseudometric-Space = + ( type-metric-quotient-Pseudometric-Space M , + neighborhood-prop-metric-quotient-Pseudometric-Space M , + is-reflexive-neighborhood-metric-quotient-Pseudometric-Space M , + is-symmetric-neighborhood-metric-quotient-Pseudometric-Space M , + is-triangular-neighborhood-metric-quotient-Pseudometric-Space M , + is-saturated-neighborhood-metric-quotient-Pseudometric-Space M) +``` + +### The quotient pseudometric space is tight and extensional + +```agda +module _ + {l1 l2 : Level} + (M : Pseudometric-Space l1 l2) + where + + abstract + is-tight-pseudometric-metric-quotient-Pseudometric-Space : + is-tight-Pseudometric-Space + ( pseudometric-metric-quotient-Pseudometric-Space M) + is-tight-pseudometric-metric-quotient-Pseudometric-Space X Y X~Y = + let + open + do-syntax-trunc-Prop + ( Id-Prop + ( set-metric-quotient-Pseudometric-Space M) + ( X) + ( Y)) + in do + ( x , x∈X) ← + is-inhabited-subtype-set-quotient + ( equivalence-relation-sim-Pseudometric-Space M) + ( X) + + ( y , y∈Y) ← + is-inhabited-subtype-set-quotient + ( equivalence-relation-sim-Pseudometric-Space M) + ( Y) + + eq-set-quotient-sim-element-set-quotient + ( equivalence-relation-sim-Pseudometric-Space M) + ( X) + ( Y) + ( x∈X) + ( y∈Y) + ( λ d → X~Y d (x , x∈X) (y , y∈Y)) + + is-extensional-pseudometric-metric-quotient-Pseudometric-Space : + is-extensional-Pseudometric-Space + ( pseudometric-metric-quotient-Pseudometric-Space M) + is-extensional-pseudometric-metric-quotient-Pseudometric-Space = + is-extensional-is-tight-Pseudometric-Space + ( pseudometric-metric-quotient-Pseudometric-Space M) + ( is-tight-pseudometric-metric-quotient-Pseudometric-Space) +``` + +### The quotient metric space of a pseudometric space + +```agda +module _ + {l1 l2 : Level} + (M : Pseudometric-Space l1 l2) + where + + metric-quotient-Pseudometric-Space : Metric-Space (l1 ⊔ l2) (l1 ⊔ l2) + metric-quotient-Pseudometric-Space = + make-Metric-Space + ( type-metric-quotient-Pseudometric-Space M) + ( neighborhood-prop-metric-quotient-Pseudometric-Space M) + ( is-reflexive-neighborhood-metric-quotient-Pseudometric-Space M) + ( is-symmetric-neighborhood-metric-quotient-Pseudometric-Space M) + ( is-triangular-neighborhood-metric-quotient-Pseudometric-Space M) + ( is-saturated-neighborhood-metric-quotient-Pseudometric-Space M) + ( is-extensional-pseudometric-metric-quotient-Pseudometric-Space M) +``` + +### The mapping from a pseudometric space to its quotient metric space + +```agda +module _ + {l1 l2 : Level} + (M : Pseudometric-Space l1 l2) + where + + map-metric-quotient-Pseudometric-Space : + type-Pseudometric-Space M → type-metric-quotient-Pseudometric-Space M + map-metric-quotient-Pseudometric-Space = + quotient-map (equivalence-relation-sim-Pseudometric-Space M) + + is-in-class-map-quotient-Pseudometric-Space : + (x : type-Pseudometric-Space M) → + is-in-class-metric-quotient-Pseudometric-Space + ( M) + ( map-metric-quotient-Pseudometric-Space x) + ( x) + is-in-class-map-quotient-Pseudometric-Space = + is-in-equivalence-class-quotient-map-set-quotient + ( equivalence-relation-sim-Pseudometric-Space M) + + map-subtype-metric-quotient-Pseudometric-Space : + (x : type-Pseudometric-Space M) → + type-subtype-metric-quotient-Pseudometric-Space M + ( map-metric-quotient-Pseudometric-Space x) + map-subtype-metric-quotient-Pseudometric-Space = + inhabitant-equivalence-class-quotient-map-set-quotient + ( equivalence-relation-sim-Pseudometric-Space M) +``` + +### The mapping from a pseudometric space its quotient metric space is an isometry + +```agda +module _ + {l1 l2 : Level} + (M : Pseudometric-Space l1 l2) + where + + abstract + preserves-neighborhood-map-metric-quotient-Pseudometric-Space : + (d : ℚ⁺) (x y : type-Pseudometric-Space M) → + neighborhood-Pseudometric-Space M d x y → + neighborhood-metric-quotient-Pseudometric-Space + ( M) + ( d) + ( map-metric-quotient-Pseudometric-Space M x) + ( map-metric-quotient-Pseudometric-Space M y) + preserves-neighborhood-map-metric-quotient-Pseudometric-Space + d x y d⟨x,y⟩ (x' , x≈x') (y' , y≈y') = + let + x~x' = + sim-is-in-equivalence-class-quotient-map-set-quotient + ( equivalence-relation-sim-Pseudometric-Space M) + ( x) + ( x') + ( x≈x') + + y~y' = + sim-is-in-equivalence-class-quotient-map-set-quotient + ( equivalence-relation-sim-Pseudometric-Space M) + ( y) + ( y') + ( y≈y') + + in + preserves-neighborhood-right-sim-Pseudometric-Space M y~y' d x' + ( preserves-neighborhood-left-sim-Pseudometric-Space + ( M) + ( x~x') + ( d) + ( y) + ( d⟨x,y⟩)) + + reflects-neighborhood-map-metric-quotient-Pseudometric-Space : + (d : ℚ⁺) (x y : type-Pseudometric-Space M) → + neighborhood-metric-quotient-Pseudometric-Space + ( M) + ( d) + ( map-metric-quotient-Pseudometric-Space M x) + ( map-metric-quotient-Pseudometric-Space M y) → + neighborhood-Pseudometric-Space M d x y + reflects-neighborhood-map-metric-quotient-Pseudometric-Space + d x y Nxy = + Nxy + ( map-subtype-metric-quotient-Pseudometric-Space M x) + ( map-subtype-metric-quotient-Pseudometric-Space M y) + + is-isometry-map-metric-quotient-Pseudometric-Space : + is-isometry-Pseudometric-Space + ( M) + ( pseudometric-metric-quotient-Pseudometric-Space M) + ( map-metric-quotient-Pseudometric-Space M) + is-isometry-map-metric-quotient-Pseudometric-Space d x y = + ( preserves-neighborhood-map-metric-quotient-Pseudometric-Space d x y , + reflects-neighborhood-map-metric-quotient-Pseudometric-Space d x y) +``` + +### The isometry from a pseudometric space to its quotient metric space + +```agda +module _ + {l1 l2 : Level} (M : Pseudometric-Space l1 l2) + where + + isometry-metric-quotient-Pseudometric-Space : + isometry-Pseudometric-Space + ( M) + ( pseudometric-metric-quotient-Pseudometric-Space M) + isometry-metric-quotient-Pseudometric-Space = + ( map-metric-quotient-Pseudometric-Space M , + is-isometry-map-metric-quotient-Pseudometric-Space M) +``` + +### The short map from a pseudometric space to its quotient metric space + +```agda +module _ + {l1 l2 : Level} (M : Pseudometric-Space l1 l2) + where + + short-map-metric-quotient-Pseudometric-Space : + short-function-Pseudometric-Space + ( M) + ( pseudometric-metric-quotient-Pseudometric-Space M) + short-map-metric-quotient-Pseudometric-Space = + short-isometry-Pseudometric-Space + ( M) + ( pseudometric-metric-quotient-Pseudometric-Space M) + ( isometry-metric-quotient-Pseudometric-Space M) +``` + +### The isometric equivalence between a metric space and the quotient metric space of its pseudometric space + +```agda +module _ + {l1 l2 : Level} + (M : Metric-Space l1 l2) + where + + map-metric-quotient-Metric-Space : + type-Metric-Space M → + type-metric-quotient-Pseudometric-Space + ( pseudometric-Metric-Space M) + map-metric-quotient-Metric-Space = + map-metric-quotient-Pseudometric-Space + ( pseudometric-Metric-Space M) + + abstract + is-contr-map-metric-quotient-Metric-Space : + is-contr-map map-metric-quotient-Metric-Space + is-contr-map-metric-quotient-Metric-Space X = + let + open + do-syntax-trunc-Prop + ( is-contr-Prop + ( fiber map-metric-quotient-Metric-Space X)) + in do + ( x , x∈X) ← + is-inhabited-subtype-set-quotient + ( equivalence-relation-sim-Metric-Space M) + ( X) + + ( ( x , + eq-set-quotient-equivalence-class-set-quotient + ( equivalence-relation-sim-Metric-Space M) + ( X) + ( x∈X)) , + ( λ (y , Y=X) → + eq-type-subtype + ( λ z → + Id-Prop + ( set-metric-quotient-Pseudometric-Space + ( pseudometric-Metric-Space M)) + ( map-metric-quotient-Metric-Space z) + ( X)) + ( eq-sim-Metric-Space + ( M) + ( x) + ( y) + ( apply-effectiveness-quotient-map + ( equivalence-relation-sim-Metric-Space M) + ( ( eq-set-quotient-equivalence-class-set-quotient + ( equivalence-relation-sim-Metric-Space M) + ( X) + ( x∈X)) ∙ + ( inv Y=X)))))) + + is-equiv-map-metric-quotient-Metric-Space : + is-equiv map-metric-quotient-Metric-Space + is-equiv-map-metric-quotient-Metric-Space = + is-equiv-is-contr-map + ( is-contr-map-metric-quotient-Metric-Space) + + is-isometry-map-metric-quotient-Metric-Space : + is-isometry-Metric-Space + ( M) + ( metric-quotient-Pseudometric-Space + ( pseudometric-Metric-Space M)) + ( map-metric-quotient-Metric-Space) + is-isometry-map-metric-quotient-Metric-Space = + is-isometry-map-metric-quotient-Pseudometric-Space + ( pseudometric-Metric-Space M) + + isometric-equiv-metric-quotient-Metric-Space' : + isometric-equiv-Metric-Space' + ( M) + ( metric-quotient-Pseudometric-Space + ( pseudometric-Metric-Space M)) + isometric-equiv-metric-quotient-Metric-Space' = + ( map-metric-quotient-Metric-Space , + is-equiv-map-metric-quotient-Metric-Space , + is-isometry-map-metric-quotient-Metric-Space) +``` + +### The construction of the quotient metric space of a pseudometric space is idempotent + +```agda +module _ + {l1 l2 : Level} (M : Pseudometric-Space l1 l2) + where + + is-idempotent-metric-quotient-Pseudometric-Space : + metric-quotient-Pseudometric-Space + ( pseudometric-Metric-Space + ( metric-quotient-Pseudometric-Space M)) = + metric-quotient-Pseudometric-Space M + is-idempotent-metric-quotient-Pseudometric-Space = + inv + ( eq-isometric-equiv-Metric-Space' + ( metric-quotient-Pseudometric-Space M) + ( metric-quotient-Pseudometric-Space + ( pseudometric-Metric-Space + ( metric-quotient-Pseudometric-Space M))) + ( isometric-equiv-metric-quotient-Metric-Space' + ( metric-quotient-Pseudometric-Space M))) +``` + +### The induced short function from the quotient metric space into a metric space + +```agda +module _ + {l1 l2 l1' l2' : Level} + (A : Pseudometric-Space l1 l2) + (B : Metric-Space l1' l2') + (f : short-function-Pseudometric-Space A (pseudometric-Metric-Space B)) + where + + map-short-function-metric-quotient-Pseudometric-space : + type-function-Metric-Space + ( metric-quotient-Pseudometric-Space A) + ( B) + map-short-function-metric-quotient-Pseudometric-space = + inv-precomp-set-quotient + ( equivalence-relation-sim-Pseudometric-Space A) + ( set-Metric-Space B) + ( reflecting-map-short-function-metric-space-Pseudometric-Space A B f) + + htpy-map-short-function-metric-quotient-Pseudometric-Space : + ( ( map-short-function-metric-quotient-Pseudometric-space) ∘ + ( map-metric-quotient-Pseudometric-Space A)) ~ + ( map-short-function-Pseudometric-Space A (pseudometric-Metric-Space B) f) + htpy-map-short-function-metric-quotient-Pseudometric-Space = + is-section-inv-precomp-set-quotient + ( equivalence-relation-sim-Pseudometric-Space A) + ( set-Metric-Space B) + ( reflecting-map-short-function-metric-space-Pseudometric-Space A B f) + + compute-map-short-function-metric-quotient-Pseudometric-Space : + (X : type-metric-quotient-Pseudometric-Space A) → + (x : type-Pseudometric-Space A) → + is-in-class-metric-quotient-Pseudometric-Space A X x → + map-short-function-metric-quotient-Pseudometric-space X = + map-short-function-Pseudometric-Space A (pseudometric-Metric-Space B) f x + compute-map-short-function-metric-quotient-Pseudometric-Space X x x∈X = + tr + ( λ Y → + map-short-function-metric-quotient-Pseudometric-space Y = + map-short-function-Pseudometric-Space + ( A) + ( pseudometric-Metric-Space B) + ( f) + ( x)) + ( eq-set-quotient-equivalence-class-set-quotient + ( equivalence-relation-sim-Pseudometric-Space A) + ( X) + ( x∈X)) + ( htpy-map-short-function-metric-quotient-Pseudometric-Space x) + + abstract + is-short-map-short-function-metric-quotient-Pseudometric-Space : + is-short-function-Metric-Space + ( metric-quotient-Pseudometric-Space A) + ( B) + ( map-short-function-metric-quotient-Pseudometric-space) + is-short-map-short-function-metric-quotient-Pseudometric-Space + d X Y N⟨X,Y⟩ = + let + open + do-syntax-trunc-Prop + ( neighborhood-prop-Metric-Space + ( B) + ( d) + ( map-short-function-metric-quotient-Pseudometric-space X) + ( map-short-function-metric-quotient-Pseudometric-space Y)) + in do + ( x , x∈X) ← + is-inhabited-subtype-set-quotient + ( equivalence-relation-sim-Pseudometric-Space A) + ( X) + ( y , y∈Y) ← + is-inhabited-subtype-set-quotient + ( equivalence-relation-sim-Pseudometric-Space A) + ( Y) + + binary-tr + ( neighborhood-Metric-Space B d) + ( inv + ( compute-map-short-function-metric-quotient-Pseudometric-Space + ( X) + ( x) + ( x∈X))) + ( inv + ( compute-map-short-function-metric-quotient-Pseudometric-Space + ( Y) + ( y) + ( y∈Y))) + ( is-short-map-short-function-Pseudometric-Space + ( A) + ( pseudometric-Metric-Space B) + ( f) + ( d) + ( x) + ( y) + ( N⟨X,Y⟩ (x , x∈X) (y , y∈Y))) + + short-map-short-function-metric-quotient-Pseudometric-Space : + short-function-Metric-Space + ( metric-quotient-Pseudometric-Space A) + ( B) + short-map-short-function-metric-quotient-Pseudometric-Space = + ( map-short-function-metric-quotient-Pseudometric-space , + is-short-map-short-function-metric-quotient-Pseudometric-Space) +``` + +### Induced isometry from the quotient metric space into a metric space + +```agda +module _ + {l1 l2 l1' l2' : Level} + (A : Pseudometric-Space l1 l2) + (B : Metric-Space l1' l2') + (f : isometry-Pseudometric-Space A (pseudometric-Metric-Space B)) + where + + map-isometry-metric-quotient-Pseudometric-Space : + type-function-Metric-Space + ( metric-quotient-Pseudometric-Space A) + ( B) + map-isometry-metric-quotient-Pseudometric-Space = + map-short-function-metric-quotient-Pseudometric-space + ( A) + ( B) + ( short-isometry-Pseudometric-Space + ( A) + ( pseudometric-Metric-Space B) + ( f)) + + htpy-map-isometry-metric-quotient-Pseudometric-Space : + ( ( map-isometry-metric-quotient-Pseudometric-Space) ∘ + ( map-metric-quotient-Pseudometric-Space A)) ~ + ( map-isometry-Pseudometric-Space A (pseudometric-Metric-Space B) f) + htpy-map-isometry-metric-quotient-Pseudometric-Space = + htpy-map-short-function-metric-quotient-Pseudometric-Space + ( A) + ( B) + ( short-isometry-Pseudometric-Space + ( A) + ( pseudometric-Metric-Space B) + ( f)) + + compute-map-isometry-metric-quotient-Pseudometric-Space : + (X : type-metric-quotient-Pseudometric-Space A) → + (x : type-Pseudometric-Space A) → + is-in-class-metric-quotient-Pseudometric-Space A X x → + map-isometry-metric-quotient-Pseudometric-Space X = + map-isometry-Pseudometric-Space + ( A) + ( pseudometric-Metric-Space B) + ( f) + ( x) + compute-map-isometry-metric-quotient-Pseudometric-Space = + compute-map-short-function-metric-quotient-Pseudometric-Space + ( A) + ( B) + ( short-isometry-Pseudometric-Space + ( A) + ( pseudometric-Metric-Space B) + ( f)) + + abstract + preserves-neighborhood-map-isometry-metric-quotient-Pseudometric-Space : + (d : ℚ⁺) → + (x y : type-metric-quotient-Pseudometric-Space A) → + neighborhood-metric-quotient-Pseudometric-Space + ( A) + ( d) + ( x) + ( y) → + neighborhood-Metric-Space + ( B) + ( d) + ( map-isometry-metric-quotient-Pseudometric-Space x) + ( map-isometry-metric-quotient-Pseudometric-Space y) + preserves-neighborhood-map-isometry-metric-quotient-Pseudometric-Space = + is-short-map-short-function-metric-quotient-Pseudometric-Space + ( A) + ( B) + ( short-isometry-Pseudometric-Space + ( A) + ( pseudometric-Metric-Space B) + ( f)) + + reflects-neighborhood-map-isometry-metric-quotient-Pseudometric-Space : + (d : ℚ⁺) → + (x y : type-metric-quotient-Pseudometric-Space A) → + neighborhood-Metric-Space + ( B) + ( d) + ( map-isometry-metric-quotient-Pseudometric-Space x) + ( map-isometry-metric-quotient-Pseudometric-Space y) → + neighborhood-metric-quotient-Pseudometric-Space + ( A) + ( d) + ( x) + ( y) + reflects-neighborhood-map-isometry-metric-quotient-Pseudometric-Space + d X Y N⟨fX,fY⟩ (x , x∈X) (y , y∈Y) = + reflects-neighborhood-map-isometry-Pseudometric-Space + ( A) + ( pseudometric-Metric-Space B) + ( f) + ( d) + ( x) + ( y) + ( binary-tr + ( neighborhood-Metric-Space B d) + ( compute-map-isometry-metric-quotient-Pseudometric-Space X x x∈X) + ( compute-map-isometry-metric-quotient-Pseudometric-Space Y y y∈Y) + ( N⟨fX,fY⟩)) + + is-isometry-map-isometry-metric-quotient-Pseudometric-Space : + is-isometry-Metric-Space + ( metric-quotient-Pseudometric-Space A) + ( B) + ( map-isometry-metric-quotient-Pseudometric-Space) + is-isometry-map-isometry-metric-quotient-Pseudometric-Space d x y = + ( preserves-neighborhood-map-isometry-metric-quotient-Pseudometric-Space + ( d) + ( x) + ( y) , + reflects-neighborhood-map-isometry-metric-quotient-Pseudometric-Space + ( d) + ( x) + ( y)) + + isometry-map-isometry-metric-quotient-Pseudometric-Space : + isometry-Metric-Space + ( metric-quotient-Pseudometric-Space A) + ( B) + isometry-map-isometry-metric-quotient-Pseudometric-Space = + ( map-isometry-metric-quotient-Pseudometric-Space , + is-isometry-map-isometry-metric-quotient-Pseudometric-Space) +``` + +## External links + +- [Metric identification](https://en.wikipedia.org/wiki/Pseudometric_space#Metric_identification) + on pseudometric spaces at Wikipedia