From df4a2e1f3070983332af3d30d4ea7a6cddbb091d Mon Sep 17 00:00:00 2001 From: Louis Wasserman Date: Fri, 12 Jun 2026 17:30:55 -0700 Subject: [PATCH 01/26] Prove it is an Ab --- src/analysis.lagda.md | 4 + ...roximations-metric-abelian-groups.lagda.md | 396 +++++++++++++ ...roximations-metric-abelian-groups.lagda.md | 70 +++ ...completions-metric-abelian-groups.lagda.md | 81 +++ ...ocompletion-metric-abelian-groups.lagda.md | 540 ++++++++++++++++++ src/analysis/metric-abelian-groups.lagda.md | 92 ++- ...quality-positive-rational-numbers.lagda.md | 13 + .../functoriality-set-quotients.lagda.md | 3 +- src/metric-spaces.lagda.md | 3 + ...imations-isometries-metric-spaces.lagda.md | 72 +++ ...imations-short-maps-metric-spaces.lagda.md | 72 +++ ...ns-short-maps-pseudometric-spaces.lagda.md | 84 +++ ...seudocompletions-of-metric-spaces.lagda.md | 55 ++ ...ompletions-of-pseudometric-spaces.lagda.md | 25 + 14 files changed, 1499 insertions(+), 11 deletions(-) create mode 100644 src/analysis/addition-cauchy-approximations-metric-abelian-groups.lagda.md create mode 100644 src/analysis/cauchy-approximations-metric-abelian-groups.lagda.md create mode 100644 src/analysis/cauchy-pseudocompletions-metric-abelian-groups.lagda.md create mode 100644 src/analysis/metric-abelian-group-metric-quotient-cauchy-pseudocompletion-metric-abelian-groups.lagda.md create mode 100644 src/metric-spaces/action-on-cauchy-approximations-isometries-metric-spaces.lagda.md create mode 100644 src/metric-spaces/action-on-cauchy-approximations-short-maps-metric-spaces.lagda.md create mode 100644 src/metric-spaces/action-on-cauchy-approximations-short-maps-pseudometric-spaces.lagda.md diff --git a/src/analysis.lagda.md b/src/analysis.lagda.md index bce22009164..38b2145e149 100644 --- a/src/analysis.lagda.md +++ b/src/analysis.lagda.md @@ -3,11 +3,15 @@ ```agda module analysis where +open import analysis.addition-cauchy-approximations-metric-abelian-groups public open import analysis.alternation-sequences-metric-abelian-groups public +open import analysis.cauchy-approximations-metric-abelian-groups public +open import analysis.cauchy-pseudocompletions-metric-abelian-groups public open import analysis.complete-metric-abelian-groups public open import analysis.convergent-series-complete-metric-abelian-groups public open import analysis.convergent-series-metric-abelian-groups public open import analysis.limits-of-sequences-metric-abelian-groups public +open import analysis.metric-abelian-group-metric-quotient-cauchy-pseudocompletion-metric-abelian-groups public open import analysis.metric-abelian-groups public open import analysis.metric-abelian-groups-of-uniformly-continuous-maps-into-metric-abelian-groups public open import analysis.sequences-metric-abelian-groups public diff --git a/src/analysis/addition-cauchy-approximations-metric-abelian-groups.lagda.md b/src/analysis/addition-cauchy-approximations-metric-abelian-groups.lagda.md new file mode 100644 index 00000000000..340ee0f9d73 --- /dev/null +++ b/src/analysis/addition-cauchy-approximations-metric-abelian-groups.lagda.md @@ -0,0 +1,396 @@ +# Addition of Cauchy approximations in metric abelian groups + +```agda +module analysis.addition-cauchy-approximations-metric-abelian-groups where +``` + +
Imports + +```agda +open import analysis.cauchy-approximations-metric-abelian-groups +open import analysis.cauchy-pseudocompletions-metric-abelian-groups +open import analysis.metric-abelian-groups + +open import elementary-number-theory.addition-positive-rational-numbers +open import elementary-number-theory.positive-rational-numbers +open import elementary-number-theory.strict-inequality-positive-rational-numbers +open import elementary-number-theory.strict-inequality-rational-numbers + +open import foundation.binary-functoriality-set-quotients +open import foundation.dependent-pair-types +open import foundation.function-extensionality +open import foundation.identity-types +open import foundation.logical-equivalences +open import foundation.subtypes +open import foundation.transport-along-identifications +open import foundation.universe-levels + +open import metric-spaces.action-on-cauchy-approximations-isometries-metric-spaces +open import metric-spaces.cauchy-approximations-metric-spaces +open import metric-spaces.cauchy-pseudocompletions-of-metric-spaces +open import metric-spaces.metric-quotients-of-pseudometric-spaces +open import metric-spaces.metric-spaces +open import metric-spaces.similarity-of-elements-pseudometric-spaces +``` + +
+ +## Idea + +[Cauchy approximations](analysis.cauchy-approximations-metric-abelian-groups.md) +in [metric abelian groups](analysis.metric-abelian-groups.md) admit an addition +operation whose properties resemble an +[abelian group](group-theory.abelian-groups.md) with respect to the +[similarity relationship](metric-spaces.similarity-of-elements-pseudometric-spaces.md) +of the +[Cauchy pseudocompletion of the metric abelian group](analysis.cauchy-pseudocompletions-metric-abelian-groups.md). + +## Definition + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + ((x , is-approx-x) (y , is-approx-y) : + cauchy-approximation-Metric-Ab G) + where + + opaque + map-add-cauchy-approximation-Metric-Ab : + ℚ⁺ → type-Metric-Ab G + map-add-cauchy-approximation-Metric-Ab ε = + let (δ , _) = bound-double-le-ℚ⁺ ε in add-Metric-Ab G (x δ) (y δ) + + abstract opaque + unfolding map-add-cauchy-approximation-Metric-Ab + + is-cauchy-approximation-map-add-cauchy-approximation-Metric-Ab : + is-cauchy-approximation-Metric-Ab G map-add-cauchy-approximation-Metric-Ab + is-cauchy-approximation-map-add-cauchy-approximation-Metric-Ab δ ε = + let + (δ' , 2δ'<δ) = bound-double-le-ℚ⁺ δ + (ε' , 2ε'<ε) = bound-double-le-ℚ⁺ ε + in + monotonic-neighborhood-Metric-Ab G + ( add-Metric-Ab G (x δ') (y δ')) + ( add-Metric-Ab G (x ε') (y ε')) + ( (δ' +ℚ⁺ ε') +ℚ⁺ (δ' +ℚ⁺ ε')) + ( δ +ℚ⁺ ε) + ( concat-eq-le-ℚ⁺ + { z = δ +ℚ⁺ ε} + ( interchange-law-add-add-ℚ⁺ δ' ε' δ' ε') + ( preserves-le-add-ℚ 2δ'<δ 2ε'<ε)) + ( neighborhood-add-Metric-Ab + ( G) + ( δ' +ℚ⁺ ε') + ( δ' +ℚ⁺ ε') + ( x δ') + ( x ε') + ( y δ') + ( y ε') + ( is-approx-x δ' ε') + ( is-approx-y δ' ε')) + + add-cauchy-approximation-Metric-Ab : cauchy-approximation-Metric-Ab G + add-cauchy-approximation-Metric-Ab = + ( map-add-cauchy-approximation-Metric-Ab , + is-cauchy-approximation-map-add-cauchy-approximation-Metric-Ab) +``` + +## Properties + +### Addition of Cauchy approximations is a similarity-preserving binary map + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where abstract opaque + + unfolding map-add-cauchy-approximation-Metric-Ab + + preserves-sim-add-cauchy-approximation-Metric-Ab : + preserves-sim-binary-map-equivalence-relation + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( add-cauchy-approximation-Metric-Ab G) + preserves-sim-add-cauchy-approximation-Metric-Ab + {x , is-approx-x} {x' , is-approx-x'} {y , is-approx-y} {y' , is-approx-y'} + x~x' y~y' δ ε θ = + let + (δ' , 2δ'<δ) = bound-double-le-ℚ⁺ δ + (ε' , 2ε'<ε) = bound-double-le-ℚ⁺ ε + (θ' , 2θ'<θ) = bound-double-le-ℚ⁺ θ + in + monotonic-neighborhood-Metric-Ab G + ( add-Metric-Ab G (x ε') (y ε')) + ( add-Metric-Ab G (x' θ') (y' θ')) + ( (ε' +ℚ⁺ θ' +ℚ⁺ δ') +ℚ⁺ (ε' +ℚ⁺ θ' +ℚ⁺ δ')) + ( ε +ℚ⁺ θ +ℚ⁺ δ) + ( concat-eq-le-ℚ⁺ + { z = ε +ℚ⁺ θ +ℚ⁺ δ} + ( equational-reasoning + (ε' +ℚ⁺ θ' +ℚ⁺ δ') +ℚ⁺ (ε' +ℚ⁺ θ' +ℚ⁺ δ') + = ((ε' +ℚ⁺ θ') +ℚ⁺ (ε' +ℚ⁺ θ')) +ℚ⁺ (δ' +ℚ⁺ δ') + by interchange-law-add-add-ℚ⁺ _ _ _ _ + = (ε' +ℚ⁺ ε') +ℚ⁺ (θ' +ℚ⁺ θ') +ℚ⁺ (δ' +ℚ⁺ δ') + by ap-add-ℚ⁺ (interchange-law-add-add-ℚ⁺ ε' θ' ε' θ') refl) + ( preserves-le-add-ℚ + ( preserves-le-add-ℚ 2ε'<ε 2θ'<θ) + ( 2δ'<δ))) + ( neighborhood-add-Metric-Ab + ( G) + ( ε' +ℚ⁺ θ' +ℚ⁺ δ') + ( ε' +ℚ⁺ θ' +ℚ⁺ δ') + ( x ε') + ( x' θ') + ( y ε') + ( y' θ') + ( x~x' δ' ε' θ') + ( y~y' δ' ε' θ')) +``` + +### The addition of two constant Cauchy approximations for `x` and `y` is similar to the constant approximation for `x + y` + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where abstract opaque + + unfolding map-add-cauchy-approximation-Metric-Ab + + sim-add-const-cauchy-approximation-Metric-Ab : + (x y : type-Metric-Ab G) → + sim-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Space + ( metric-space-Metric-Ab G)) + ( add-cauchy-approximation-Metric-Ab G + ( const-cauchy-approximation-Metric-Ab G x) + ( const-cauchy-approximation-Metric-Ab G y)) + ( const-cauchy-approximation-Metric-Ab G (add-Metric-Ab G x y)) + sim-add-const-cauchy-approximation-Metric-Ab x y δ ε θ = + refl-neighborhood-Metric-Ab G (ε +ℚ⁺ θ +ℚ⁺ δ) (add-Metric-Ab G x y) +``` + +### Addition is associative relative to the similarity relation + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + (ax@(x , is-approx-x) ay@(y , is-approx-y) az@(z , is-approx-z) : + cauchy-approximation-Metric-Ab G) + where abstract opaque + + unfolding map-add-cauchy-approximation-Metric-Ab + + sim-associative-add-cauchy-approximation-Metric-Ab : + sim-cauchy-pseudocompletion-Metric-Ab G + ( add-cauchy-approximation-Metric-Ab G + ( add-cauchy-approximation-Metric-Ab G ax ay) + ( az)) + ( add-cauchy-approximation-Metric-Ab G + ( ax) + ( add-cauchy-approximation-Metric-Ab G ay az)) + sim-associative-add-cauchy-approximation-Metric-Ab δ ε θ = + let + (ε' , 2ε'<ε) = bound-double-le-ℚ⁺ ε + (ε'' , 2ε''<ε') = bound-double-le-ℚ⁺ ε' + (θ' , 2θ'<θ) = bound-double-le-ℚ⁺ θ + (θ'' , 2θ''<θ') = bound-double-le-ℚ⁺ θ' + xyz1 = add-Metric-Ab G (add-Metric-Ab G (x ε'') (y ε'')) (z ε') + xyz2 = add-Metric-Ab G (add-Metric-Ab G (x θ') (y θ'')) (z θ'') + in + tr + ( neighborhood-Metric-Ab G (ε +ℚ⁺ θ +ℚ⁺ δ) xyz1) + ( associative-add-Metric-Ab G _ _ _) + ( monotonic-neighborhood-Metric-Ab G + ( xyz1) + ( xyz2) + ( (ε'' +ℚ⁺ θ') +ℚ⁺ (ε'' +ℚ⁺ θ'') +ℚ⁺ (ε' +ℚ⁺ θ'')) + ( ε +ℚ⁺ θ +ℚ⁺ δ) + ( concat-eq-le-ℚ⁺ + { z = ε +ℚ⁺ θ +ℚ⁺ δ} + ( equational-reasoning + (ε'' +ℚ⁺ θ') +ℚ⁺ (ε'' +ℚ⁺ θ'') +ℚ⁺ (ε' +ℚ⁺ θ'') + = ((ε'' +ℚ⁺ ε'') +ℚ⁺ (θ' +ℚ⁺ θ'')) +ℚ⁺ (ε' +ℚ⁺ θ'') + by ap-add-ℚ⁺ (interchange-law-add-add-ℚ⁺ _ _ _ _) refl + = ((ε'' +ℚ⁺ ε'') +ℚ⁺ ε') +ℚ⁺ ((θ' +ℚ⁺ θ'') +ℚ⁺ θ'') + by interchange-law-add-add-ℚ⁺ _ _ _ _ + = ((ε'' +ℚ⁺ ε'') +ℚ⁺ ε') +ℚ⁺ (θ' +ℚ⁺ (θ'' +ℚ⁺ θ'')) + by ap-add-ℚ⁺ refl (associative-add-ℚ⁺ _ _ _)) + ( transitive-le-ℚ⁺ + ( ((ε'' +ℚ⁺ ε'') +ℚ⁺ ε') +ℚ⁺ (θ' +ℚ⁺ (θ'' +ℚ⁺ θ''))) + ( (ε' +ℚ⁺ ε') +ℚ⁺ (θ' +ℚ⁺ θ')) + ( ε +ℚ⁺ θ +ℚ⁺ δ) + ( transitive-le-ℚ⁺ + ( (ε' +ℚ⁺ ε') +ℚ⁺ (θ' +ℚ⁺ θ')) + ( ε +ℚ⁺ θ) + ( ε +ℚ⁺ θ +ℚ⁺ δ) + ( le-left-add-ℚ⁺ (ε +ℚ⁺ θ) δ) + ( preserves-le-add-ℚ 2ε'<ε 2θ'<θ)) + ( preserves-le-add-ℚ + ( preserves-le-left-add-ℚ _ _ _ 2ε''<ε') + ( preserves-le-right-add-ℚ _ _ _ 2θ''<θ')))) + ( neighborhood-add-Metric-Ab G + ( (ε'' +ℚ⁺ θ') +ℚ⁺ (ε'' +ℚ⁺ θ'')) + ( ε' +ℚ⁺ θ'') + ( add-Metric-Ab G (x ε'') (y ε'')) + ( add-Metric-Ab G (x θ') (y θ'')) + ( z ε') + ( z θ'') + ( neighborhood-add-Metric-Ab G + ( ε'' +ℚ⁺ θ') + ( ε'' +ℚ⁺ θ'') + ( x ε'') + ( x θ') + ( y ε'') + ( y θ'') + ( is-approx-x ε'' θ') + ( is-approx-y ε'' θ'')) + ( is-approx-z ε' θ''))) +``` + +### Commutativity of addition + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + (x y : cauchy-approximation-Metric-Ab G) + where abstract opaque + + unfolding map-add-cauchy-approximation-Metric-Ab + + commutative-add-cauchy-approximation-Metric-Ab : + add-cauchy-approximation-Metric-Ab G x y = + add-cauchy-approximation-Metric-Ab G y x + commutative-add-cauchy-approximation-Metric-Ab = + eq-type-subtype + ( is-cauchy-approximation-prop-Metric-Ab G) + ( eq-htpy (λ _ → commutative-add-Metric-Ab G _ _)) +``` + +### Unit laws + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + (ax@(x , is-approx-x) : cauchy-approximation-Metric-Ab G) + where abstract opaque + + unfolding map-add-cauchy-approximation-Metric-Ab + + sim-left-unit-law-add-cauchy-approximation-Metric-Ab : + sim-cauchy-pseudocompletion-Metric-Ab G + ( add-cauchy-approximation-Metric-Ab G + ( zero-cauchy-approximation-Metric-Ab G) + ( ax)) + ( ax) + sim-left-unit-law-add-cauchy-approximation-Metric-Ab δ ε θ = + let (ε' , 2ε'<ε) = bound-double-le-ℚ⁺ ε in + monotonic-neighborhood-Metric-Ab G + ( add-Metric-Ab G (zero-Metric-Ab G) (x ε')) + ( x θ) + ( ε' +ℚ⁺ θ) + ( ε +ℚ⁺ θ +ℚ⁺ δ) + ( transitive-le-ℚ⁺ + ( ε' +ℚ⁺ θ) + ( ε +ℚ⁺ θ) + ( ε +ℚ⁺ θ +ℚ⁺ δ) + ( le-left-add-ℚ⁺ (ε +ℚ⁺ θ) δ) + ( preserves-le-left-add-ℚ _ _ _ (le-modulus-le-double-le-ℚ⁺ ε))) + ( inv-tr + ( λ y → neighborhood-Metric-Ab G (ε' +ℚ⁺ θ) y (x θ)) + ( left-unit-law-add-Metric-Ab G (x ε')) + ( is-approx-x ε' θ)) + + sim-right-unit-law-add-cauchy-approximation-Metric-Ab : + sim-cauchy-pseudocompletion-Metric-Ab G + ( add-cauchy-approximation-Metric-Ab G + ( ax) + ( zero-cauchy-approximation-Metric-Ab G)) + ( ax) + sim-right-unit-law-add-cauchy-approximation-Metric-Ab = + tr + ( λ ay → sim-cauchy-pseudocompletion-Metric-Ab G ay ax) + ( commutative-add-cauchy-approximation-Metric-Ab G + ( zero-cauchy-approximation-Metric-Ab G) + ( ax)) + ( sim-left-unit-law-add-cauchy-approximation-Metric-Ab) +``` + +### Negations of Cauchy approximations + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where + + neg-cauchy-approximation-Metric-Ab : + cauchy-approximation-Metric-Ab G → cauchy-approximation-Metric-Ab G + neg-cauchy-approximation-Metric-Ab = + map-isometry-cauchy-approximation-Metric-Space + ( metric-space-Metric-Ab G) + ( metric-space-Metric-Ab G) + ( isometry-neg-Metric-Ab G) +``` + +### Inverse laws of Cauchy approximations + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + (ax@(x , is-approx-x) : cauchy-approximation-Metric-Ab G) + where abstract opaque + + unfolding map-add-cauchy-approximation-Metric-Ab + + left-inverse-law-add-cauchy-approximation-Metric-Ab : + add-cauchy-approximation-Metric-Ab G + ( neg-cauchy-approximation-Metric-Ab G ax) + ( ax) = + zero-cauchy-approximation-Metric-Ab G + left-inverse-law-add-cauchy-approximation-Metric-Ab = + eq-type-subtype + ( is-cauchy-approximation-prop-Metric-Ab G) + ( eq-htpy (λ _ → left-inverse-law-add-Metric-Ab G _)) + + right-inverse-law-add-cauchy-approximation-Metric-Ab : + add-cauchy-approximation-Metric-Ab G + ( ax) + ( neg-cauchy-approximation-Metric-Ab G ax) = + zero-cauchy-approximation-Metric-Ab G + right-inverse-law-add-cauchy-approximation-Metric-Ab = + eq-type-subtype + ( is-cauchy-approximation-prop-Metric-Ab G) + ( eq-htpy (λ _ → right-inverse-law-add-Metric-Ab G _)) +``` + +### Negations of Cauchy approximations preserve similarity + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where abstract + + preserves-sim-neg-cauchy-approximation-Metric-Ab : + (x y : cauchy-approximation-Metric-Ab G) → + sim-cauchy-pseudocompletion-Metric-Ab G x y → + sim-cauchy-pseudocompletion-Metric-Ab G + ( neg-cauchy-approximation-Metric-Ab G x) + ( neg-cauchy-approximation-Metric-Ab G y) + preserves-sim-neg-cauchy-approximation-Metric-Ab x y = + preserves-sim-isometry-cauchy-pseudocompletion-Metric-Space + ( metric-space-Metric-Ab G) + ( metric-space-Metric-Ab G) + ( isometry-neg-Metric-Ab G) + { x} + { y} +``` diff --git a/src/analysis/cauchy-approximations-metric-abelian-groups.lagda.md b/src/analysis/cauchy-approximations-metric-abelian-groups.lagda.md new file mode 100644 index 00000000000..f93cdc3d811 --- /dev/null +++ b/src/analysis/cauchy-approximations-metric-abelian-groups.lagda.md @@ -0,0 +1,70 @@ +# Cauchy approximations in metric abelian groups + +```agda +module analysis.cauchy-approximations-metric-abelian-groups where +``` + +
Imports + +```agda +open import analysis.metric-abelian-groups + +open import elementary-number-theory.positive-rational-numbers + +open import foundation.subtypes +open import foundation.universe-levels + +open import metric-spaces.cauchy-approximations-metric-spaces +``` + +
+ +## Idea + +A +{{#concept "Cauchy approximation" Disambiguation="in a metric abelian group" Agda=cauchy-approximation-Metric-Ab}} +in a [metric abelian group](analysis.metric-abelian-groups.md) is a +[Cauchy approximation](metric-spaces.cauchy-approximations-metric-spaces.md) in +the underlying [metric space](metric-spaces.metric-spaces.md). + +## Definition + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where + + is-cauchy-approximation-prop-Metric-Ab : subtype l2 (ℚ⁺ → type-Metric-Ab G) + is-cauchy-approximation-prop-Metric-Ab = + is-cauchy-approximation-prop-Metric-Space (metric-space-Metric-Ab G) + + is-cauchy-approximation-Metric-Ab : (ℚ⁺ → type-Metric-Ab G) → UU l2 + is-cauchy-approximation-Metric-Ab = + is-in-subtype is-cauchy-approximation-prop-Metric-Ab + + cauchy-approximation-Metric-Ab : UU (l1 ⊔ l2) + cauchy-approximation-Metric-Ab = + type-subtype is-cauchy-approximation-prop-Metric-Ab +``` + +## Properties + +### Constant maps in metric abelian groups are Cauchy approximations + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where + + const-cauchy-approximation-Metric-Ab : + type-Metric-Ab G → cauchy-approximation-Metric-Ab G + const-cauchy-approximation-Metric-Ab = + const-cauchy-approximation-Metric-Space (metric-space-Metric-Ab G) + + zero-cauchy-approximation-Metric-Ab : + cauchy-approximation-Metric-Ab G + zero-cauchy-approximation-Metric-Ab = + const-cauchy-approximation-Metric-Ab (zero-Metric-Ab G) +``` diff --git a/src/analysis/cauchy-pseudocompletions-metric-abelian-groups.lagda.md b/src/analysis/cauchy-pseudocompletions-metric-abelian-groups.lagda.md new file mode 100644 index 00000000000..3a21460a5c9 --- /dev/null +++ b/src/analysis/cauchy-pseudocompletions-metric-abelian-groups.lagda.md @@ -0,0 +1,81 @@ +# Cauchy pseudocompletions of metric abelian groups + +```agda +module analysis.cauchy-pseudocompletions-metric-abelian-groups where +``` + +
Imports + +```agda +open import analysis.cauchy-approximations-metric-abelian-groups +open import analysis.metric-abelian-groups + +open import foundation.binary-relations +open import foundation.equivalence-relations +open import foundation.identity-types +open import foundation.universe-levels + +open import metric-spaces.cauchy-pseudocompletions-of-metric-spaces +open import metric-spaces.pseudometric-spaces +open import metric-spaces.similarity-of-elements-pseudometric-spaces +``` + +
+ +## Idea + +The +{{#concept "Cauchy pseudocompletion" Disambiguation="of a metric abelian group" Agda=cauchy-pseudocompletion-Metric-Ab}} +of a [metric abelian group](group-theory.metric-abelian-groups.md) is the +[Cauchy pseudocompletion](metric-spaces.cauchy-pseudocompletions-of-metric-spaces.md) +of the underlying [metric space](metric-spaces.metric-spaces.md). + +## Definition + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where + + cauchy-pseudocompletion-Metric-Ab : Pseudometric-Space (l1 ⊔ l2) l2 + cauchy-pseudocompletion-Metric-Ab = + cauchy-pseudocompletion-Metric-Space (metric-space-Metric-Ab G) + + equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab : + equivalence-relation l2 (cauchy-approximation-Metric-Ab G) + equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab = + equivalence-relation-sim-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Ab) + + sim-prop-cauchy-pseudocompletion-Metric-Ab : + Relation-Prop l2 (cauchy-approximation-Metric-Ab G) + sim-prop-cauchy-pseudocompletion-Metric-Ab = + sim-prop-Pseudometric-Space cauchy-pseudocompletion-Metric-Ab + + sim-cauchy-pseudocompletion-Metric-Ab : + Relation l2 (cauchy-approximation-Metric-Ab G) + sim-cauchy-pseudocompletion-Metric-Ab = + sim-Pseudometric-Space cauchy-pseudocompletion-Metric-Ab +``` + +## Properties + +### If two constant Cauchy approximations are similar, they have the same constant + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where abstract + + eq-sim-const-cauchy-approximation-cauchy-pseudocompletion-Metric-Ab : + (x y : type-Metric-Ab G) → + sim-cauchy-pseudocompletion-Metric-Ab G + ( const-cauchy-approximation-Metric-Ab G x) + ( const-cauchy-approximation-Metric-Ab G y) → + x = y + eq-sim-const-cauchy-approximation-cauchy-pseudocompletion-Metric-Ab = + eq-sim-const-cauchy-approximation-cauchy-pseudocompletion-Metric-Space + ( metric-space-Metric-Ab G) +``` diff --git a/src/analysis/metric-abelian-group-metric-quotient-cauchy-pseudocompletion-metric-abelian-groups.lagda.md b/src/analysis/metric-abelian-group-metric-quotient-cauchy-pseudocompletion-metric-abelian-groups.lagda.md new file mode 100644 index 00000000000..12edecbfb38 --- /dev/null +++ b/src/analysis/metric-abelian-group-metric-quotient-cauchy-pseudocompletion-metric-abelian-groups.lagda.md @@ -0,0 +1,540 @@ +# The metric abelian group formed by the metric quotient of Cauchy pseudocompletions of metric abelian groups + +```agda +{-# OPTIONS --lossy-unification #-} + +module analysis.metric-abelian-group-metric-quotient-cauchy-pseudocompletion-metric-abelian-groups where +``` + +
Imports + +```agda +open import analysis.addition-cauchy-approximations-metric-abelian-groups +open import analysis.cauchy-approximations-metric-abelian-groups +open import analysis.cauchy-pseudocompletions-metric-abelian-groups +open import analysis.metric-abelian-groups + +open import elementary-number-theory.addition-positive-rational-numbers + +open import foundation.action-on-identifications-binary-functions +open import foundation.action-on-identifications-functions +open import foundation.binary-functoriality-set-quotients +open import foundation.dependent-pair-types +open import foundation.embeddings +open import foundation.equivalence-relations +open import foundation.functoriality-set-quotients +open import foundation.identity-types +open import foundation.injective-maps +open import foundation.set-quotients +open import foundation.sets +open import foundation.transport-along-identifications +open import foundation.universe-levels + +open import group-theory.abelian-groups +open import group-theory.groups +open import group-theory.monoids +open import group-theory.semigroups + +open import metric-spaces.cauchy-approximations-metric-spaces +open import metric-spaces.cauchy-pseudocompletions-of-metric-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.similarity-of-elements-pseudometric-spaces +``` + +
+ +## Idea + +The [metric quotient](metric-spaces.metric-quotients-of-pseudometric-spaces.md) +of the +[Cauchy pseudocompletion](analysis.cauchy-pseudocompletions-metric-abelian-groups.md) +of a [metric abelian group](analysis.metric-abelian-groups.md) itself forms a +metric abelian group. + +This construction is precisely analogous to the definition of the Cauchy real +numbers and their definition of addition. + +## Definition + +### The metric space of the metric quotient + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where + + metric-quotient-cauchy-pseudocompletion-Metric-Ab : + Metric-Space (l1 ⊔ l2) (l1 ⊔ l2) + metric-quotient-cauchy-pseudocompletion-Metric-Ab = + metric-quotient-Pseudometric-Space (cauchy-pseudocompletion-Metric-Ab G) + + set-metric-quotient-cauchy-pseudocompletion-Metric-Ab : Set (l1 ⊔ l2) + set-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + set-Metric-Space metric-quotient-cauchy-pseudocompletion-Metric-Ab + + type-metric-quotient-cauchy-pseudocompletion-Metric-Ab : UU (l1 ⊔ l2) + type-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + type-Set set-metric-quotient-cauchy-pseudocompletion-Metric-Ab +``` + +### Addition in the metric quotient + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where + + binary-hom-add-cauchy-pseudocompletion-Metric-Ab : + binary-hom-equivalence-relation + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + binary-hom-add-cauchy-pseudocompletion-Metric-Ab = + ( add-cauchy-approximation-Metric-Ab G , + λ {x} {x'} {y} {y'} → + preserves-sim-add-cauchy-approximation-Metric-Ab G {x} {x'} {y} {y'}) + + add-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G → + type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G → + type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + add-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + binary-map-set-quotient + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( binary-hom-add-cauchy-pseudocompletion-Metric-Ab) +``` + +### The embedding of elements of a metric abelian group in the metric quotient of its Cauchy pseudocompletion + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where + + in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + cauchy-approximation-Metric-Ab G → + type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + quotient-map + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + + in-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + type-Metric-Ab G → type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + in-metric-quotient-cauchy-pseudocompletion-Metric-Ab x = + in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( const-cauchy-approximation-Metric-Ab G x) + + abstract + is-injective-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + is-injective in-metric-quotient-cauchy-pseudocompletion-Metric-Ab + is-injective-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab + {x} {y} inx=iny = + eq-sim-const-cauchy-approximation-cauchy-pseudocompletion-Metric-Ab + ( G) + ( x) + ( y) + ( apply-effectiveness-quotient-map + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( inx=iny)) + + is-emb-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + is-emb in-metric-quotient-cauchy-pseudocompletion-Metric-Ab + is-emb-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + is-emb-is-injective + ( is-set-type-Metric-Space + ( metric-quotient-cauchy-pseudocompletion-Metric-Ab G)) + is-injective-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab + + emb-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + type-Metric-Ab G ↪ type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + emb-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + ( in-metric-quotient-cauchy-pseudocompletion-Metric-Ab , + is-emb-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab) + + zero-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + zero-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + in-metric-quotient-cauchy-pseudocompletion-Metric-Ab (zero-Metric-Ab G) +``` + +## Properties + +### The embedding in the metric quotient of the Cauchy pseudocompletion preserves addition + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where abstract + + add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + (x y : cauchy-approximation-Metric-Ab G) → + add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + ( in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( x)) + ( in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( y)) = + in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( add-cauchy-approximation-Metric-Ab G x y) + add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + compute-binary-map-set-quotient + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( binary-hom-add-cauchy-pseudocompletion-Metric-Ab G) + + preserves-add-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + (x y : type-Metric-Ab G) → + add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + ( in-metric-quotient-cauchy-pseudocompletion-Metric-Ab G x) + ( in-metric-quotient-cauchy-pseudocompletion-Metric-Ab G y) = + in-metric-quotient-cauchy-pseudocompletion-Metric-Ab G (add-Metric-Ab G x y) + preserves-add-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab x y = + add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( const-cauchy-approximation-Metric-Ab G x) + ( const-cauchy-approximation-Metric-Ab G y) ∙ + apply-effectiveness-quotient-map' + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( sim-add-const-cauchy-approximation-Metric-Ab G x y) +``` + +### Addition in the metric quotient of the Cauchy pseudocompletion is associative + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where abstract + + associative-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + (x y z : type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) → + add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G x y) + ( z) = + add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + ( x) + ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G y z) + associative-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + triple-induction-set-quotient' + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( λ x y z → + Id-Prop + ( set-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) + ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G x y) + ( z)) + ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + ( x) + ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G y z))) + ( λ x y z → + let + in-approx-G = + in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + _+~G_ = add-cauchy-approximation-Metric-Ab G + _+∙G_ = add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + in + equational-reasoning + (in-approx-G x +∙G in-approx-G y) +∙G in-approx-G z + = in-approx-G (x +~G y) +∙G in-approx-G z + by + ap-binary + ( _+∙G_) + ( add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( x) + ( y)) + ( refl) + = in-approx-G ((x +~G y) +~G z) + by + add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( x +~G y) + ( z) + = in-approx-G (x +~G (y +~G z)) + by + apply-effectiveness-quotient-map' + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab + ( G)) + ( sim-associative-add-cauchy-approximation-Metric-Ab G x y z) + = in-approx-G x +∙G in-approx-G (y +~G z) + by + inv + ( add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( x) + ( y +~G z)) + = in-approx-G x +∙G (in-approx-G y +∙G in-approx-G z) + by + ap-binary + ( _+∙G_) + ( refl) + ( inv + ( add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( y) + ( z)))) +``` + +### Addition in the metric quotient of the Cauchy pseudocompletion is commutative + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where abstract + + commutative-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + (x y : type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) → + add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G x y = + add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G y x + commutative-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + double-induction-set-quotient' + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( λ x y → + Id-Prop + ( set-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) + ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G x y) + ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G y x)) + ( λ x y → + let + in-approx-G = + in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + _+~G_ = add-cauchy-approximation-Metric-Ab G + _+∙G_ = add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + in + equational-reasoning + in-approx-G x +∙G in-approx-G y + = in-approx-G (x +~G y) + by + add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( x) + ( y) + = in-approx-G (y +~G x) + by + ap + ( in-approx-G) + ( commutative-add-cauchy-approximation-Metric-Ab G x y) + = in-approx-G y +∙G in-approx-G x + by + inv + ( add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( y) + ( x))) +``` + +### Unit laws of addition in the metric quotient of the Cauchy pseudocompletion + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where abstract + + left-unit-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + (x : type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) → + add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + ( zero-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) + ( x) = + x + left-unit-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + induction-set-quotient + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( λ x → + Id-Prop + ( set-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) + ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + ( zero-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) + ( x)) + ( x)) + ( λ x → + let + in-approx-G = + in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + _+~G_ = add-cauchy-approximation-Metric-Ab G + _+∙G_ = add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + 0-approx-G = zero-cauchy-approximation-Metric-Ab G + in + equational-reasoning + in-approx-G 0-approx-G +∙G in-approx-G x + = in-approx-G (0-approx-G +~G x) + by + add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( 0-approx-G) + ( x) + = in-approx-G x + by + apply-effectiveness-quotient-map' + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab + ( G)) + ( sim-left-unit-law-add-cauchy-approximation-Metric-Ab G x)) + + right-unit-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + (x : type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) → + add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + ( x) + ( zero-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) = + x + right-unit-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab x = + commutative-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G _ _ ∙ + left-unit-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab x +``` + +### Negation in the metric quotient of the Cauchy pseudocompletion + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where abstract + + hom-neg-cauchy-pseudocompletion-Metric-Ab : + hom-equivalence-relation + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + hom-neg-cauchy-pseudocompletion-Metric-Ab = + ( neg-cauchy-approximation-Metric-Ab G , + preserves-sim-neg-cauchy-approximation-Metric-Ab G _ _) + + neg-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G → + type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + neg-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + map-set-quotient + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( hom-neg-cauchy-pseudocompletion-Metric-Ab) + + abstract + neg-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + (x : cauchy-approximation-Metric-Ab G) → + neg-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( x)) = + in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( neg-cauchy-approximation-Metric-Ab G x) + neg-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + coherence-square-map-set-quotient + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( hom-neg-cauchy-pseudocompletion-Metric-Ab) +``` + +### Inverse laws of addition in the metric quotient of the Cauchy pseudocompletion + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where abstract + + left-inverse-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + (x : type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) → + add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + ( neg-metric-quotient-cauchy-pseudocompletion-Metric-Ab G x) + ( x) = + zero-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + left-inverse-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + induction-set-quotient + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( λ x → + Id-Prop + ( set-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) + ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + ( neg-metric-quotient-cauchy-pseudocompletion-Metric-Ab G x) + ( x)) + ( zero-metric-quotient-cauchy-pseudocompletion-Metric-Ab G)) + ( λ x → + let + in-approx-G = + in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + _+~G_ = add-cauchy-approximation-Metric-Ab G + _+∙G_ = add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + neg-∙G = neg-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + neg-G = neg-cauchy-approximation-Metric-Ab G + 0-approx-G = zero-cauchy-approximation-Metric-Ab G + in + equational-reasoning + neg-∙G (in-approx-G x) +∙G in-approx-G x + = in-approx-G (neg-G x) +∙G in-approx-G x + by + ap-binary + ( _+∙G_) + ( neg-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( x)) + ( refl) + = in-approx-G (neg-G x +~G x) + by + add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( neg-G x) + ( x) + = in-approx-G 0-approx-G + by + ap + ( in-approx-G) + ( left-inverse-law-add-cauchy-approximation-Metric-Ab G x)) + + right-inverse-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + (x : type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) → + add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + ( x) + ( neg-metric-quotient-cauchy-pseudocompletion-Metric-Ab G x) = + zero-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + right-inverse-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab x = + commutative-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G _ _ ∙ + left-inverse-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab x +``` + +### The metric quotient of the Cauchy pseudocompletion forms an abelian group + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where + + semigroup-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + Semigroup (l1 ⊔ l2) + semigroup-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + ( set-metric-quotient-cauchy-pseudocompletion-Metric-Ab G , + add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G , + associative-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) + + is-unital-semigroup-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + is-unital-Semigroup + ( semigroup-metric-quotient-cauchy-pseudocompletion-Metric-Ab) + is-unital-semigroup-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + ( zero-metric-quotient-cauchy-pseudocompletion-Metric-Ab G , + left-unit-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G , + right-unit-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) + + group-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + Group (l1 ⊔ l2) + group-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + ( semigroup-metric-quotient-cauchy-pseudocompletion-Metric-Ab , + is-unital-semigroup-metric-quotient-cauchy-pseudocompletion-Metric-Ab , + neg-metric-quotient-cauchy-pseudocompletion-Metric-Ab G , + left-inverse-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G , + right-inverse-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) + + ab-metric-quotient-cauchy-pseudocompletion-Metric-Ab : Ab (l1 ⊔ l2) + ab-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + ( group-metric-quotient-cauchy-pseudocompletion-Metric-Ab , + commutative-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) +``` diff --git a/src/analysis/metric-abelian-groups.lagda.md b/src/analysis/metric-abelian-groups.lagda.md index bf9a4eaf0c3..661fe40eb4c 100644 --- a/src/analysis/metric-abelian-groups.lagda.md +++ b/src/analysis/metric-abelian-groups.lagda.md @@ -7,6 +7,7 @@ module analysis.metric-abelian-groups 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-binary-functions @@ -17,6 +18,7 @@ open import foundation.dependent-pair-types open import foundation.dependent-products-propositions open import foundation.function-extensionality open import foundation.identity-types +open import foundation.logical-equivalences open import foundation.propositions open import foundation.transport-along-identifications open import foundation.universe-levels @@ -29,8 +31,11 @@ open import metric-spaces.isometries-metric-spaces open import metric-spaces.isometries-pseudometric-spaces open import metric-spaces.metric-spaces open import metric-spaces.modulated-uniformly-continuous-maps-metric-spaces +open import metric-spaces.monotonic-rational-neighborhood-relations open import metric-spaces.pseudometric-spaces open import metric-spaces.rational-neighborhood-relations +open import metric-spaces.reflexive-rational-neighborhood-relations +open import metric-spaces.triangular-rational-neighborhood-relations open import metric-spaces.uniformly-continuous-maps-metric-spaces ``` @@ -89,32 +94,52 @@ module _ ```agda module _ {l1 l2 : Level} (MG : Metric-Ab l1 l2) + (let ab-MG = ab-Metric-Ab MG) where zero-Metric-Ab : type-Metric-Ab MG - zero-Metric-Ab = zero-Ab (ab-Metric-Ab MG) + zero-Metric-Ab = zero-Ab ab-MG add-Metric-Ab : type-Metric-Ab MG → type-Metric-Ab MG → type-Metric-Ab MG - add-Metric-Ab = add-Ab (ab-Metric-Ab MG) + add-Metric-Ab = add-Ab ab-MG add-Metric-Ab' : type-Metric-Ab MG → type-Metric-Ab MG → type-Metric-Ab MG - add-Metric-Ab' = add-Ab' (ab-Metric-Ab MG) + add-Metric-Ab' = add-Ab' ab-MG ap-add-Metric-Ab : {x x' y y' : type-Metric-Ab MG} → x = x' → y = y' → add-Metric-Ab x y = add-Metric-Ab x' y' - ap-add-Metric-Ab = ap-add-Ab (ab-Metric-Ab MG) + ap-add-Metric-Ab = ap-add-Ab ab-MG neg-Metric-Ab : type-Metric-Ab MG → type-Metric-Ab MG - neg-Metric-Ab = neg-Ab (ab-Metric-Ab MG) + neg-Metric-Ab = neg-Ab ab-MG abstract + left-unit-law-add-Metric-Ab : + (x : type-Metric-Ab MG) → add-Metric-Ab zero-Metric-Ab x = x + left-unit-law-add-Metric-Ab = left-unit-law-add-Ab ab-MG + + associative-add-Metric-Ab : + (x y z : type-Metric-Ab MG) → + add-Metric-Ab (add-Metric-Ab x y) z = add-Metric-Ab x (add-Metric-Ab y z) + associative-add-Metric-Ab = associative-add-Ab ab-MG + + left-inverse-law-add-Metric-Ab : + (x : type-Metric-Ab MG) → + add-Metric-Ab (neg-Metric-Ab x) x = zero-Metric-Ab + left-inverse-law-add-Metric-Ab = left-inverse-law-add-Ab ab-MG + + right-inverse-law-add-Metric-Ab : + (x : type-Metric-Ab MG) → + add-Metric-Ab x (neg-Metric-Ab x) = zero-Metric-Ab + right-inverse-law-add-Metric-Ab = right-inverse-law-add-Ab ab-MG + neg-zero-Metric-Ab : neg-Metric-Ab zero-Metric-Ab = zero-Metric-Ab - neg-zero-Metric-Ab = neg-zero-Ab (ab-Metric-Ab MG) + neg-zero-Metric-Ab = neg-zero-Ab ab-MG neg-neg-Metric-Ab : (x : type-Metric-Ab MG) → neg-Metric-Ab (neg-Metric-Ab x) = x - neg-neg-Metric-Ab = neg-neg-Ab (ab-Metric-Ab MG) + neg-neg-Metric-Ab = neg-neg-Ab ab-MG diff-Metric-Ab : type-Metric-Ab MG → type-Metric-Ab MG → type-Metric-Ab MG diff-Metric-Ab x y = add-Metric-Ab x (neg-Metric-Ab y) @@ -122,16 +147,16 @@ module _ ap-diff-Metric-Ab : {x x' y y' : type-Metric-Ab MG} → x = x' → y = y' → diff-Metric-Ab x y = diff-Metric-Ab x' y' - ap-diff-Metric-Ab = ap-right-subtraction-Ab (ab-Metric-Ab MG) + ap-diff-Metric-Ab = ap-right-subtraction-Ab ab-MG commutative-add-Metric-Ab : (x y : type-Metric-Ab MG) → add-Metric-Ab x y = add-Metric-Ab y x - commutative-add-Metric-Ab = commutative-add-Ab (ab-Metric-Ab MG) + commutative-add-Metric-Ab = commutative-add-Ab ab-MG is-identity-right-conjugation-Metric-Ab : (x y : type-Metric-Ab MG) → add-Metric-Ab x (diff-Metric-Ab y x) = y is-identity-right-conjugation-Metric-Ab = - is-identity-right-conjugation-Ab (ab-Metric-Ab MG) + is-identity-right-conjugation-Ab ab-MG ``` ### Metric properties of metric abelian groups @@ -162,6 +187,21 @@ module _ neighborhood-Metric-Ab : ℚ⁺ → Relation l2 (type-Metric-Ab MG) neighborhood-Metric-Ab = neighborhood-Metric-Space metric-space-Metric-Ab + refl-neighborhood-Metric-Ab : + is-reflexive-Rational-Neighborhood-Relation neighborhood-prop-Metric-Ab + refl-neighborhood-Metric-Ab = + refl-neighborhood-Metric-Space metric-space-Metric-Ab + + monotonic-neighborhood-Metric-Ab : + is-monotonic-Rational-Neighborhood-Relation neighborhood-prop-Metric-Ab + monotonic-neighborhood-Metric-Ab = + monotonic-neighborhood-Metric-Space metric-space-Metric-Ab + + triangular-neighborhood-Metric-Ab : + is-triangular-Rational-Neighborhood-Relation neighborhood-prop-Metric-Ab + triangular-neighborhood-Metric-Ab = + triangular-neighborhood-Metric-Space metric-space-Metric-Ab + is-isometry-add-Metric-Ab : (x : type-Metric-Ab MG) → is-isometry-Metric-Space @@ -253,3 +293,35 @@ module _ ( metric-space-Metric-Ab G) ( modulated-uniformly-continuous-map-add-pair-Metric-Ab) ``` + +### Neighborhoods of sums in metric abelian groups + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + (dxx' dyy' : ℚ⁺) + (x x' y y' : type-Metric-Ab G) + where abstract + + neighborhood-add-Metric-Ab : + neighborhood-Metric-Ab G dxx' x x' → + neighborhood-Metric-Ab G dyy' y y' → + neighborhood-Metric-Ab G + ( dxx' +ℚ⁺ dyy') + ( add-Metric-Ab G x y) + ( add-Metric-Ab G x' y') + neighborhood-add-Metric-Ab Nxx' Nyy' = + triangular-neighborhood-Metric-Ab G + ( add-Metric-Ab G x y) + ( add-Metric-Ab G x' y) + ( add-Metric-Ab G x' y') + ( dxx') + ( dyy') + ( forward-implication + ( is-isometry-add-Metric-Ab G x' dyy' y y') + ( Nyy')) + ( forward-implication + ( is-isometry-add-Metric-Ab' G y dxx' x x') + ( Nxx')) +``` diff --git a/src/elementary-number-theory/strict-inequality-positive-rational-numbers.lagda.md b/src/elementary-number-theory/strict-inequality-positive-rational-numbers.lagda.md index 4e2a1657a36..4ca8e619ac0 100644 --- a/src/elementary-number-theory/strict-inequality-positive-rational-numbers.lagda.md +++ b/src/elementary-number-theory/strict-inequality-positive-rational-numbers.lagda.md @@ -15,7 +15,9 @@ open import elementary-number-theory.strict-inequality-rational-numbers open import foundation.binary-relations open import foundation.dependent-pair-types open import foundation.function-types +open import foundation.identity-types open import foundation.propositions +open import foundation.transport-along-identifications open import foundation.universe-levels open import order-theory.strict-preorders @@ -64,6 +66,17 @@ leq-le-ℚ⁺ : {x y : ℚ⁺} → le-ℚ⁺ x y → leq-ℚ⁺ x y leq-le-ℚ⁺ {x} {y} = leq-le-ℚ {rational-ℚ⁺ x} {rational-ℚ⁺ y} ``` +### Concatenation of equality and strict inequality + +```agda +module _ + {x y z : ℚ⁺} + where abstract + + concat-eq-le-ℚ⁺ : x = y → le-ℚ⁺ y z → le-ℚ⁺ x z + concat-eq-le-ℚ⁺ = inv-tr (λ w → le-ℚ⁺ w z) +``` + ### The strictly preordered set of positive rational numbers ```agda diff --git a/src/foundation/functoriality-set-quotients.lagda.md b/src/foundation/functoriality-set-quotients.lagda.md index 31b756d2f8c..eaf92db532a 100644 --- a/src/foundation/functoriality-set-quotients.lagda.md +++ b/src/foundation/functoriality-set-quotients.lagda.md @@ -41,7 +41,8 @@ open import foundation-core.torsorial-type-families ## Idea -Set quotients act functorially on types equipped with equivalence relations. +[Set quotients](foundation.set-quotients.md) act functorially on types equipped +with [equivalence relations](foundation.equivalence-relations.md). ## Definition diff --git a/src/metric-spaces.lagda.md b/src/metric-spaces.lagda.md index 89f28adc578..5cdbdf07905 100644 --- a/src/metric-spaces.lagda.md +++ b/src/metric-spaces.lagda.md @@ -62,6 +62,9 @@ metric space, `N d₂ x y` [or](foundation.disjunction.md) module metric-spaces where open import metric-spaces.accumulation-points-subsets-located-metric-spaces public +open import metric-spaces.action-on-cauchy-approximations-isometries-metric-spaces public +open import metric-spaces.action-on-cauchy-approximations-short-maps-metric-spaces public +open import metric-spaces.action-on-cauchy-approximations-short-maps-pseudometric-spaces public open import metric-spaces.action-on-cauchy-sequences-short-maps-metric-spaces public open import metric-spaces.action-on-cauchy-sequences-uniformly-continuous-maps-metric-spaces public open import metric-spaces.action-on-convergent-sequences-modulated-uniformly-continuous-maps-metric-spaces public diff --git a/src/metric-spaces/action-on-cauchy-approximations-isometries-metric-spaces.lagda.md b/src/metric-spaces/action-on-cauchy-approximations-isometries-metric-spaces.lagda.md new file mode 100644 index 00000000000..86ed632d424 --- /dev/null +++ b/src/metric-spaces/action-on-cauchy-approximations-isometries-metric-spaces.lagda.md @@ -0,0 +1,72 @@ +# The action on Cauchy approximations of isometries on metric spaces + +```agda +module metric-spaces.action-on-cauchy-approximations-isometries-metric-spaces where +``` + +
Imports + +```agda +open import foundation.functoriality-set-quotients +open import foundation.universe-levels + +open import metric-spaces.action-on-cauchy-approximations-short-maps-metric-spaces +open import metric-spaces.cauchy-approximations-metric-spaces +open import metric-spaces.cauchy-pseudocompletions-of-metric-spaces +open import metric-spaces.isometries-metric-spaces +open import metric-spaces.metric-spaces +``` + +
+ +## Idea + +The action of [isometries](metric-spaces.isometries-metric-spaces.md) on +[metric spaces](metric-spaces.metric-spaces.md) preserves +[Cauchy approximations](metric-spaces.cauchy-approximations-metric-spaces.md). + +## Definition + +```agda +module _ + {l1 l2 l3 l4 : Level} + (X : Metric-Space l1 l2) + (Y : Metric-Space l3 l4) + (f : isometry-Metric-Space X Y) + where + + map-isometry-cauchy-approximation-Metric-Space : + cauchy-approximation-Metric-Space X → + cauchy-approximation-Metric-Space Y + map-isometry-cauchy-approximation-Metric-Space = + map-short-map-cauchy-approximation-Metric-Space + ( X) + ( Y) + ( short-map-isometry-Metric-Space X Y f) +``` + +## Properties + +### Isometries preserve similarity in the Cauchy pseudocompletion of a metric space + +```agda +module _ + {l1 l2 l3 l4 : Level} + (X : Metric-Space l1 l2) + (Y : Metric-Space l3 l4) + (f : isometry-Metric-Space X Y) + where abstract + + preserves-sim-isometry-cauchy-pseudocompletion-Metric-Space : + preserves-sim-equivalence-relation + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Space X) + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Space Y) + ( map-isometry-cauchy-approximation-Metric-Space X Y f) + preserves-sim-isometry-cauchy-pseudocompletion-Metric-Space {x} {y} = + preserves-sim-short-map-cauchy-pseudocompletion-Metric-Space + ( X) + ( Y) + ( short-map-isometry-Metric-Space X Y f) + { x} + { y} +``` diff --git a/src/metric-spaces/action-on-cauchy-approximations-short-maps-metric-spaces.lagda.md b/src/metric-spaces/action-on-cauchy-approximations-short-maps-metric-spaces.lagda.md new file mode 100644 index 00000000000..bc5271a88d0 --- /dev/null +++ b/src/metric-spaces/action-on-cauchy-approximations-short-maps-metric-spaces.lagda.md @@ -0,0 +1,72 @@ +# The action on Cauchy approximations of short maps in metric spaces + +```agda +module metric-spaces.action-on-cauchy-approximations-short-maps-metric-spaces where +``` + +
Imports + +```agda +open import foundation.functoriality-set-quotients +open import foundation.universe-levels + +open import metric-spaces.action-on-cauchy-approximations-short-maps-pseudometric-spaces +open import metric-spaces.cauchy-approximations-metric-spaces +open import metric-spaces.cauchy-pseudocompletions-of-metric-spaces +open import metric-spaces.metric-spaces +open import metric-spaces.short-maps-metric-spaces +``` + +
+ +## Idea + +The action of [short maps](metric-spaces.short-maps-metric-spaces.md) on +[metric spaces](metric-spaces.metric-spaces.md) preserves +[Cauchy approximations](metric-spaces.cauchy-approximations-metric-spaces.md). + +## Definition + +```agda +module _ + {l1 l2 l3 l4 : Level} + (X : Metric-Space l1 l2) + (Y : Metric-Space l3 l4) + (f : short-map-Metric-Space X Y) + where + + map-short-map-cauchy-approximation-Metric-Space : + cauchy-approximation-Metric-Space X → + cauchy-approximation-Metric-Space Y + map-short-map-cauchy-approximation-Metric-Space = + map-short-map-cauchy-approximation-Pseudometric-Space + ( pseudometric-Metric-Space X) + ( pseudometric-Metric-Space Y) + ( f) +``` + +## Properties + +### Short maps preserve similarity in the Cauchy pseudocompletion of a pseudometric space + +```agda +module _ + {l1 l2 l3 l4 : Level} + (X : Metric-Space l1 l2) + (Y : Metric-Space l3 l4) + (f : short-map-Metric-Space X Y) + where abstract + + preserves-sim-short-map-cauchy-pseudocompletion-Metric-Space : + preserves-sim-equivalence-relation + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Space X) + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Space Y) + ( map-short-map-cauchy-approximation-Metric-Space X Y f) + preserves-sim-short-map-cauchy-pseudocompletion-Metric-Space {x} {y} = + preserves-sim-short-map-cauchy-pseudocompletion-Pseudometric-Space + ( pseudometric-Metric-Space X) + ( pseudometric-Metric-Space Y) + ( f) + { x} + { y} +``` diff --git a/src/metric-spaces/action-on-cauchy-approximations-short-maps-pseudometric-spaces.lagda.md b/src/metric-spaces/action-on-cauchy-approximations-short-maps-pseudometric-spaces.lagda.md new file mode 100644 index 00000000000..6ddcdb67309 --- /dev/null +++ b/src/metric-spaces/action-on-cauchy-approximations-short-maps-pseudometric-spaces.lagda.md @@ -0,0 +1,84 @@ +# The action on Cauchy approximations of short maps in pseudometric spaces + +```agda +module metric-spaces.action-on-cauchy-approximations-short-maps-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.dependent-pair-types +open import foundation.functoriality-set-quotients +open import foundation.universe-levels + +open import metric-spaces.cauchy-approximations-pseudometric-spaces +open import metric-spaces.cauchy-pseudocompletions-of-pseudometric-spaces +open import metric-spaces.pseudometric-spaces +open import metric-spaces.short-maps-pseudometric-spaces +``` + +
+ +## Idea + +The action of [short maps](metric-spaces.short-maps-pseudometric-spaces.md) on +[pseudometric spaces](metric-spaces.pseudometric-spaces.md) preserves +[Cauchy approximations](metric-spaces.cauchy-approximations-pseudometric-spaces.md). + +## Definition + +```agda +module _ + {l1 l2 l3 l4 : Level} + (X : Pseudometric-Space l1 l2) + (Y : Pseudometric-Space l3 l4) + (f@(map-f , is-short-f) : short-map-Pseudometric-Space X Y) + (x@(map-x , is-approx-x) : cauchy-approximation-Pseudometric-Space X) + where + + map-cauchy-approximation-map-short-map-cauchy-approximation-Pseudometric-Space : + ℚ⁺ → type-Pseudometric-Space Y + map-cauchy-approximation-map-short-map-cauchy-approximation-Pseudometric-Space + ε = + map-f (map-x ε) + + abstract + is-cauchy-approximation-map-short-map-cauchy-approximation-Pseudometric-Space : + is-cauchy-approximation-Pseudometric-Space + ( Y) + ( map-cauchy-approximation-map-short-map-cauchy-approximation-Pseudometric-Space) + is-cauchy-approximation-map-short-map-cauchy-approximation-Pseudometric-Space + δ ε = + is-short-f (δ +ℚ⁺ ε) (map-x δ) (map-x ε) (is-approx-x δ ε) + + map-short-map-cauchy-approximation-Pseudometric-Space : + cauchy-approximation-Pseudometric-Space Y + map-short-map-cauchy-approximation-Pseudometric-Space = + ( map-cauchy-approximation-map-short-map-cauchy-approximation-Pseudometric-Space , + is-cauchy-approximation-map-short-map-cauchy-approximation-Pseudometric-Space) +``` + +## Properties + +### Short maps preserve similarity in the Cauchy pseudocompletion of a pseudometric space + +```agda +module _ + {l1 l2 l3 l4 : Level} + (X : Pseudometric-Space l1 l2) + (Y : Pseudometric-Space l3 l4) + (f@(map-f , is-short-f) : short-map-Pseudometric-Space X Y) + where abstract + + preserves-sim-short-map-cauchy-pseudocompletion-Pseudometric-Space : + preserves-sim-equivalence-relation + ( equivalence-relation-sim-cauchy-pseudocompletion-Pseudometric-Space X) + ( equivalence-relation-sim-cauchy-pseudocompletion-Pseudometric-Space Y) + ( map-short-map-cauchy-approximation-Pseudometric-Space X Y f) + preserves-sim-short-map-cauchy-pseudocompletion-Pseudometric-Space + {x , is-approx-x} {y , is-approx-y} x~y δ ε θ = + is-short-f (ε +ℚ⁺ θ +ℚ⁺ δ) (x ε) (y θ) (x~y δ ε θ) +``` diff --git a/src/metric-spaces/cauchy-pseudocompletions-of-metric-spaces.lagda.md b/src/metric-spaces/cauchy-pseudocompletions-of-metric-spaces.lagda.md index b434d07f104..edb2a44f4f2 100644 --- a/src/metric-spaces/cauchy-pseudocompletions-of-metric-spaces.lagda.md +++ b/src/metric-spaces/cauchy-pseudocompletions-of-metric-spaces.lagda.md @@ -13,6 +13,7 @@ open import elementary-number-theory.positive-rational-numbers open import foundation.action-on-identifications-functions open import foundation.binary-relations open import foundation.dependent-pair-types +open import foundation.equivalence-relations open import foundation.function-types open import foundation.homotopies open import foundation.identity-types @@ -253,3 +254,57 @@ module _ isometry-lim-cauchy-approximation-cauchy-pseudocompletion-Pseudometric-Space ( pseudometric-Metric-Space M) ``` + +### The similarity relation in a Cauchy pseudocompletion + +```agda +module _ + {l1 l2 : Level} (M : Metric-Space l1 l2) + where + + equivalence-relation-sim-cauchy-pseudocompletion-Metric-Space : + equivalence-relation l2 (cauchy-approximation-Metric-Space M) + equivalence-relation-sim-cauchy-pseudocompletion-Metric-Space = + equivalence-relation-sim-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Space M) + + sim-prop-cauchy-pseudocompletion-Metric-Space : + Relation-Prop l2 (cauchy-approximation-Metric-Space M) + sim-prop-cauchy-pseudocompletion-Metric-Space = + sim-prop-Pseudometric-Space (cauchy-pseudocompletion-Metric-Space M) + + sim-cauchy-pseudocompletion-Metric-Space : + Relation l2 (cauchy-approximation-Metric-Space M) + sim-cauchy-pseudocompletion-Metric-Space = + type-Relation-Prop sim-prop-cauchy-pseudocompletion-Metric-Space +``` + +### If two constant Cauchy approximations are similar, they have the same constant + +```agda +module _ + {l1 l2 : Level} (M : Metric-Space l1 l2) + where abstract + + eq-sim-const-cauchy-approximation-cauchy-pseudocompletion-Metric-Space : + (x y : type-Metric-Space M) → + sim-cauchy-pseudocompletion-Metric-Space M + ( const-cauchy-approximation-Metric-Space M x) + ( const-cauchy-approximation-Metric-Space M y) → + x = y + eq-sim-const-cauchy-approximation-cauchy-pseudocompletion-Metric-Space + x y cx~cy = + eq-sim-Metric-Space + ( M) + ( x) + ( y) + ( λ ε → + let + (ε12 , ε3 , ε12+ε3=ε) = split-ℚ⁺ ε + (ε1 , ε2 , ε1+ε2=ε12) = split-ℚ⁺ ε12 + in + tr + ( λ d → neighborhood-Metric-Space M d x y) + ( ap-add-ℚ⁺ ε1+ε2=ε12 refl ∙ ε12+ε3=ε) + ( cx~cy ε3 ε1 ε2)) +``` diff --git a/src/metric-spaces/cauchy-pseudocompletions-of-pseudometric-spaces.lagda.md b/src/metric-spaces/cauchy-pseudocompletions-of-pseudometric-spaces.lagda.md index 7b9c060eed8..205625ab962 100644 --- a/src/metric-spaces/cauchy-pseudocompletions-of-pseudometric-spaces.lagda.md +++ b/src/metric-spaces/cauchy-pseudocompletions-of-pseudometric-spaces.lagda.md @@ -19,6 +19,7 @@ open import foundation.action-on-identifications-functions open import foundation.binary-relations open import foundation.dependent-pair-types open import foundation.dependent-products-propositions +open import foundation.equivalence-relations open import foundation.function-types open import foundation.identity-types open import foundation.propositions @@ -279,6 +280,30 @@ module _ is-saturated-neighborhood-cauchy-pseudocompletion-Pseudometric-Space M) ``` +### The similarity equivalence relation in the Cauchy pseudocompletion of a pseudometric space + +```agda +module _ + {l1 l2 : Level} (M : Pseudometric-Space l1 l2) + where + + equivalence-relation-sim-cauchy-pseudocompletion-Pseudometric-Space : + equivalence-relation l2 (cauchy-approximation-Pseudometric-Space M) + equivalence-relation-sim-cauchy-pseudocompletion-Pseudometric-Space = + equivalence-relation-sim-Pseudometric-Space + ( cauchy-pseudocompletion-Pseudometric-Space M) + + sim-prop-cauchy-pseudocompletion-Pseudometric-Space : + Relation-Prop l2 (cauchy-approximation-Pseudometric-Space M) + sim-prop-cauchy-pseudocompletion-Pseudometric-Space = + sim-prop-Pseudometric-Space (cauchy-pseudocompletion-Pseudometric-Space M) + + sim-cauchy-pseudocompletion-Pseudometric-Space : + Relation l2 (cauchy-approximation-Pseudometric-Space M) + sim-cauchy-pseudocompletion-Pseudometric-Space = + sim-Pseudometric-Space (cauchy-pseudocompletion-Pseudometric-Space M) +``` + ### The isometry from a pseudometric space to its Cauchy pseudocompletion ```agda From 9ef6bc216e88f373fee7ec9570eb34edecbfca5c Mon Sep 17 00:00:00 2001 From: Louis Wasserman Date: Sat, 13 Jun 2026 14:09:58 -0700 Subject: [PATCH 02/26] Progress --- config/codespell-ignore.txt | 1 + src/analysis.lagda.md | 1 + ...ocompletion-metric-abelian-groups.lagda.md | 562 +++++++++++++++ ...roximations-metric-abelian-groups.lagda.md | 74 +- ...completions-metric-abelian-groups.lagda.md | 13 + ...ocompletion-metric-abelian-groups.lagda.md | 643 +++++------------- src/analysis/metric-abelian-groups.lagda.md | 65 +- src/metric-spaces.lagda.md | 2 +- ...imations-isometries-metric-spaces.lagda.md | 36 +- ...ns-isometries-pseudometric-spaces.lagda.md | 102 +++ ...imations-short-maps-metric-spaces.lagda.md | 72 -- ...ns-short-maps-pseudometric-spaces.lagda.md | 42 +- 12 files changed, 1027 insertions(+), 586 deletions(-) create mode 100644 src/analysis/abelian-group-metric-quotient-cauchy-pseudocompletion-metric-abelian-groups.lagda.md create mode 100644 src/metric-spaces/action-on-cauchy-approximations-isometries-pseudometric-spaces.lagda.md delete mode 100644 src/metric-spaces/action-on-cauchy-approximations-short-maps-metric-spaces.lagda.md diff --git a/config/codespell-ignore.txt b/config/codespell-ignore.txt index 79a8f895b86..e060a3a5f41 100644 --- a/config/codespell-ignore.txt +++ b/config/codespell-ignore.txt @@ -1,3 +1,4 @@ +Nd Tim blacklist couldn diff --git a/src/analysis.lagda.md b/src/analysis.lagda.md index 38b2145e149..6a619f132c2 100644 --- a/src/analysis.lagda.md +++ b/src/analysis.lagda.md @@ -3,6 +3,7 @@ ```agda module analysis where +open import analysis.abelian-group-metric-quotient-cauchy-pseudocompletion-metric-abelian-groups public open import analysis.addition-cauchy-approximations-metric-abelian-groups public open import analysis.alternation-sequences-metric-abelian-groups public open import analysis.cauchy-approximations-metric-abelian-groups public diff --git a/src/analysis/abelian-group-metric-quotient-cauchy-pseudocompletion-metric-abelian-groups.lagda.md b/src/analysis/abelian-group-metric-quotient-cauchy-pseudocompletion-metric-abelian-groups.lagda.md new file mode 100644 index 00000000000..db37e3e37b8 --- /dev/null +++ b/src/analysis/abelian-group-metric-quotient-cauchy-pseudocompletion-metric-abelian-groups.lagda.md @@ -0,0 +1,562 @@ +# The abelian group of the metric quotient of Cauchy pseudocompletions of metric abelian groups + +```agda +{-# OPTIONS --lossy-unification #-} + +module analysis.abelian-group-metric-quotient-cauchy-pseudocompletion-metric-abelian-groups where +``` + +
Imports + +```agda +open import analysis.addition-cauchy-approximations-metric-abelian-groups +open import analysis.cauchy-approximations-metric-abelian-groups +open import analysis.cauchy-pseudocompletions-metric-abelian-groups +open import analysis.metric-abelian-groups + +open import elementary-number-theory.addition-positive-rational-numbers +open import elementary-number-theory.positive-rational-numbers + +open import foundation.action-on-identifications-binary-functions +open import foundation.action-on-identifications-functions +open import foundation.binary-functoriality-set-quotients +open import foundation.binary-relations +open import foundation.binary-transport +open import foundation.dependent-pair-types +open import foundation.embeddings +open import foundation.equivalence-relations +open import foundation.functoriality-set-quotients +open import foundation.identity-types +open import foundation.injective-maps +open import foundation.propositional-truncations +open import foundation.set-quotients +open import foundation.sets +open import foundation.transport-along-identifications +open import foundation.universe-levels + +open import group-theory.abelian-groups +open import group-theory.groups +open import group-theory.monoids +open import group-theory.semigroups + +open import metric-spaces.cauchy-approximations-metric-spaces +open import metric-spaces.cauchy-pseudocompletions-of-metric-spaces +open import metric-spaces.isometries-metric-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.similarity-of-elements-pseudometric-spaces +open import metric-spaces.unit-map-metric-quotients-of-pseudometric-spaces +``` + +
+ +## Idea + +The [metric quotient](metric-spaces.metric-quotients-of-pseudometric-spaces.md) +of the +[Cauchy pseudocompletion](analysis.cauchy-pseudocompletions-metric-abelian-groups.md) +of a [metric abelian group](analysis.metric-abelian-groups.md) itself forms a +metric abelian group. + +This construction is precisely analogous to the definition of the Cauchy real +numbers and their definition of addition. + +## Definition + +### The metric space of the metric quotient + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where + + metric-quotient-cauchy-pseudocompletion-Metric-Ab : + Metric-Space (l1 ⊔ l2) (l1 ⊔ l2) + metric-quotient-cauchy-pseudocompletion-Metric-Ab = + metric-quotient-Pseudometric-Space (cauchy-pseudocompletion-Metric-Ab G) + + set-metric-quotient-cauchy-pseudocompletion-Metric-Ab : Set (l1 ⊔ l2) + set-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + set-Metric-Space metric-quotient-cauchy-pseudocompletion-Metric-Ab + + type-metric-quotient-cauchy-pseudocompletion-Metric-Ab : UU (l1 ⊔ l2) + type-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + type-Set set-metric-quotient-cauchy-pseudocompletion-Metric-Ab + + neighborhood-prop-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + Rational-Neighborhood-Relation + ( l1 ⊔ l2) + ( type-metric-quotient-cauchy-pseudocompletion-Metric-Ab) + neighborhood-prop-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + neighborhood-prop-Metric-Space + ( metric-quotient-cauchy-pseudocompletion-Metric-Ab) + + neighborhood-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + ℚ⁺ → + Relation (l1 ⊔ l2) type-metric-quotient-cauchy-pseudocompletion-Metric-Ab + neighborhood-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + neighborhood-Metric-Space + ( metric-quotient-cauchy-pseudocompletion-Metric-Ab) +``` + +### Addition in the metric quotient + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where + + binary-hom-add-cauchy-pseudocompletion-Metric-Ab : + binary-hom-equivalence-relation + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + binary-hom-add-cauchy-pseudocompletion-Metric-Ab = + ( add-cauchy-approximation-Metric-Ab G , + λ {x} {x'} {y} {y'} → + preserves-sim-add-cauchy-approximation-Metric-Ab G {x} {x'} {y} {y'}) + + add-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G → + type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G → + type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + add-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + binary-map-set-quotient + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( binary-hom-add-cauchy-pseudocompletion-Metric-Ab) +``` + +### The embedding of elements of a metric abelian group in the metric quotient of its Cauchy pseudocompletion + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where + + in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + cauchy-approximation-Metric-Ab G → + type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + quotient-map + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + + in-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + type-Metric-Ab G → type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + in-metric-quotient-cauchy-pseudocompletion-Metric-Ab x = + in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( const-cauchy-approximation-Metric-Ab G x) + + abstract + is-injective-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + is-injective in-metric-quotient-cauchy-pseudocompletion-Metric-Ab + is-injective-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab + {x} {y} inx=iny = + eq-sim-const-cauchy-approximation-cauchy-pseudocompletion-Metric-Ab + ( G) + ( x) + ( y) + ( apply-effectiveness-quotient-map + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( inx=iny)) + + is-emb-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + is-emb in-metric-quotient-cauchy-pseudocompletion-Metric-Ab + is-emb-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + is-emb-is-injective + ( is-set-type-Metric-Space + ( metric-quotient-cauchy-pseudocompletion-Metric-Ab G)) + is-injective-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab + + emb-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + type-Metric-Ab G ↪ type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + emb-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + ( in-metric-quotient-cauchy-pseudocompletion-Metric-Ab , + is-emb-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab) + + zero-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + zero-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + in-metric-quotient-cauchy-pseudocompletion-Metric-Ab (zero-Metric-Ab G) +``` + +## Properties + +### The embedding in the metric quotient of the Cauchy pseudocompletion preserves addition + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where abstract + + add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + (x y : cauchy-approximation-Metric-Ab G) → + add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + ( in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( x)) + ( in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( y)) = + in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( add-cauchy-approximation-Metric-Ab G x y) + add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + compute-binary-map-set-quotient + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( binary-hom-add-cauchy-pseudocompletion-Metric-Ab G) + + preserves-add-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + (x y : type-Metric-Ab G) → + add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + ( in-metric-quotient-cauchy-pseudocompletion-Metric-Ab G x) + ( in-metric-quotient-cauchy-pseudocompletion-Metric-Ab G y) = + in-metric-quotient-cauchy-pseudocompletion-Metric-Ab G (add-Metric-Ab G x y) + preserves-add-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab x y = + add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( const-cauchy-approximation-Metric-Ab G x) + ( const-cauchy-approximation-Metric-Ab G y) ∙ + apply-effectiveness-quotient-map' + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( sim-add-const-cauchy-approximation-Metric-Ab G x y) +``` + +### Addition in the metric quotient of the Cauchy pseudocompletion is associative + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where abstract + + associative-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + (x y z : type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) → + add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G x y) + ( z) = + add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + ( x) + ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G y z) + associative-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + triple-induction-set-quotient' + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( λ x y z → + Id-Prop + ( set-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) + ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G x y) + ( z)) + ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + ( x) + ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G y z))) + ( λ x y z → + let + in-approx-G = + in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + _+~G_ = add-cauchy-approximation-Metric-Ab G + _+∙G_ = add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + in + equational-reasoning + (in-approx-G x +∙G in-approx-G y) +∙G in-approx-G z + = in-approx-G (x +~G y) +∙G in-approx-G z + by + ap-binary + ( _+∙G_) + ( add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( x) + ( y)) + ( refl) + = in-approx-G ((x +~G y) +~G z) + by + add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( x +~G y) + ( z) + = in-approx-G (x +~G (y +~G z)) + by + apply-effectiveness-quotient-map' + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab + ( G)) + ( sim-associative-add-cauchy-approximation-Metric-Ab G x y z) + = in-approx-G x +∙G in-approx-G (y +~G z) + by + inv + ( add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( x) + ( y +~G z)) + = in-approx-G x +∙G (in-approx-G y +∙G in-approx-G z) + by + ap-binary + ( _+∙G_) + ( refl) + ( inv + ( add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( y) + ( z)))) +``` + +### Addition in the metric quotient of the Cauchy pseudocompletion is commutative + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where abstract + + commutative-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + (x y : type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) → + add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G x y = + add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G y x + commutative-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + double-induction-set-quotient' + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( λ x y → + Id-Prop + ( set-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) + ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G x y) + ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G y x)) + ( λ x y → + let + in-approx-G = + in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + _+~G_ = add-cauchy-approximation-Metric-Ab G + _+∙G_ = add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + in + equational-reasoning + in-approx-G x +∙G in-approx-G y + = in-approx-G (x +~G y) + by + add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( x) + ( y) + = in-approx-G (y +~G x) + by + ap + ( in-approx-G) + ( commutative-add-cauchy-approximation-Metric-Ab G x y) + = in-approx-G y +∙G in-approx-G x + by + inv + ( add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( y) + ( x))) +``` + +### Unit laws of addition in the metric quotient of the Cauchy pseudocompletion + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where abstract + + left-unit-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + (x : type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) → + add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + ( zero-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) + ( x) = + x + left-unit-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + induction-set-quotient + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( λ x → + Id-Prop + ( set-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) + ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + ( zero-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) + ( x)) + ( x)) + ( λ x → + let + in-approx-G = + in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + _+~G_ = add-cauchy-approximation-Metric-Ab G + _+∙G_ = add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + 0-approx-G = zero-cauchy-approximation-Metric-Ab G + in + equational-reasoning + in-approx-G 0-approx-G +∙G in-approx-G x + = in-approx-G (0-approx-G +~G x) + by + add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( 0-approx-G) + ( x) + = in-approx-G x + by + apply-effectiveness-quotient-map' + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab + ( G)) + ( sim-left-unit-law-add-cauchy-approximation-Metric-Ab G x)) + + right-unit-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + (x : type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) → + add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + ( x) + ( zero-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) = + x + right-unit-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab x = + commutative-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G _ _ ∙ + left-unit-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab x +``` + +### Negation in the metric quotient of the Cauchy pseudocompletion + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where abstract + + hom-neg-cauchy-pseudocompletion-Metric-Ab : + hom-equivalence-relation + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + hom-neg-cauchy-pseudocompletion-Metric-Ab = + ( neg-cauchy-approximation-Metric-Ab G , + preserves-sim-neg-cauchy-approximation-Metric-Ab G _ _) + + neg-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G → + type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + neg-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + map-set-quotient + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( hom-neg-cauchy-pseudocompletion-Metric-Ab) + + abstract + neg-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + (x : cauchy-approximation-Metric-Ab G) → + neg-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( x)) = + in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( neg-cauchy-approximation-Metric-Ab G x) + neg-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + coherence-square-map-set-quotient + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( hom-neg-cauchy-pseudocompletion-Metric-Ab) +``` + +### Inverse laws of addition in the metric quotient of the Cauchy pseudocompletion + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where abstract + + left-inverse-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + (x : type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) → + add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + ( neg-metric-quotient-cauchy-pseudocompletion-Metric-Ab G x) + ( x) = + zero-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + left-inverse-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + induction-set-quotient + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( λ x → + Id-Prop + ( set-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) + ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + ( neg-metric-quotient-cauchy-pseudocompletion-Metric-Ab G x) + ( x)) + ( zero-metric-quotient-cauchy-pseudocompletion-Metric-Ab G)) + ( λ x → + let + in-approx-G = + in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + _+~G_ = add-cauchy-approximation-Metric-Ab G + _+∙G_ = add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + neg-∙G = neg-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + neg-G = neg-cauchy-approximation-Metric-Ab G + 0-approx-G = zero-cauchy-approximation-Metric-Ab G + in + equational-reasoning + neg-∙G (in-approx-G x) +∙G in-approx-G x + = in-approx-G (neg-G x) +∙G in-approx-G x + by + ap-binary + ( _+∙G_) + ( neg-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( x)) + ( refl) + = in-approx-G (neg-G x +~G x) + by + add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( neg-G x) + ( x) + = in-approx-G 0-approx-G + by + ap + ( in-approx-G) + ( left-inverse-law-add-cauchy-approximation-Metric-Ab G x)) + + right-inverse-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + (x : type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) → + add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + ( x) + ( neg-metric-quotient-cauchy-pseudocompletion-Metric-Ab G x) = + zero-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + right-inverse-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab x = + commutative-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G _ _ ∙ + left-inverse-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab x +``` + +### The metric quotient of the Cauchy pseudocompletion forms an abelian group + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where + + semigroup-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + Semigroup (l1 ⊔ l2) + semigroup-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + ( set-metric-quotient-cauchy-pseudocompletion-Metric-Ab G , + add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G , + associative-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) + + is-unital-semigroup-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + is-unital-Semigroup + ( semigroup-metric-quotient-cauchy-pseudocompletion-Metric-Ab) + is-unital-semigroup-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + ( zero-metric-quotient-cauchy-pseudocompletion-Metric-Ab G , + left-unit-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G , + right-unit-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) + + group-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + Group (l1 ⊔ l2) + group-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + ( semigroup-metric-quotient-cauchy-pseudocompletion-Metric-Ab , + is-unital-semigroup-metric-quotient-cauchy-pseudocompletion-Metric-Ab , + neg-metric-quotient-cauchy-pseudocompletion-Metric-Ab G , + left-inverse-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G , + right-inverse-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) + + ab-metric-quotient-cauchy-pseudocompletion-Metric-Ab : Ab (l1 ⊔ l2) + ab-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + ( group-metric-quotient-cauchy-pseudocompletion-Metric-Ab , + commutative-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) +``` diff --git a/src/analysis/addition-cauchy-approximations-metric-abelian-groups.lagda.md b/src/analysis/addition-cauchy-approximations-metric-abelian-groups.lagda.md index 340ee0f9d73..15b5c86afe3 100644 --- a/src/analysis/addition-cauchy-approximations-metric-abelian-groups.lagda.md +++ b/src/analysis/addition-cauchy-approximations-metric-abelian-groups.lagda.md @@ -28,8 +28,10 @@ open import foundation.universe-levels open import metric-spaces.action-on-cauchy-approximations-isometries-metric-spaces open import metric-spaces.cauchy-approximations-metric-spaces open import metric-spaces.cauchy-pseudocompletions-of-metric-spaces +open import metric-spaces.isometries-metric-spaces open import metric-spaces.metric-quotients-of-pseudometric-spaces open import metric-spaces.metric-spaces +open import metric-spaces.short-maps-pseudometric-spaces open import metric-spaces.similarity-of-elements-pseudometric-spaces ``` @@ -386,11 +388,69 @@ module _ sim-cauchy-pseudocompletion-Metric-Ab G ( neg-cauchy-approximation-Metric-Ab G x) ( neg-cauchy-approximation-Metric-Ab G y) - preserves-sim-neg-cauchy-approximation-Metric-Ab x y = - preserves-sim-isometry-cauchy-pseudocompletion-Metric-Space - ( metric-space-Metric-Ab G) - ( metric-space-Metric-Ab G) - ( isometry-neg-Metric-Ab G) - { x} - { y} + preserves-sim-neg-cauchy-approximation-Metric-Ab = + preserves-sim-map-isometry-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Ab G) + ( cauchy-pseudocompletion-Metric-Ab G) + ( isometry-cauchy-pseudocompletion-isometry-Metric-Space + ( metric-space-Metric-Ab G) + ( metric-space-Metric-Ab G) + ( isometry-neg-Metric-Ab G)) +``` + +### Left addition preserves neighborhoods + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where + + abstract opaque + unfolding map-add-cauchy-approximation-Metric-Ab + + preserves-neighborhood-left-add-cauchy-approximation-Metric-Ab : + (x : cauchy-approximation-Metric-Ab G) → + is-short-map-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Ab G) + ( cauchy-pseudocompletion-Metric-Ab G) + ( add-cauchy-approximation-Metric-Ab G x) + preserves-neighborhood-left-add-cauchy-approximation-Metric-Ab + (x , is-approx-x) d (y , is-approx-y) (z , is-approx-z) Ndyz δ ε = + let + (δ' , 2δ'<δ) = bound-double-le-ℚ⁺ δ + (ε' , 2ε'<ε) = bound-double-le-ℚ⁺ ε + in + monotonic-neighborhood-Metric-Ab G + ( add-Metric-Ab G (x δ') (y δ')) + ( add-Metric-Ab G (x ε') (z ε')) + ( (δ' +ℚ⁺ ε') +ℚ⁺ (δ' +ℚ⁺ ε' +ℚ⁺ d)) + ( δ +ℚ⁺ ε +ℚ⁺ d) + ( concat-eq-le-ℚ⁺ + { z = δ +ℚ⁺ ε +ℚ⁺ d} + ( equational-reasoning + (δ' +ℚ⁺ ε') +ℚ⁺ (δ' +ℚ⁺ ε' +ℚ⁺ d) + = (δ' +ℚ⁺ ε') +ℚ⁺ (δ' +ℚ⁺ ε') +ℚ⁺ d + by inv (associative-add-ℚ⁺ _ _ _) + = (δ' +ℚ⁺ δ') +ℚ⁺ (ε' +ℚ⁺ ε') +ℚ⁺ d + by ap-add-ℚ⁺ (interchange-law-add-add-ℚ⁺ _ _ _ _) refl) + ( preserves-le-left-add-ℚ _ _ _ (preserves-le-add-ℚ 2δ'<δ 2ε'<ε))) + ( neighborhood-add-Metric-Ab G + ( δ' +ℚ⁺ ε') + ( δ' +ℚ⁺ ε' +ℚ⁺ d) + ( x δ') + ( x ε') + ( y δ') + ( z ε') + ( is-approx-x δ' ε') + ( Ndyz δ' ε')) + + short-map-left-add-cauchy-pseudocompletion-Metric-Ab : + (x : cauchy-approximation-Metric-Ab G) → + short-map-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Ab G) + ( cauchy-pseudocompletion-Metric-Ab G) + short-map-left-add-cauchy-pseudocompletion-Metric-Ab x = + ( add-cauchy-approximation-Metric-Ab G x , + preserves-neighborhood-left-add-cauchy-approximation-Metric-Ab x) ``` diff --git a/src/analysis/cauchy-pseudocompletions-metric-abelian-groups.lagda.md b/src/analysis/cauchy-pseudocompletions-metric-abelian-groups.lagda.md index 3a21460a5c9..63b1685f2e2 100644 --- a/src/analysis/cauchy-pseudocompletions-metric-abelian-groups.lagda.md +++ b/src/analysis/cauchy-pseudocompletions-metric-abelian-groups.lagda.md @@ -10,6 +10,8 @@ module analysis.cauchy-pseudocompletions-metric-abelian-groups where open import analysis.cauchy-approximations-metric-abelian-groups open import analysis.metric-abelian-groups +open import elementary-number-theory.positive-rational-numbers + open import foundation.binary-relations open import foundation.equivalence-relations open import foundation.identity-types @@ -17,6 +19,7 @@ open import foundation.universe-levels open import metric-spaces.cauchy-pseudocompletions-of-metric-spaces open import metric-spaces.pseudometric-spaces +open import metric-spaces.rational-neighborhood-relations open import metric-spaces.similarity-of-elements-pseudometric-spaces ``` @@ -42,6 +45,16 @@ module _ cauchy-pseudocompletion-Metric-Ab = cauchy-pseudocompletion-Metric-Space (metric-space-Metric-Ab G) + neighborhood-prop-cauchy-pseudocompletion-Metric-Ab : + Rational-Neighborhood-Relation l2 (cauchy-approximation-Metric-Ab G) + neighborhood-prop-cauchy-pseudocompletion-Metric-Ab = + neighborhood-prop-Pseudometric-Space cauchy-pseudocompletion-Metric-Ab + + neighborhood-cauchy-pseudocompletion-Metric-Ab : + ℚ⁺ → Relation l2 (cauchy-approximation-Metric-Ab G) + neighborhood-cauchy-pseudocompletion-Metric-Ab = + neighborhood-Pseudometric-Space cauchy-pseudocompletion-Metric-Ab + equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab : equivalence-relation l2 (cauchy-approximation-Metric-Ab G) equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab = diff --git a/src/analysis/metric-abelian-group-metric-quotient-cauchy-pseudocompletion-metric-abelian-groups.lagda.md b/src/analysis/metric-abelian-group-metric-quotient-cauchy-pseudocompletion-metric-abelian-groups.lagda.md index 12edecbfb38..c8d4b7bca3b 100644 --- a/src/analysis/metric-abelian-group-metric-quotient-cauchy-pseudocompletion-metric-abelian-groups.lagda.md +++ b/src/analysis/metric-abelian-group-metric-quotient-cauchy-pseudocompletion-metric-abelian-groups.lagda.md @@ -1,4 +1,4 @@ -# The metric abelian group formed by the metric quotient of Cauchy pseudocompletions of metric abelian groups +# The metric abelian group of the metric quotient of the Cauchy pseudocompletion of metric abelian groups ```agda {-# OPTIONS --lossy-unification #-} @@ -9,38 +9,31 @@ module analysis.metric-abelian-group-metric-quotient-cauchy-pseudocompletion-met
Imports ```agda +open import analysis.abelian-group-metric-quotient-cauchy-pseudocompletion-metric-abelian-groups open import analysis.addition-cauchy-approximations-metric-abelian-groups -open import analysis.cauchy-approximations-metric-abelian-groups open import analysis.cauchy-pseudocompletions-metric-abelian-groups open import analysis.metric-abelian-groups -open import elementary-number-theory.addition-positive-rational-numbers +open import elementary-number-theory.positive-rational-numbers open import foundation.action-on-identifications-binary-functions open import foundation.action-on-identifications-functions -open import foundation.binary-functoriality-set-quotients +open import foundation.binary-transport open import foundation.dependent-pair-types -open import foundation.embeddings -open import foundation.equivalence-relations -open import foundation.functoriality-set-quotients open import foundation.identity-types -open import foundation.injective-maps +open import foundation.propositional-truncations open import foundation.set-quotients -open import foundation.sets -open import foundation.transport-along-identifications open import foundation.universe-levels open import group-theory.abelian-groups -open import group-theory.groups -open import group-theory.monoids -open import group-theory.semigroups -open import metric-spaces.cauchy-approximations-metric-spaces -open import metric-spaces.cauchy-pseudocompletions-of-metric-spaces -open import metric-spaces.metric-quotients-of-pseudometric-spaces +open import metric-spaces.action-on-cauchy-approximations-isometries-metric-spaces +open import metric-spaces.isometries-metric-spaces +open import metric-spaces.isometries-pseudometric-spaces open import metric-spaces.metric-spaces -open import metric-spaces.pseudometric-spaces -open import metric-spaces.similarity-of-elements-pseudometric-spaces +open import metric-spaces.short-maps-metric-spaces +open import metric-spaces.short-maps-pseudometric-spaces +open import metric-spaces.unit-map-metric-quotients-of-pseudometric-spaces ```
@@ -50,349 +43,12 @@ open import metric-spaces.similarity-of-elements-pseudometric-spaces The [metric quotient](metric-spaces.metric-quotients-of-pseudometric-spaces.md) of the [Cauchy pseudocompletion](analysis.cauchy-pseudocompletions-metric-abelian-groups.md) -of a [metric abelian group](analysis.metric-abelian-groups.md) itself forms a +of a [metric abelian group](analysis.metric-abelian-groups.md) is itself a metric abelian group. -This construction is precisely analogous to the definition of the Cauchy real -numbers and their definition of addition. +## Proof -## Definition - -### The metric space of the metric quotient - -```agda -module _ - {l1 l2 : Level} - (G : Metric-Ab l1 l2) - where - - metric-quotient-cauchy-pseudocompletion-Metric-Ab : - Metric-Space (l1 ⊔ l2) (l1 ⊔ l2) - metric-quotient-cauchy-pseudocompletion-Metric-Ab = - metric-quotient-Pseudometric-Space (cauchy-pseudocompletion-Metric-Ab G) - - set-metric-quotient-cauchy-pseudocompletion-Metric-Ab : Set (l1 ⊔ l2) - set-metric-quotient-cauchy-pseudocompletion-Metric-Ab = - set-Metric-Space metric-quotient-cauchy-pseudocompletion-Metric-Ab - - type-metric-quotient-cauchy-pseudocompletion-Metric-Ab : UU (l1 ⊔ l2) - type-metric-quotient-cauchy-pseudocompletion-Metric-Ab = - type-Set set-metric-quotient-cauchy-pseudocompletion-Metric-Ab -``` - -### Addition in the metric quotient - -```agda -module _ - {l1 l2 : Level} - (G : Metric-Ab l1 l2) - where - - binary-hom-add-cauchy-pseudocompletion-Metric-Ab : - binary-hom-equivalence-relation - ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) - ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) - ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) - binary-hom-add-cauchy-pseudocompletion-Metric-Ab = - ( add-cauchy-approximation-Metric-Ab G , - λ {x} {x'} {y} {y'} → - preserves-sim-add-cauchy-approximation-Metric-Ab G {x} {x'} {y} {y'}) - - add-metric-quotient-cauchy-pseudocompletion-Metric-Ab : - type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G → - type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G → - type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G - add-metric-quotient-cauchy-pseudocompletion-Metric-Ab = - binary-map-set-quotient - ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) - ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) - ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) - ( binary-hom-add-cauchy-pseudocompletion-Metric-Ab) -``` - -### The embedding of elements of a metric abelian group in the metric quotient of its Cauchy pseudocompletion - -```agda -module _ - {l1 l2 : Level} - (G : Metric-Ab l1 l2) - where - - in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab : - cauchy-approximation-Metric-Ab G → - type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G - in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab = - quotient-map - ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) - - in-metric-quotient-cauchy-pseudocompletion-Metric-Ab : - type-Metric-Ab G → type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G - in-metric-quotient-cauchy-pseudocompletion-Metric-Ab x = - in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab - ( const-cauchy-approximation-Metric-Ab G x) - - abstract - is-injective-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab : - is-injective in-metric-quotient-cauchy-pseudocompletion-Metric-Ab - is-injective-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab - {x} {y} inx=iny = - eq-sim-const-cauchy-approximation-cauchy-pseudocompletion-Metric-Ab - ( G) - ( x) - ( y) - ( apply-effectiveness-quotient-map - ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) - ( inx=iny)) - - is-emb-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab : - is-emb in-metric-quotient-cauchy-pseudocompletion-Metric-Ab - is-emb-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab = - is-emb-is-injective - ( is-set-type-Metric-Space - ( metric-quotient-cauchy-pseudocompletion-Metric-Ab G)) - is-injective-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab - - emb-metric-quotient-cauchy-pseudocompletion-Metric-Ab : - type-Metric-Ab G ↪ type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G - emb-metric-quotient-cauchy-pseudocompletion-Metric-Ab = - ( in-metric-quotient-cauchy-pseudocompletion-Metric-Ab , - is-emb-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab) - - zero-metric-quotient-cauchy-pseudocompletion-Metric-Ab : - type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G - zero-metric-quotient-cauchy-pseudocompletion-Metric-Ab = - in-metric-quotient-cauchy-pseudocompletion-Metric-Ab (zero-Metric-Ab G) -``` - -## Properties - -### The embedding in the metric quotient of the Cauchy pseudocompletion preserves addition - -```agda -module _ - {l1 l2 : Level} - (G : Metric-Ab l1 l2) - where abstract - - add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab : - (x y : cauchy-approximation-Metric-Ab G) → - add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G - ( in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab - ( G) - ( x)) - ( in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab - ( G) - ( y)) = - in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab - ( G) - ( add-cauchy-approximation-Metric-Ab G x y) - add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab = - compute-binary-map-set-quotient - ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) - ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) - ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) - ( binary-hom-add-cauchy-pseudocompletion-Metric-Ab G) - - preserves-add-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab : - (x y : type-Metric-Ab G) → - add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G - ( in-metric-quotient-cauchy-pseudocompletion-Metric-Ab G x) - ( in-metric-quotient-cauchy-pseudocompletion-Metric-Ab G y) = - in-metric-quotient-cauchy-pseudocompletion-Metric-Ab G (add-Metric-Ab G x y) - preserves-add-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab x y = - add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab - ( const-cauchy-approximation-Metric-Ab G x) - ( const-cauchy-approximation-Metric-Ab G y) ∙ - apply-effectiveness-quotient-map' - ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) - ( sim-add-const-cauchy-approximation-Metric-Ab G x y) -``` - -### Addition in the metric quotient of the Cauchy pseudocompletion is associative - -```agda -module _ - {l1 l2 : Level} - (G : Metric-Ab l1 l2) - where abstract - - associative-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab : - (x y z : type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) → - add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G - ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G x y) - ( z) = - add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G - ( x) - ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G y z) - associative-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab = - triple-induction-set-quotient' - ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) - ( λ x y z → - Id-Prop - ( set-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) - ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G - ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G x y) - ( z)) - ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G - ( x) - ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G y z))) - ( λ x y z → - let - in-approx-G = - in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab G - _+~G_ = add-cauchy-approximation-Metric-Ab G - _+∙G_ = add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G - in - equational-reasoning - (in-approx-G x +∙G in-approx-G y) +∙G in-approx-G z - = in-approx-G (x +~G y) +∙G in-approx-G z - by - ap-binary - ( _+∙G_) - ( add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab - ( G) - ( x) - ( y)) - ( refl) - = in-approx-G ((x +~G y) +~G z) - by - add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab - ( G) - ( x +~G y) - ( z) - = in-approx-G (x +~G (y +~G z)) - by - apply-effectiveness-quotient-map' - ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab - ( G)) - ( sim-associative-add-cauchy-approximation-Metric-Ab G x y z) - = in-approx-G x +∙G in-approx-G (y +~G z) - by - inv - ( add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab - ( G) - ( x) - ( y +~G z)) - = in-approx-G x +∙G (in-approx-G y +∙G in-approx-G z) - by - ap-binary - ( _+∙G_) - ( refl) - ( inv - ( add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab - ( G) - ( y) - ( z)))) -``` - -### Addition in the metric quotient of the Cauchy pseudocompletion is commutative - -```agda -module _ - {l1 l2 : Level} - (G : Metric-Ab l1 l2) - where abstract - - commutative-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab : - (x y : type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) → - add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G x y = - add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G y x - commutative-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab = - double-induction-set-quotient' - ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) - ( λ x y → - Id-Prop - ( set-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) - ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G x y) - ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G y x)) - ( λ x y → - let - in-approx-G = - in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab G - _+~G_ = add-cauchy-approximation-Metric-Ab G - _+∙G_ = add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G - in - equational-reasoning - in-approx-G x +∙G in-approx-G y - = in-approx-G (x +~G y) - by - add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab - ( G) - ( x) - ( y) - = in-approx-G (y +~G x) - by - ap - ( in-approx-G) - ( commutative-add-cauchy-approximation-Metric-Ab G x y) - = in-approx-G y +∙G in-approx-G x - by - inv - ( add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab - ( G) - ( y) - ( x))) -``` - -### Unit laws of addition in the metric quotient of the Cauchy pseudocompletion - -```agda -module _ - {l1 l2 : Level} - (G : Metric-Ab l1 l2) - where abstract - - left-unit-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab : - (x : type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) → - add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G - ( zero-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) - ( x) = - x - left-unit-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab = - induction-set-quotient - ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) - ( λ x → - Id-Prop - ( set-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) - ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G - ( zero-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) - ( x)) - ( x)) - ( λ x → - let - in-approx-G = - in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab G - _+~G_ = add-cauchy-approximation-Metric-Ab G - _+∙G_ = add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G - 0-approx-G = zero-cauchy-approximation-Metric-Ab G - in - equational-reasoning - in-approx-G 0-approx-G +∙G in-approx-G x - = in-approx-G (0-approx-G +~G x) - by - add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab - ( G) - ( 0-approx-G) - ( x) - = in-approx-G x - by - apply-effectiveness-quotient-map' - ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab - ( G)) - ( sim-left-unit-law-add-cauchy-approximation-Metric-Ab G x)) - - right-unit-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab : - (x : type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) → - add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G - ( x) - ( zero-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) = - x - right-unit-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab x = - commutative-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G _ _ ∙ - left-unit-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab x -``` - -### Negation in the metric quotient of the Cauchy pseudocompletion +### Negation is a short map ```agda module _ @@ -400,41 +56,75 @@ module _ (G : Metric-Ab l1 l2) where abstract - hom-neg-cauchy-pseudocompletion-Metric-Ab : - hom-equivalence-relation - ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) - ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) - hom-neg-cauchy-pseudocompletion-Metric-Ab = - ( neg-cauchy-approximation-Metric-Ab G , - preserves-sim-neg-cauchy-approximation-Metric-Ab G _ _) - - neg-metric-quotient-cauchy-pseudocompletion-Metric-Ab : - type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G → - type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G - neg-metric-quotient-cauchy-pseudocompletion-Metric-Ab = - map-set-quotient - ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) - ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) - ( hom-neg-cauchy-pseudocompletion-Metric-Ab) - - abstract - neg-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab : - (x : cauchy-approximation-Metric-Ab G) → - neg-metric-quotient-cauchy-pseudocompletion-Metric-Ab - ( in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab - ( G) - ( x)) = - in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab - ( G) - ( neg-cauchy-approximation-Metric-Ab G x) - neg-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab = - coherence-square-map-set-quotient - ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) - ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) - ( hom-neg-cauchy-pseudocompletion-Metric-Ab) + is-short-map-neg-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + is-short-map-Metric-Space + ( metric-quotient-cauchy-pseudocompletion-Metric-Ab G) + ( metric-quotient-cauchy-pseudocompletion-Metric-Ab G) + ( neg-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) + is-short-map-neg-metric-quotient-cauchy-pseudocompletion-Metric-Ab + d x y Ndxy = + let + open + do-syntax-trunc-Prop + ( neighborhood-prop-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( d) + ( neg-metric-quotient-cauchy-pseudocompletion-Metric-Ab G x) + ( neg-metric-quotient-cauchy-pseudocompletion-Metric-Ab G y)) + in do + (x' , ux'=x) ← + is-surjective-quotient-map + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( x) + (y' , uy'=y) ← + is-surjective-quotient-map + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( y) + binary-tr + ( neighborhood-metric-quotient-cauchy-pseudocompletion-Metric-Ab G d) + ( ( inv + ( neg-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( x'))) ∙ + ( ap (neg-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) ux'=x)) + ( ( inv + ( neg-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( y'))) ∙ + ( ap (neg-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) uy'=y)) + ( preserves-neighborhoods-map-isometry-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Ab G) + ( pseudometric-Metric-Space + ( metric-quotient-cauchy-pseudocompletion-Metric-Ab G)) + ( comp-isometry-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Ab G) + ( cauchy-pseudocompletion-Metric-Ab G) + ( pseudometric-Metric-Space + ( metric-quotient-cauchy-pseudocompletion-Metric-Ab G)) + ( isometry-unit-metric-quotient-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Ab G)) + ( isometry-cauchy-pseudocompletion-isometry-Metric-Space + ( metric-space-Metric-Ab G) + ( metric-space-Metric-Ab G) + ( isometry-neg-Metric-Ab G))) + ( d) + ( x') + ( y') + ( reflects-neighborhoods-map-unit-metric-quotient-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Ab G) + ( d) + ( x') + ( y') + ( binary-tr + ( neighborhood-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( d)) + ( inv ux'=x) + ( inv uy'=y) + ( Ndxy)))) ``` -### Inverse laws of addition in the metric quotient of the Cauchy pseudocompletion +### Left addition is a short map on the metric quotient of the Cauchy pseudocompletion of a metric abelian group ```agda module _ @@ -442,66 +132,85 @@ module _ (G : Metric-Ab l1 l2) where abstract - left-inverse-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab : - (x : type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) → - add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G - ( neg-metric-quotient-cauchy-pseudocompletion-Metric-Ab G x) - ( x) = - zero-metric-quotient-cauchy-pseudocompletion-Metric-Ab G - left-inverse-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab = - induction-set-quotient - ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) - ( λ x → - Id-Prop - ( set-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) - ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G - ( neg-metric-quotient-cauchy-pseudocompletion-Metric-Ab G x) - ( x)) - ( zero-metric-quotient-cauchy-pseudocompletion-Metric-Ab G)) - ( λ x → - let - in-approx-G = - in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab G - _+~G_ = add-cauchy-approximation-Metric-Ab G - _+∙G_ = add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G - neg-∙G = neg-metric-quotient-cauchy-pseudocompletion-Metric-Ab G - neg-G = neg-cauchy-approximation-Metric-Ab G - 0-approx-G = zero-cauchy-approximation-Metric-Ab G - in - equational-reasoning - neg-∙G (in-approx-G x) +∙G in-approx-G x - = in-approx-G (neg-G x) +∙G in-approx-G x - by - ap-binary - ( _+∙G_) - ( neg-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab - ( G) - ( x)) - ( refl) - = in-approx-G (neg-G x +~G x) - by - add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab - ( G) - ( neg-G x) - ( x) - = in-approx-G 0-approx-G - by - ap - ( in-approx-G) - ( left-inverse-law-add-cauchy-approximation-Metric-Ab G x)) - - right-inverse-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + is-short-map-left-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab : (x : type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) → - add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G - ( x) - ( neg-metric-quotient-cauchy-pseudocompletion-Metric-Ab G x) = - zero-metric-quotient-cauchy-pseudocompletion-Metric-Ab G - right-inverse-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab x = - commutative-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G _ _ ∙ - left-inverse-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab x + is-short-map-Metric-Space + ( metric-quotient-cauchy-pseudocompletion-Metric-Ab G) + ( metric-quotient-cauchy-pseudocompletion-Metric-Ab G) + ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G x) + is-short-map-left-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab + x d y z Ndyz = + let + open + do-syntax-trunc-Prop + ( neighborhood-prop-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( d) + ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G x y) + ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G x z)) + in do + (x' , ux'=x) ← + is-surjective-quotient-map + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( x) + (y' , uy'=y) ← + is-surjective-quotient-map + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( y) + (z' , uz'=z) ← + is-surjective-quotient-map + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( z) + binary-tr + ( neighborhood-metric-quotient-cauchy-pseudocompletion-Metric-Ab G d) + ( ( inv + ( add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( x') + ( y'))) ∙ + ( ap-binary + ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) + ( ux'=x) + ( uy'=y))) + ( ( inv + ( add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( x') + ( z'))) ∙ + ( ap-binary + ( add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) + ( ux'=x) + ( uz'=z))) + ( is-short-map-short-map-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Ab G) + ( pseudometric-Metric-Space + ( metric-quotient-cauchy-pseudocompletion-Metric-Ab G)) + ( comp-short-map-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Ab G) + ( cauchy-pseudocompletion-Metric-Ab G) + ( pseudometric-Metric-Space + ( metric-quotient-cauchy-pseudocompletion-Metric-Ab G)) + ( short-map-unit-metric-quotient-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Ab G)) + ( short-map-left-add-cauchy-pseudocompletion-Metric-Ab G x')) + ( d) + ( y') + ( z') + ( reflects-neighborhoods-map-unit-metric-quotient-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Ab G) + ( d) + ( y') + ( z') + ( binary-tr + ( neighborhood-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( G) + ( d)) + ( inv uy'=y) + ( inv uz'=z) + ( Ndyz)))) ``` -### The metric quotient of the Cauchy pseudocompletion forms an abelian group +## Definition ```agda module _ @@ -509,32 +218,14 @@ module _ (G : Metric-Ab l1 l2) where - semigroup-metric-quotient-cauchy-pseudocompletion-Metric-Ab : - Semigroup (l1 ⊔ l2) - semigroup-metric-quotient-cauchy-pseudocompletion-Metric-Ab = - ( set-metric-quotient-cauchy-pseudocompletion-Metric-Ab G , - add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G , - associative-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) - - is-unital-semigroup-metric-quotient-cauchy-pseudocompletion-Metric-Ab : - is-unital-Semigroup - ( semigroup-metric-quotient-cauchy-pseudocompletion-Metric-Ab) - is-unital-semigroup-metric-quotient-cauchy-pseudocompletion-Metric-Ab = - ( zero-metric-quotient-cauchy-pseudocompletion-Metric-Ab G , - left-unit-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G , - right-unit-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) - - group-metric-quotient-cauchy-pseudocompletion-Metric-Ab : - Group (l1 ⊔ l2) - group-metric-quotient-cauchy-pseudocompletion-Metric-Ab = - ( semigroup-metric-quotient-cauchy-pseudocompletion-Metric-Ab , - is-unital-semigroup-metric-quotient-cauchy-pseudocompletion-Metric-Ab , - neg-metric-quotient-cauchy-pseudocompletion-Metric-Ab G , - left-inverse-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G , - right-inverse-law-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) - - ab-metric-quotient-cauchy-pseudocompletion-Metric-Ab : Ab (l1 ⊔ l2) - ab-metric-quotient-cauchy-pseudocompletion-Metric-Ab = - ( group-metric-quotient-cauchy-pseudocompletion-Metric-Ab , - commutative-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) + metric-ab-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + Metric-Ab (l1 ⊔ l2) (l1 ⊔ l2) + metric-ab-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + ( ab-metric-quotient-cauchy-pseudocompletion-Metric-Ab G , + pseudometric-structure-Metric-Space + ( metric-quotient-cauchy-pseudocompletion-Metric-Ab G) , + is-extensional-pseudometric-Metric-Space + ( metric-quotient-cauchy-pseudocompletion-Metric-Ab G) , + is-short-map-neg-metric-quotient-cauchy-pseudocompletion-Metric-Ab G , + is-short-map-left-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) ``` diff --git a/src/analysis/metric-abelian-groups.lagda.md b/src/analysis/metric-abelian-groups.lagda.md index 661fe40eb4c..57eaaa6771c 100644 --- a/src/analysis/metric-abelian-groups.lagda.md +++ b/src/analysis/metric-abelian-groups.lagda.md @@ -12,6 +12,7 @@ open import elementary-number-theory.positive-rational-numbers open import foundation.action-on-identifications-binary-functions open import foundation.binary-relations +open import foundation.binary-transport open import foundation.cartesian-product-types open import foundation.conjunction open import foundation.dependent-pair-types @@ -28,13 +29,14 @@ open import group-theory.abelian-groups open import metric-spaces.cartesian-products-metric-spaces open import metric-spaces.extensionality-pseudometric-spaces open import metric-spaces.isometries-metric-spaces -open import metric-spaces.isometries-pseudometric-spaces open import metric-spaces.metric-spaces open import metric-spaces.modulated-uniformly-continuous-maps-metric-spaces open import metric-spaces.monotonic-rational-neighborhood-relations open import metric-spaces.pseudometric-spaces open import metric-spaces.rational-neighborhood-relations open import metric-spaces.reflexive-rational-neighborhood-relations +open import metric-spaces.short-maps-metric-spaces +open import metric-spaces.short-maps-pseudometric-spaces open import metric-spaces.triangular-rational-neighborhood-relations open import metric-spaces.uniformly-continuous-maps-metric-spaces ``` @@ -46,8 +48,9 @@ open import metric-spaces.uniformly-continuous-maps-metric-spaces A {{#concept "metric abelian group" Agda=Metric-Ab}} is an [abelian group](group-theory.abelian-groups.md) endowed with the structure of a [metric space](metric-spaces.metric-spaces.md) such that the addition operation -and negation operation are -[isometries](metric-spaces.isometries-metric-spaces.md). +and negation operation are [short](metric-spaces.short-maps-metric-spaces.md) +(which, together with the group operations, implies they are +[isometries](metric-spaces.isometries-metric-spaces.md)). ## Definition @@ -60,10 +63,10 @@ is-metric-ab-prop-Ab-Pseudometric-Structure G M = MS = (type-Ab G , M) in is-extensional-prop-Pseudometric-Space MS ∧ - is-isometry-prop-Pseudometric-Space MS MS (neg-Ab G) ∧ + is-short-map-prop-Pseudometric-Space MS MS (neg-Ab G) ∧ Π-Prop ( type-Ab G) - ( λ x → is-isometry-prop-Pseudometric-Space MS MS (add-Ab G x)) + ( λ x → is-short-map-prop-Pseudometric-Space MS MS (add-Ab G x)) is-metric-ab-Ab-Pseudometric-Structure : {l1 l2 : Level} (G : Ab l1) (M : Pseudometric-Structure l2 (type-Ab G)) → @@ -202,13 +205,40 @@ module _ triangular-neighborhood-Metric-Ab = triangular-neighborhood-Metric-Space metric-space-Metric-Ab + is-short-map-add-Metric-Ab : + (x : type-Metric-Ab MG) → + is-short-map-Metric-Space + ( metric-space-Metric-Ab) + ( metric-space-Metric-Ab) + ( add-Metric-Ab MG x) + is-short-map-add-Metric-Ab = pr2 (pr2 (pr2 (pr2 MG))) + + abstract + reflects-neighborhoods-left-add-Metric-Ab : + (x : type-Metric-Ab MG) + (d : ℚ⁺) + (y z : type-Metric-Ab MG) → + neighborhood-Metric-Ab + ( d) + ( add-Metric-Ab MG x y) + ( add-Metric-Ab MG x z) → + neighborhood-Metric-Ab d y z + reflects-neighborhoods-left-add-Metric-Ab x d y z Nd⟨x+y⟩⟨x+z⟩ = + binary-tr + ( neighborhood-Metric-Ab d) + ( is-retraction-left-subtraction-Ab (ab-Metric-Ab MG) x y) + ( is-retraction-left-subtraction-Ab (ab-Metric-Ab MG) x z) + ( is-short-map-add-Metric-Ab (neg-Metric-Ab MG x) d _ _ Nd⟨x+y⟩⟨x+z⟩) + is-isometry-add-Metric-Ab : (x : type-Metric-Ab MG) → is-isometry-Metric-Space ( metric-space-Metric-Ab) ( metric-space-Metric-Ab) ( add-Metric-Ab MG x) - is-isometry-add-Metric-Ab = pr2 (pr2 (pr2 (pr2 MG))) + is-isometry-add-Metric-Ab x d y z = + ( is-short-map-add-Metric-Ab x d y z , + reflects-neighborhoods-left-add-Metric-Ab x d y z) isometry-add-Metric-Ab : (x : type-Metric-Ab MG) → @@ -240,12 +270,33 @@ module _ isometry-add-Metric-Ab' x = ( add-Metric-Ab' MG x , is-isometry-add-Metric-Ab' x) + is-short-map-neg-Metric-Ab : + is-short-map-Metric-Space + ( metric-space-Metric-Ab) + ( metric-space-Metric-Ab) + ( neg-Metric-Ab MG) + is-short-map-neg-Metric-Ab = pr1 (pr2 (pr2 (pr2 MG))) + + abstract + reflects-neighborhoods-neg-Metric-Ab : + (d : ℚ⁺) (x y : type-Metric-Ab MG) → + neighborhood-Metric-Ab d (neg-Metric-Ab MG x) (neg-Metric-Ab MG y) → + neighborhood-Metric-Ab d x y + reflects-neighborhoods-neg-Metric-Ab d x y Nd⟨-x⟩⟨-y⟩ = + binary-tr + ( neighborhood-Metric-Ab d) + ( neg-neg-Metric-Ab MG x) + ( neg-neg-Metric-Ab MG y) + ( is-short-map-neg-Metric-Ab d _ _ Nd⟨-x⟩⟨-y⟩) + is-isometry-neg-Metric-Ab : is-isometry-Metric-Space ( metric-space-Metric-Ab) ( metric-space-Metric-Ab) ( neg-Metric-Ab MG) - is-isometry-neg-Metric-Ab = pr1 (pr2 (pr2 (pr2 MG))) + is-isometry-neg-Metric-Ab d x y = + ( is-short-map-neg-Metric-Ab d x y , + reflects-neighborhoods-neg-Metric-Ab d x y) isometry-neg-Metric-Ab : isometry-Metric-Space diff --git a/src/metric-spaces.lagda.md b/src/metric-spaces.lagda.md index 5cdbdf07905..2e432f509dd 100644 --- a/src/metric-spaces.lagda.md +++ b/src/metric-spaces.lagda.md @@ -63,7 +63,7 @@ module metric-spaces where open import metric-spaces.accumulation-points-subsets-located-metric-spaces public open import metric-spaces.action-on-cauchy-approximations-isometries-metric-spaces public -open import metric-spaces.action-on-cauchy-approximations-short-maps-metric-spaces public +open import metric-spaces.action-on-cauchy-approximations-isometries-pseudometric-spaces public open import metric-spaces.action-on-cauchy-approximations-short-maps-pseudometric-spaces public open import metric-spaces.action-on-cauchy-sequences-short-maps-metric-spaces public open import metric-spaces.action-on-cauchy-sequences-uniformly-continuous-maps-metric-spaces public diff --git a/src/metric-spaces/action-on-cauchy-approximations-isometries-metric-spaces.lagda.md b/src/metric-spaces/action-on-cauchy-approximations-isometries-metric-spaces.lagda.md index 86ed632d424..8f6e86c0afd 100644 --- a/src/metric-spaces/action-on-cauchy-approximations-isometries-metric-spaces.lagda.md +++ b/src/metric-spaces/action-on-cauchy-approximations-isometries-metric-spaces.lagda.md @@ -10,10 +10,11 @@ module metric-spaces.action-on-cauchy-approximations-isometries-metric-spaces wh open import foundation.functoriality-set-quotients open import foundation.universe-levels -open import metric-spaces.action-on-cauchy-approximations-short-maps-metric-spaces +open import metric-spaces.action-on-cauchy-approximations-isometries-pseudometric-spaces open import metric-spaces.cauchy-approximations-metric-spaces open import metric-spaces.cauchy-pseudocompletions-of-metric-spaces open import metric-spaces.isometries-metric-spaces +open import metric-spaces.isometries-pseudometric-spaces open import metric-spaces.metric-spaces ``` @@ -39,15 +40,15 @@ module _ cauchy-approximation-Metric-Space X → cauchy-approximation-Metric-Space Y map-isometry-cauchy-approximation-Metric-Space = - map-short-map-cauchy-approximation-Metric-Space - ( X) - ( Y) - ( short-map-isometry-Metric-Space X Y f) + map-isometry-cauchy-approximation-Pseudometric-Space + ( pseudometric-Metric-Space X) + ( pseudometric-Metric-Space Y) + ( f) ``` ## Properties -### Isometries preserve similarity in the Cauchy pseudocompletion of a metric space +### An isometry on metric spaces induces an isometry on the Cauchy pseudocompletions of the metric spaces ```agda module _ @@ -55,18 +56,15 @@ module _ (X : Metric-Space l1 l2) (Y : Metric-Space l3 l4) (f : isometry-Metric-Space X Y) - where abstract + where - preserves-sim-isometry-cauchy-pseudocompletion-Metric-Space : - preserves-sim-equivalence-relation - ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Space X) - ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Space Y) - ( map-isometry-cauchy-approximation-Metric-Space X Y f) - preserves-sim-isometry-cauchy-pseudocompletion-Metric-Space {x} {y} = - preserves-sim-short-map-cauchy-pseudocompletion-Metric-Space - ( X) - ( Y) - ( short-map-isometry-Metric-Space X Y f) - { x} - { y} + isometry-cauchy-pseudocompletion-isometry-Metric-Space : + isometry-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Space X) + ( cauchy-pseudocompletion-Metric-Space Y) + isometry-cauchy-pseudocompletion-isometry-Metric-Space = + isometry-cauchy-pseudocompletion-isometry-Pseudometric-Space + ( pseudometric-Metric-Space X) + ( pseudometric-Metric-Space Y) + ( f) ``` diff --git a/src/metric-spaces/action-on-cauchy-approximations-isometries-pseudometric-spaces.lagda.md b/src/metric-spaces/action-on-cauchy-approximations-isometries-pseudometric-spaces.lagda.md new file mode 100644 index 00000000000..16d2b0789ef --- /dev/null +++ b/src/metric-spaces/action-on-cauchy-approximations-isometries-pseudometric-spaces.lagda.md @@ -0,0 +1,102 @@ +# The action on Cauchy approximations of isometries in pseudometric spaces + +```agda +module metric-spaces.action-on-cauchy-approximations-isometries-pseudometric-spaces where +``` + +
Imports + +```agda +open import elementary-number-theory.addition-positive-rational-numbers + +open import foundation.dependent-pair-types +open import foundation.universe-levels + +open import metric-spaces.action-on-cauchy-approximations-short-maps-pseudometric-spaces +open import metric-spaces.cauchy-approximations-pseudometric-spaces +open import metric-spaces.cauchy-pseudocompletions-of-pseudometric-spaces +open import metric-spaces.isometries-pseudometric-spaces +open import metric-spaces.pseudometric-spaces +``` + +
+ +## Idea + +[Isometries](metric-spaces.isometries-pseudometric-spaces.md) on +[pseudometric spaces](metric-spaces.pseudometric-spaces.md) induce isometries on +the +[Cauchy pseudocompletion](metric-spaces.cauchy-pseudocompletions-of-pseudometric-spaces.md) +of the pseudometric spaces. + +## Definition + +```agda +module _ + {l1 l2 l3 l4 : Level} + (X : Pseudometric-Space l1 l2) + (Y : Pseudometric-Space l3 l4) + (f : isometry-Pseudometric-Space X Y) + where + + map-isometry-cauchy-approximation-Pseudometric-Space : + cauchy-approximation-Pseudometric-Space X → + cauchy-approximation-Pseudometric-Space Y + map-isometry-cauchy-approximation-Pseudometric-Space = + map-short-map-cauchy-approximation-Pseudometric-Space + ( X) + ( Y) + ( short-map-isometry-Pseudometric-Space X Y f) +``` + +## Properties + +### Mapping an isometry on Cauchy approximations in a pseudometric space is an isometry in the Cauchy pseudocompletion + +```agda +module _ + {l1 l2 l3 l4 : Level} + (X : Pseudometric-Space l1 l2) + (Y : Pseudometric-Space l3 l4) + (f : isometry-Pseudometric-Space X Y) + where + + abstract + is-isometry-cauchy-pseudocompletion-isometry-Pseudometric-Space : + is-isometry-Pseudometric-Space + ( cauchy-pseudocompletion-Pseudometric-Space X) + ( cauchy-pseudocompletion-Pseudometric-Space Y) + ( map-isometry-cauchy-approximation-Pseudometric-Space X Y f) + pr1 + ( is-isometry-cauchy-pseudocompletion-isometry-Pseudometric-Space + d (x , is-approx-x) (y , is-approx-y)) + Ndxy δ ε = + preserves-neighborhoods-map-isometry-Pseudometric-Space + ( X) + ( Y) + ( f) + ( δ +ℚ⁺ ε +ℚ⁺ d) + ( x δ) + ( y ε) + ( Ndxy δ ε) + pr2 + ( is-isometry-cauchy-pseudocompletion-isometry-Pseudometric-Space + d (x , is-approx-x) (y , is-approx-y)) + Ndfxfy δ ε = + reflects-neighborhoods-map-isometry-Pseudometric-Space + ( X) + ( Y) + ( f) + ( δ +ℚ⁺ ε +ℚ⁺ d) + ( x δ) + ( y ε) + ( Ndfxfy δ ε) + + isometry-cauchy-pseudocompletion-isometry-Pseudometric-Space : + isometry-Pseudometric-Space + ( cauchy-pseudocompletion-Pseudometric-Space X) + ( cauchy-pseudocompletion-Pseudometric-Space Y) + isometry-cauchy-pseudocompletion-isometry-Pseudometric-Space = + ( map-isometry-cauchy-approximation-Pseudometric-Space X Y f , + is-isometry-cauchy-pseudocompletion-isometry-Pseudometric-Space) +``` diff --git a/src/metric-spaces/action-on-cauchy-approximations-short-maps-metric-spaces.lagda.md b/src/metric-spaces/action-on-cauchy-approximations-short-maps-metric-spaces.lagda.md deleted file mode 100644 index bc5271a88d0..00000000000 --- a/src/metric-spaces/action-on-cauchy-approximations-short-maps-metric-spaces.lagda.md +++ /dev/null @@ -1,72 +0,0 @@ -# The action on Cauchy approximations of short maps in metric spaces - -```agda -module metric-spaces.action-on-cauchy-approximations-short-maps-metric-spaces where -``` - -
Imports - -```agda -open import foundation.functoriality-set-quotients -open import foundation.universe-levels - -open import metric-spaces.action-on-cauchy-approximations-short-maps-pseudometric-spaces -open import metric-spaces.cauchy-approximations-metric-spaces -open import metric-spaces.cauchy-pseudocompletions-of-metric-spaces -open import metric-spaces.metric-spaces -open import metric-spaces.short-maps-metric-spaces -``` - -
- -## Idea - -The action of [short maps](metric-spaces.short-maps-metric-spaces.md) on -[metric spaces](metric-spaces.metric-spaces.md) preserves -[Cauchy approximations](metric-spaces.cauchy-approximations-metric-spaces.md). - -## Definition - -```agda -module _ - {l1 l2 l3 l4 : Level} - (X : Metric-Space l1 l2) - (Y : Metric-Space l3 l4) - (f : short-map-Metric-Space X Y) - where - - map-short-map-cauchy-approximation-Metric-Space : - cauchy-approximation-Metric-Space X → - cauchy-approximation-Metric-Space Y - map-short-map-cauchy-approximation-Metric-Space = - map-short-map-cauchy-approximation-Pseudometric-Space - ( pseudometric-Metric-Space X) - ( pseudometric-Metric-Space Y) - ( f) -``` - -## Properties - -### Short maps preserve similarity in the Cauchy pseudocompletion of a pseudometric space - -```agda -module _ - {l1 l2 l3 l4 : Level} - (X : Metric-Space l1 l2) - (Y : Metric-Space l3 l4) - (f : short-map-Metric-Space X Y) - where abstract - - preserves-sim-short-map-cauchy-pseudocompletion-Metric-Space : - preserves-sim-equivalence-relation - ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Space X) - ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Space Y) - ( map-short-map-cauchy-approximation-Metric-Space X Y f) - preserves-sim-short-map-cauchy-pseudocompletion-Metric-Space {x} {y} = - preserves-sim-short-map-cauchy-pseudocompletion-Pseudometric-Space - ( pseudometric-Metric-Space X) - ( pseudometric-Metric-Space Y) - ( f) - { x} - { y} -``` diff --git a/src/metric-spaces/action-on-cauchy-approximations-short-maps-pseudometric-spaces.lagda.md b/src/metric-spaces/action-on-cauchy-approximations-short-maps-pseudometric-spaces.lagda.md index 6ddcdb67309..368391bef67 100644 --- a/src/metric-spaces/action-on-cauchy-approximations-short-maps-pseudometric-spaces.lagda.md +++ b/src/metric-spaces/action-on-cauchy-approximations-short-maps-pseudometric-spaces.lagda.md @@ -18,6 +18,7 @@ open import metric-spaces.cauchy-approximations-pseudometric-spaces open import metric-spaces.cauchy-pseudocompletions-of-pseudometric-spaces open import metric-spaces.pseudometric-spaces open import metric-spaces.short-maps-pseudometric-spaces +open import metric-spaces.similarity-of-elements-pseudometric-spaces ```
@@ -63,7 +64,7 @@ module _ ## Properties -### Short maps preserve similarity in the Cauchy pseudocompletion of a pseudometric space +### Short maps preserve neighborhoods in the Cauchy pseudocompletion of a pseudometric space ```agda module _ @@ -71,6 +72,35 @@ module _ (X : Pseudometric-Space l1 l2) (Y : Pseudometric-Space l3 l4) (f@(map-f , is-short-f) : short-map-Pseudometric-Space X Y) + where + + abstract + is-short-map-cauchy-pseudocompletion-short-map-Pseudometric-Space : + is-short-map-Pseudometric-Space + ( cauchy-pseudocompletion-Pseudometric-Space X) + ( cauchy-pseudocompletion-Pseudometric-Space Y) + ( map-short-map-cauchy-approximation-Pseudometric-Space X Y f) + is-short-map-cauchy-pseudocompletion-short-map-Pseudometric-Space + d (x , _) (y , _) Ndxy δ ε = + is-short-f (δ +ℚ⁺ ε +ℚ⁺ d) (x δ) (y ε) (Ndxy δ ε) + + short-map-cauchy-pseudocompletion-short-map-Pseudometric-Space : + short-map-Pseudometric-Space + ( cauchy-pseudocompletion-Pseudometric-Space X) + ( cauchy-pseudocompletion-Pseudometric-Space Y) + short-map-cauchy-pseudocompletion-short-map-Pseudometric-Space = + ( map-short-map-cauchy-approximation-Pseudometric-Space X Y f , + is-short-map-cauchy-pseudocompletion-short-map-Pseudometric-Space) +``` + +### Short maps preserve similarity in the Cauchy pseudocompletion of a pseudometric space + +```agda +module _ + {l1 l2 l3 l4 : Level} + (X : Pseudometric-Space l1 l2) + (Y : Pseudometric-Space l3 l4) + (f : short-map-Pseudometric-Space X Y) where abstract preserves-sim-short-map-cauchy-pseudocompletion-Pseudometric-Space : @@ -78,7 +108,11 @@ module _ ( equivalence-relation-sim-cauchy-pseudocompletion-Pseudometric-Space X) ( equivalence-relation-sim-cauchy-pseudocompletion-Pseudometric-Space Y) ( map-short-map-cauchy-approximation-Pseudometric-Space X Y f) - preserves-sim-short-map-cauchy-pseudocompletion-Pseudometric-Space - {x , is-approx-x} {y , is-approx-y} x~y δ ε θ = - is-short-f (ε +ℚ⁺ θ +ℚ⁺ δ) (x ε) (y θ) (x~y δ ε θ) + preserves-sim-short-map-cauchy-pseudocompletion-Pseudometric-Space {x} {y} = + preserves-sim-map-short-map-Pseudometric-Space + ( cauchy-pseudocompletion-Pseudometric-Space X) + ( cauchy-pseudocompletion-Pseudometric-Space Y) + ( short-map-cauchy-pseudocompletion-short-map-Pseudometric-Space X Y f) + ( x) + ( y) ``` From 626caa77294ec4596d95ecd1c1fc042805a3c563 Mon Sep 17 00:00:00 2001 From: Louis Wasserman Date: Sat, 13 Jun 2026 14:14:20 -0700 Subject: [PATCH 03/26] Progress --- src/metric-spaces.lagda.md | 3 + ...imations-isometries-metric-spaces.lagda.md | 70 ++++++++++++ ...ns-isometries-pseudometric-spaces.lagda.md | 102 ++++++++++++++++++ ...ns-short-maps-pseudometric-spaces.lagda.md | 92 ++++++++++++++++ ...seudocompletions-of-metric-spaces.lagda.md | 55 ++++++++++ ...ompletions-of-pseudometric-spaces.lagda.md | 25 +++++ 6 files changed, 347 insertions(+) create mode 100644 src/metric-spaces/action-on-cauchy-approximations-isometries-metric-spaces.lagda.md create mode 100644 src/metric-spaces/action-on-cauchy-approximations-isometries-pseudometric-spaces.lagda.md create mode 100644 src/metric-spaces/action-on-cauchy-approximations-short-maps-pseudometric-spaces.lagda.md diff --git a/src/metric-spaces.lagda.md b/src/metric-spaces.lagda.md index 89f28adc578..2e432f509dd 100644 --- a/src/metric-spaces.lagda.md +++ b/src/metric-spaces.lagda.md @@ -62,6 +62,9 @@ metric space, `N d₂ x y` [or](foundation.disjunction.md) module metric-spaces where open import metric-spaces.accumulation-points-subsets-located-metric-spaces public +open import metric-spaces.action-on-cauchy-approximations-isometries-metric-spaces public +open import metric-spaces.action-on-cauchy-approximations-isometries-pseudometric-spaces public +open import metric-spaces.action-on-cauchy-approximations-short-maps-pseudometric-spaces public open import metric-spaces.action-on-cauchy-sequences-short-maps-metric-spaces public open import metric-spaces.action-on-cauchy-sequences-uniformly-continuous-maps-metric-spaces public open import metric-spaces.action-on-convergent-sequences-modulated-uniformly-continuous-maps-metric-spaces public diff --git a/src/metric-spaces/action-on-cauchy-approximations-isometries-metric-spaces.lagda.md b/src/metric-spaces/action-on-cauchy-approximations-isometries-metric-spaces.lagda.md new file mode 100644 index 00000000000..8f6e86c0afd --- /dev/null +++ b/src/metric-spaces/action-on-cauchy-approximations-isometries-metric-spaces.lagda.md @@ -0,0 +1,70 @@ +# The action on Cauchy approximations of isometries on metric spaces + +```agda +module metric-spaces.action-on-cauchy-approximations-isometries-metric-spaces where +``` + +
Imports + +```agda +open import foundation.functoriality-set-quotients +open import foundation.universe-levels + +open import metric-spaces.action-on-cauchy-approximations-isometries-pseudometric-spaces +open import metric-spaces.cauchy-approximations-metric-spaces +open import metric-spaces.cauchy-pseudocompletions-of-metric-spaces +open import metric-spaces.isometries-metric-spaces +open import metric-spaces.isometries-pseudometric-spaces +open import metric-spaces.metric-spaces +``` + +
+ +## Idea + +The action of [isometries](metric-spaces.isometries-metric-spaces.md) on +[metric spaces](metric-spaces.metric-spaces.md) preserves +[Cauchy approximations](metric-spaces.cauchy-approximations-metric-spaces.md). + +## Definition + +```agda +module _ + {l1 l2 l3 l4 : Level} + (X : Metric-Space l1 l2) + (Y : Metric-Space l3 l4) + (f : isometry-Metric-Space X Y) + where + + map-isometry-cauchy-approximation-Metric-Space : + cauchy-approximation-Metric-Space X → + cauchy-approximation-Metric-Space Y + map-isometry-cauchy-approximation-Metric-Space = + map-isometry-cauchy-approximation-Pseudometric-Space + ( pseudometric-Metric-Space X) + ( pseudometric-Metric-Space Y) + ( f) +``` + +## Properties + +### An isometry on metric spaces induces an isometry on the Cauchy pseudocompletions of the metric spaces + +```agda +module _ + {l1 l2 l3 l4 : Level} + (X : Metric-Space l1 l2) + (Y : Metric-Space l3 l4) + (f : isometry-Metric-Space X Y) + where + + isometry-cauchy-pseudocompletion-isometry-Metric-Space : + isometry-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Space X) + ( cauchy-pseudocompletion-Metric-Space Y) + isometry-cauchy-pseudocompletion-isometry-Metric-Space = + isometry-cauchy-pseudocompletion-isometry-Pseudometric-Space + ( pseudometric-Metric-Space X) + ( pseudometric-Metric-Space Y) + ( f) +``` diff --git a/src/metric-spaces/action-on-cauchy-approximations-isometries-pseudometric-spaces.lagda.md b/src/metric-spaces/action-on-cauchy-approximations-isometries-pseudometric-spaces.lagda.md new file mode 100644 index 00000000000..16d2b0789ef --- /dev/null +++ b/src/metric-spaces/action-on-cauchy-approximations-isometries-pseudometric-spaces.lagda.md @@ -0,0 +1,102 @@ +# The action on Cauchy approximations of isometries in pseudometric spaces + +```agda +module metric-spaces.action-on-cauchy-approximations-isometries-pseudometric-spaces where +``` + +
Imports + +```agda +open import elementary-number-theory.addition-positive-rational-numbers + +open import foundation.dependent-pair-types +open import foundation.universe-levels + +open import metric-spaces.action-on-cauchy-approximations-short-maps-pseudometric-spaces +open import metric-spaces.cauchy-approximations-pseudometric-spaces +open import metric-spaces.cauchy-pseudocompletions-of-pseudometric-spaces +open import metric-spaces.isometries-pseudometric-spaces +open import metric-spaces.pseudometric-spaces +``` + +
+ +## Idea + +[Isometries](metric-spaces.isometries-pseudometric-spaces.md) on +[pseudometric spaces](metric-spaces.pseudometric-spaces.md) induce isometries on +the +[Cauchy pseudocompletion](metric-spaces.cauchy-pseudocompletions-of-pseudometric-spaces.md) +of the pseudometric spaces. + +## Definition + +```agda +module _ + {l1 l2 l3 l4 : Level} + (X : Pseudometric-Space l1 l2) + (Y : Pseudometric-Space l3 l4) + (f : isometry-Pseudometric-Space X Y) + where + + map-isometry-cauchy-approximation-Pseudometric-Space : + cauchy-approximation-Pseudometric-Space X → + cauchy-approximation-Pseudometric-Space Y + map-isometry-cauchy-approximation-Pseudometric-Space = + map-short-map-cauchy-approximation-Pseudometric-Space + ( X) + ( Y) + ( short-map-isometry-Pseudometric-Space X Y f) +``` + +## Properties + +### Mapping an isometry on Cauchy approximations in a pseudometric space is an isometry in the Cauchy pseudocompletion + +```agda +module _ + {l1 l2 l3 l4 : Level} + (X : Pseudometric-Space l1 l2) + (Y : Pseudometric-Space l3 l4) + (f : isometry-Pseudometric-Space X Y) + where + + abstract + is-isometry-cauchy-pseudocompletion-isometry-Pseudometric-Space : + is-isometry-Pseudometric-Space + ( cauchy-pseudocompletion-Pseudometric-Space X) + ( cauchy-pseudocompletion-Pseudometric-Space Y) + ( map-isometry-cauchy-approximation-Pseudometric-Space X Y f) + pr1 + ( is-isometry-cauchy-pseudocompletion-isometry-Pseudometric-Space + d (x , is-approx-x) (y , is-approx-y)) + Ndxy δ ε = + preserves-neighborhoods-map-isometry-Pseudometric-Space + ( X) + ( Y) + ( f) + ( δ +ℚ⁺ ε +ℚ⁺ d) + ( x δ) + ( y ε) + ( Ndxy δ ε) + pr2 + ( is-isometry-cauchy-pseudocompletion-isometry-Pseudometric-Space + d (x , is-approx-x) (y , is-approx-y)) + Ndfxfy δ ε = + reflects-neighborhoods-map-isometry-Pseudometric-Space + ( X) + ( Y) + ( f) + ( δ +ℚ⁺ ε +ℚ⁺ d) + ( x δ) + ( y ε) + ( Ndfxfy δ ε) + + isometry-cauchy-pseudocompletion-isometry-Pseudometric-Space : + isometry-Pseudometric-Space + ( cauchy-pseudocompletion-Pseudometric-Space X) + ( cauchy-pseudocompletion-Pseudometric-Space Y) + isometry-cauchy-pseudocompletion-isometry-Pseudometric-Space = + ( map-isometry-cauchy-approximation-Pseudometric-Space X Y f , + is-isometry-cauchy-pseudocompletion-isometry-Pseudometric-Space) +``` diff --git a/src/metric-spaces/action-on-cauchy-approximations-short-maps-pseudometric-spaces.lagda.md b/src/metric-spaces/action-on-cauchy-approximations-short-maps-pseudometric-spaces.lagda.md new file mode 100644 index 00000000000..281e54b3bd9 --- /dev/null +++ b/src/metric-spaces/action-on-cauchy-approximations-short-maps-pseudometric-spaces.lagda.md @@ -0,0 +1,92 @@ +# The action on Cauchy approximations of short maps in pseudometric spaces + +```agda +module metric-spaces.action-on-cauchy-approximations-short-maps-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.dependent-pair-types +open import foundation.universe-levels + +open import metric-spaces.cauchy-approximations-pseudometric-spaces +open import metric-spaces.cauchy-pseudocompletions-of-pseudometric-spaces +open import metric-spaces.pseudometric-spaces +open import metric-spaces.short-maps-pseudometric-spaces +``` + +
+ +## Idea + +The action of [short maps](metric-spaces.short-maps-pseudometric-spaces.md) on +[pseudometric spaces](metric-spaces.pseudometric-spaces.md) preserves +[Cauchy approximations](metric-spaces.cauchy-approximations-pseudometric-spaces.md). + +## Definition + +```agda +module _ + {l1 l2 l3 l4 : Level} + (X : Pseudometric-Space l1 l2) + (Y : Pseudometric-Space l3 l4) + (f@(map-f , is-short-f) : short-map-Pseudometric-Space X Y) + (x@(map-x , is-approx-x) : cauchy-approximation-Pseudometric-Space X) + where + + map-cauchy-approximation-map-short-map-cauchy-approximation-Pseudometric-Space : + ℚ⁺ → type-Pseudometric-Space Y + map-cauchy-approximation-map-short-map-cauchy-approximation-Pseudometric-Space + ε = + map-f (map-x ε) + + abstract + is-cauchy-approximation-map-short-map-cauchy-approximation-Pseudometric-Space : + is-cauchy-approximation-Pseudometric-Space + ( Y) + ( map-cauchy-approximation-map-short-map-cauchy-approximation-Pseudometric-Space) + is-cauchy-approximation-map-short-map-cauchy-approximation-Pseudometric-Space + δ ε = + is-short-f (δ +ℚ⁺ ε) (map-x δ) (map-x ε) (is-approx-x δ ε) + + map-short-map-cauchy-approximation-Pseudometric-Space : + cauchy-approximation-Pseudometric-Space Y + map-short-map-cauchy-approximation-Pseudometric-Space = + ( map-cauchy-approximation-map-short-map-cauchy-approximation-Pseudometric-Space , + is-cauchy-approximation-map-short-map-cauchy-approximation-Pseudometric-Space) +``` + +## Properties + +### The induced action of a short map on Cauchy approximations is short in the Cauchy pseudocompletion of a pseudometric space + +```agda +module _ + {l1 l2 l3 l4 : Level} + (X : Pseudometric-Space l1 l2) + (Y : Pseudometric-Space l3 l4) + (f@(map-f , is-short-f) : short-map-Pseudometric-Space X Y) + where + + abstract + is-short-map-cauchy-pseudocompletion-short-map-Pseudometric-Space : + is-short-map-Pseudometric-Space + ( cauchy-pseudocompletion-Pseudometric-Space X) + ( cauchy-pseudocompletion-Pseudometric-Space Y) + ( map-short-map-cauchy-approximation-Pseudometric-Space X Y f) + is-short-map-cauchy-pseudocompletion-short-map-Pseudometric-Space + d (x , _) (y , _) Ndxy δ ε = + is-short-f (δ +ℚ⁺ ε +ℚ⁺ d) (x δ) (y ε) (Ndxy δ ε) + + short-map-cauchy-pseudocompletion-short-map-Pseudometric-Space : + short-map-Pseudometric-Space + ( cauchy-pseudocompletion-Pseudometric-Space X) + ( cauchy-pseudocompletion-Pseudometric-Space Y) + short-map-cauchy-pseudocompletion-short-map-Pseudometric-Space = + ( map-short-map-cauchy-approximation-Pseudometric-Space X Y f , + is-short-map-cauchy-pseudocompletion-short-map-Pseudometric-Space) +``` diff --git a/src/metric-spaces/cauchy-pseudocompletions-of-metric-spaces.lagda.md b/src/metric-spaces/cauchy-pseudocompletions-of-metric-spaces.lagda.md index b434d07f104..edb2a44f4f2 100644 --- a/src/metric-spaces/cauchy-pseudocompletions-of-metric-spaces.lagda.md +++ b/src/metric-spaces/cauchy-pseudocompletions-of-metric-spaces.lagda.md @@ -13,6 +13,7 @@ open import elementary-number-theory.positive-rational-numbers open import foundation.action-on-identifications-functions open import foundation.binary-relations open import foundation.dependent-pair-types +open import foundation.equivalence-relations open import foundation.function-types open import foundation.homotopies open import foundation.identity-types @@ -253,3 +254,57 @@ module _ isometry-lim-cauchy-approximation-cauchy-pseudocompletion-Pseudometric-Space ( pseudometric-Metric-Space M) ``` + +### The similarity relation in a Cauchy pseudocompletion + +```agda +module _ + {l1 l2 : Level} (M : Metric-Space l1 l2) + where + + equivalence-relation-sim-cauchy-pseudocompletion-Metric-Space : + equivalence-relation l2 (cauchy-approximation-Metric-Space M) + equivalence-relation-sim-cauchy-pseudocompletion-Metric-Space = + equivalence-relation-sim-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Space M) + + sim-prop-cauchy-pseudocompletion-Metric-Space : + Relation-Prop l2 (cauchy-approximation-Metric-Space M) + sim-prop-cauchy-pseudocompletion-Metric-Space = + sim-prop-Pseudometric-Space (cauchy-pseudocompletion-Metric-Space M) + + sim-cauchy-pseudocompletion-Metric-Space : + Relation l2 (cauchy-approximation-Metric-Space M) + sim-cauchy-pseudocompletion-Metric-Space = + type-Relation-Prop sim-prop-cauchy-pseudocompletion-Metric-Space +``` + +### If two constant Cauchy approximations are similar, they have the same constant + +```agda +module _ + {l1 l2 : Level} (M : Metric-Space l1 l2) + where abstract + + eq-sim-const-cauchy-approximation-cauchy-pseudocompletion-Metric-Space : + (x y : type-Metric-Space M) → + sim-cauchy-pseudocompletion-Metric-Space M + ( const-cauchy-approximation-Metric-Space M x) + ( const-cauchy-approximation-Metric-Space M y) → + x = y + eq-sim-const-cauchy-approximation-cauchy-pseudocompletion-Metric-Space + x y cx~cy = + eq-sim-Metric-Space + ( M) + ( x) + ( y) + ( λ ε → + let + (ε12 , ε3 , ε12+ε3=ε) = split-ℚ⁺ ε + (ε1 , ε2 , ε1+ε2=ε12) = split-ℚ⁺ ε12 + in + tr + ( λ d → neighborhood-Metric-Space M d x y) + ( ap-add-ℚ⁺ ε1+ε2=ε12 refl ∙ ε12+ε3=ε) + ( cx~cy ε3 ε1 ε2)) +``` diff --git a/src/metric-spaces/cauchy-pseudocompletions-of-pseudometric-spaces.lagda.md b/src/metric-spaces/cauchy-pseudocompletions-of-pseudometric-spaces.lagda.md index 7b9c060eed8..205625ab962 100644 --- a/src/metric-spaces/cauchy-pseudocompletions-of-pseudometric-spaces.lagda.md +++ b/src/metric-spaces/cauchy-pseudocompletions-of-pseudometric-spaces.lagda.md @@ -19,6 +19,7 @@ open import foundation.action-on-identifications-functions open import foundation.binary-relations open import foundation.dependent-pair-types open import foundation.dependent-products-propositions +open import foundation.equivalence-relations open import foundation.function-types open import foundation.identity-types open import foundation.propositions @@ -279,6 +280,30 @@ module _ is-saturated-neighborhood-cauchy-pseudocompletion-Pseudometric-Space M) ``` +### The similarity equivalence relation in the Cauchy pseudocompletion of a pseudometric space + +```agda +module _ + {l1 l2 : Level} (M : Pseudometric-Space l1 l2) + where + + equivalence-relation-sim-cauchy-pseudocompletion-Pseudometric-Space : + equivalence-relation l2 (cauchy-approximation-Pseudometric-Space M) + equivalence-relation-sim-cauchy-pseudocompletion-Pseudometric-Space = + equivalence-relation-sim-Pseudometric-Space + ( cauchy-pseudocompletion-Pseudometric-Space M) + + sim-prop-cauchy-pseudocompletion-Pseudometric-Space : + Relation-Prop l2 (cauchy-approximation-Pseudometric-Space M) + sim-prop-cauchy-pseudocompletion-Pseudometric-Space = + sim-prop-Pseudometric-Space (cauchy-pseudocompletion-Pseudometric-Space M) + + sim-cauchy-pseudocompletion-Pseudometric-Space : + Relation l2 (cauchy-approximation-Pseudometric-Space M) + sim-cauchy-pseudocompletion-Pseudometric-Space = + sim-Pseudometric-Space (cauchy-pseudocompletion-Pseudometric-Space M) +``` + ### The isometry from a pseudometric space to its Cauchy pseudocompletion ```agda From a3b8c80684efc1f6aa855a723be5f904a6ffbac7 Mon Sep 17 00:00:00 2001 From: Louis Wasserman Date: Sat, 13 Jun 2026 14:17:55 -0700 Subject: [PATCH 04/26] Progress --- ...roximations-metric-abelian-groups.lagda.md | 456 ++++++++++++++++++ ...roximations-metric-abelian-groups.lagda.md | 70 +++ ...completions-metric-abelian-groups.lagda.md | 94 ++++ src/analysis/metric-abelian-groups.lagda.md | 157 +++++- ...quality-positive-rational-numbers.lagda.md | 13 + 5 files changed, 773 insertions(+), 17 deletions(-) create mode 100644 src/analysis/addition-cauchy-approximations-metric-abelian-groups.lagda.md create mode 100644 src/analysis/cauchy-approximations-metric-abelian-groups.lagda.md create mode 100644 src/analysis/cauchy-pseudocompletions-metric-abelian-groups.lagda.md diff --git a/src/analysis/addition-cauchy-approximations-metric-abelian-groups.lagda.md b/src/analysis/addition-cauchy-approximations-metric-abelian-groups.lagda.md new file mode 100644 index 00000000000..15b5c86afe3 --- /dev/null +++ b/src/analysis/addition-cauchy-approximations-metric-abelian-groups.lagda.md @@ -0,0 +1,456 @@ +# Addition of Cauchy approximations in metric abelian groups + +```agda +module analysis.addition-cauchy-approximations-metric-abelian-groups where +``` + +
Imports + +```agda +open import analysis.cauchy-approximations-metric-abelian-groups +open import analysis.cauchy-pseudocompletions-metric-abelian-groups +open import analysis.metric-abelian-groups + +open import elementary-number-theory.addition-positive-rational-numbers +open import elementary-number-theory.positive-rational-numbers +open import elementary-number-theory.strict-inequality-positive-rational-numbers +open import elementary-number-theory.strict-inequality-rational-numbers + +open import foundation.binary-functoriality-set-quotients +open import foundation.dependent-pair-types +open import foundation.function-extensionality +open import foundation.identity-types +open import foundation.logical-equivalences +open import foundation.subtypes +open import foundation.transport-along-identifications +open import foundation.universe-levels + +open import metric-spaces.action-on-cauchy-approximations-isometries-metric-spaces +open import metric-spaces.cauchy-approximations-metric-spaces +open import metric-spaces.cauchy-pseudocompletions-of-metric-spaces +open import metric-spaces.isometries-metric-spaces +open import metric-spaces.metric-quotients-of-pseudometric-spaces +open import metric-spaces.metric-spaces +open import metric-spaces.short-maps-pseudometric-spaces +open import metric-spaces.similarity-of-elements-pseudometric-spaces +``` + +
+ +## Idea + +[Cauchy approximations](analysis.cauchy-approximations-metric-abelian-groups.md) +in [metric abelian groups](analysis.metric-abelian-groups.md) admit an addition +operation whose properties resemble an +[abelian group](group-theory.abelian-groups.md) with respect to the +[similarity relationship](metric-spaces.similarity-of-elements-pseudometric-spaces.md) +of the +[Cauchy pseudocompletion of the metric abelian group](analysis.cauchy-pseudocompletions-metric-abelian-groups.md). + +## Definition + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + ((x , is-approx-x) (y , is-approx-y) : + cauchy-approximation-Metric-Ab G) + where + + opaque + map-add-cauchy-approximation-Metric-Ab : + ℚ⁺ → type-Metric-Ab G + map-add-cauchy-approximation-Metric-Ab ε = + let (δ , _) = bound-double-le-ℚ⁺ ε in add-Metric-Ab G (x δ) (y δ) + + abstract opaque + unfolding map-add-cauchy-approximation-Metric-Ab + + is-cauchy-approximation-map-add-cauchy-approximation-Metric-Ab : + is-cauchy-approximation-Metric-Ab G map-add-cauchy-approximation-Metric-Ab + is-cauchy-approximation-map-add-cauchy-approximation-Metric-Ab δ ε = + let + (δ' , 2δ'<δ) = bound-double-le-ℚ⁺ δ + (ε' , 2ε'<ε) = bound-double-le-ℚ⁺ ε + in + monotonic-neighborhood-Metric-Ab G + ( add-Metric-Ab G (x δ') (y δ')) + ( add-Metric-Ab G (x ε') (y ε')) + ( (δ' +ℚ⁺ ε') +ℚ⁺ (δ' +ℚ⁺ ε')) + ( δ +ℚ⁺ ε) + ( concat-eq-le-ℚ⁺ + { z = δ +ℚ⁺ ε} + ( interchange-law-add-add-ℚ⁺ δ' ε' δ' ε') + ( preserves-le-add-ℚ 2δ'<δ 2ε'<ε)) + ( neighborhood-add-Metric-Ab + ( G) + ( δ' +ℚ⁺ ε') + ( δ' +ℚ⁺ ε') + ( x δ') + ( x ε') + ( y δ') + ( y ε') + ( is-approx-x δ' ε') + ( is-approx-y δ' ε')) + + add-cauchy-approximation-Metric-Ab : cauchy-approximation-Metric-Ab G + add-cauchy-approximation-Metric-Ab = + ( map-add-cauchy-approximation-Metric-Ab , + is-cauchy-approximation-map-add-cauchy-approximation-Metric-Ab) +``` + +## Properties + +### Addition of Cauchy approximations is a similarity-preserving binary map + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where abstract opaque + + unfolding map-add-cauchy-approximation-Metric-Ab + + preserves-sim-add-cauchy-approximation-Metric-Ab : + preserves-sim-binary-map-equivalence-relation + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) + ( add-cauchy-approximation-Metric-Ab G) + preserves-sim-add-cauchy-approximation-Metric-Ab + {x , is-approx-x} {x' , is-approx-x'} {y , is-approx-y} {y' , is-approx-y'} + x~x' y~y' δ ε θ = + let + (δ' , 2δ'<δ) = bound-double-le-ℚ⁺ δ + (ε' , 2ε'<ε) = bound-double-le-ℚ⁺ ε + (θ' , 2θ'<θ) = bound-double-le-ℚ⁺ θ + in + monotonic-neighborhood-Metric-Ab G + ( add-Metric-Ab G (x ε') (y ε')) + ( add-Metric-Ab G (x' θ') (y' θ')) + ( (ε' +ℚ⁺ θ' +ℚ⁺ δ') +ℚ⁺ (ε' +ℚ⁺ θ' +ℚ⁺ δ')) + ( ε +ℚ⁺ θ +ℚ⁺ δ) + ( concat-eq-le-ℚ⁺ + { z = ε +ℚ⁺ θ +ℚ⁺ δ} + ( equational-reasoning + (ε' +ℚ⁺ θ' +ℚ⁺ δ') +ℚ⁺ (ε' +ℚ⁺ θ' +ℚ⁺ δ') + = ((ε' +ℚ⁺ θ') +ℚ⁺ (ε' +ℚ⁺ θ')) +ℚ⁺ (δ' +ℚ⁺ δ') + by interchange-law-add-add-ℚ⁺ _ _ _ _ + = (ε' +ℚ⁺ ε') +ℚ⁺ (θ' +ℚ⁺ θ') +ℚ⁺ (δ' +ℚ⁺ δ') + by ap-add-ℚ⁺ (interchange-law-add-add-ℚ⁺ ε' θ' ε' θ') refl) + ( preserves-le-add-ℚ + ( preserves-le-add-ℚ 2ε'<ε 2θ'<θ) + ( 2δ'<δ))) + ( neighborhood-add-Metric-Ab + ( G) + ( ε' +ℚ⁺ θ' +ℚ⁺ δ') + ( ε' +ℚ⁺ θ' +ℚ⁺ δ') + ( x ε') + ( x' θ') + ( y ε') + ( y' θ') + ( x~x' δ' ε' θ') + ( y~y' δ' ε' θ')) +``` + +### The addition of two constant Cauchy approximations for `x` and `y` is similar to the constant approximation for `x + y` + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where abstract opaque + + unfolding map-add-cauchy-approximation-Metric-Ab + + sim-add-const-cauchy-approximation-Metric-Ab : + (x y : type-Metric-Ab G) → + sim-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Space + ( metric-space-Metric-Ab G)) + ( add-cauchy-approximation-Metric-Ab G + ( const-cauchy-approximation-Metric-Ab G x) + ( const-cauchy-approximation-Metric-Ab G y)) + ( const-cauchy-approximation-Metric-Ab G (add-Metric-Ab G x y)) + sim-add-const-cauchy-approximation-Metric-Ab x y δ ε θ = + refl-neighborhood-Metric-Ab G (ε +ℚ⁺ θ +ℚ⁺ δ) (add-Metric-Ab G x y) +``` + +### Addition is associative relative to the similarity relation + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + (ax@(x , is-approx-x) ay@(y , is-approx-y) az@(z , is-approx-z) : + cauchy-approximation-Metric-Ab G) + where abstract opaque + + unfolding map-add-cauchy-approximation-Metric-Ab + + sim-associative-add-cauchy-approximation-Metric-Ab : + sim-cauchy-pseudocompletion-Metric-Ab G + ( add-cauchy-approximation-Metric-Ab G + ( add-cauchy-approximation-Metric-Ab G ax ay) + ( az)) + ( add-cauchy-approximation-Metric-Ab G + ( ax) + ( add-cauchy-approximation-Metric-Ab G ay az)) + sim-associative-add-cauchy-approximation-Metric-Ab δ ε θ = + let + (ε' , 2ε'<ε) = bound-double-le-ℚ⁺ ε + (ε'' , 2ε''<ε') = bound-double-le-ℚ⁺ ε' + (θ' , 2θ'<θ) = bound-double-le-ℚ⁺ θ + (θ'' , 2θ''<θ') = bound-double-le-ℚ⁺ θ' + xyz1 = add-Metric-Ab G (add-Metric-Ab G (x ε'') (y ε'')) (z ε') + xyz2 = add-Metric-Ab G (add-Metric-Ab G (x θ') (y θ'')) (z θ'') + in + tr + ( neighborhood-Metric-Ab G (ε +ℚ⁺ θ +ℚ⁺ δ) xyz1) + ( associative-add-Metric-Ab G _ _ _) + ( monotonic-neighborhood-Metric-Ab G + ( xyz1) + ( xyz2) + ( (ε'' +ℚ⁺ θ') +ℚ⁺ (ε'' +ℚ⁺ θ'') +ℚ⁺ (ε' +ℚ⁺ θ'')) + ( ε +ℚ⁺ θ +ℚ⁺ δ) + ( concat-eq-le-ℚ⁺ + { z = ε +ℚ⁺ θ +ℚ⁺ δ} + ( equational-reasoning + (ε'' +ℚ⁺ θ') +ℚ⁺ (ε'' +ℚ⁺ θ'') +ℚ⁺ (ε' +ℚ⁺ θ'') + = ((ε'' +ℚ⁺ ε'') +ℚ⁺ (θ' +ℚ⁺ θ'')) +ℚ⁺ (ε' +ℚ⁺ θ'') + by ap-add-ℚ⁺ (interchange-law-add-add-ℚ⁺ _ _ _ _) refl + = ((ε'' +ℚ⁺ ε'') +ℚ⁺ ε') +ℚ⁺ ((θ' +ℚ⁺ θ'') +ℚ⁺ θ'') + by interchange-law-add-add-ℚ⁺ _ _ _ _ + = ((ε'' +ℚ⁺ ε'') +ℚ⁺ ε') +ℚ⁺ (θ' +ℚ⁺ (θ'' +ℚ⁺ θ'')) + by ap-add-ℚ⁺ refl (associative-add-ℚ⁺ _ _ _)) + ( transitive-le-ℚ⁺ + ( ((ε'' +ℚ⁺ ε'') +ℚ⁺ ε') +ℚ⁺ (θ' +ℚ⁺ (θ'' +ℚ⁺ θ''))) + ( (ε' +ℚ⁺ ε') +ℚ⁺ (θ' +ℚ⁺ θ')) + ( ε +ℚ⁺ θ +ℚ⁺ δ) + ( transitive-le-ℚ⁺ + ( (ε' +ℚ⁺ ε') +ℚ⁺ (θ' +ℚ⁺ θ')) + ( ε +ℚ⁺ θ) + ( ε +ℚ⁺ θ +ℚ⁺ δ) + ( le-left-add-ℚ⁺ (ε +ℚ⁺ θ) δ) + ( preserves-le-add-ℚ 2ε'<ε 2θ'<θ)) + ( preserves-le-add-ℚ + ( preserves-le-left-add-ℚ _ _ _ 2ε''<ε') + ( preserves-le-right-add-ℚ _ _ _ 2θ''<θ')))) + ( neighborhood-add-Metric-Ab G + ( (ε'' +ℚ⁺ θ') +ℚ⁺ (ε'' +ℚ⁺ θ'')) + ( ε' +ℚ⁺ θ'') + ( add-Metric-Ab G (x ε'') (y ε'')) + ( add-Metric-Ab G (x θ') (y θ'')) + ( z ε') + ( z θ'') + ( neighborhood-add-Metric-Ab G + ( ε'' +ℚ⁺ θ') + ( ε'' +ℚ⁺ θ'') + ( x ε'') + ( x θ') + ( y ε'') + ( y θ'') + ( is-approx-x ε'' θ') + ( is-approx-y ε'' θ'')) + ( is-approx-z ε' θ''))) +``` + +### Commutativity of addition + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + (x y : cauchy-approximation-Metric-Ab G) + where abstract opaque + + unfolding map-add-cauchy-approximation-Metric-Ab + + commutative-add-cauchy-approximation-Metric-Ab : + add-cauchy-approximation-Metric-Ab G x y = + add-cauchy-approximation-Metric-Ab G y x + commutative-add-cauchy-approximation-Metric-Ab = + eq-type-subtype + ( is-cauchy-approximation-prop-Metric-Ab G) + ( eq-htpy (λ _ → commutative-add-Metric-Ab G _ _)) +``` + +### Unit laws + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + (ax@(x , is-approx-x) : cauchy-approximation-Metric-Ab G) + where abstract opaque + + unfolding map-add-cauchy-approximation-Metric-Ab + + sim-left-unit-law-add-cauchy-approximation-Metric-Ab : + sim-cauchy-pseudocompletion-Metric-Ab G + ( add-cauchy-approximation-Metric-Ab G + ( zero-cauchy-approximation-Metric-Ab G) + ( ax)) + ( ax) + sim-left-unit-law-add-cauchy-approximation-Metric-Ab δ ε θ = + let (ε' , 2ε'<ε) = bound-double-le-ℚ⁺ ε in + monotonic-neighborhood-Metric-Ab G + ( add-Metric-Ab G (zero-Metric-Ab G) (x ε')) + ( x θ) + ( ε' +ℚ⁺ θ) + ( ε +ℚ⁺ θ +ℚ⁺ δ) + ( transitive-le-ℚ⁺ + ( ε' +ℚ⁺ θ) + ( ε +ℚ⁺ θ) + ( ε +ℚ⁺ θ +ℚ⁺ δ) + ( le-left-add-ℚ⁺ (ε +ℚ⁺ θ) δ) + ( preserves-le-left-add-ℚ _ _ _ (le-modulus-le-double-le-ℚ⁺ ε))) + ( inv-tr + ( λ y → neighborhood-Metric-Ab G (ε' +ℚ⁺ θ) y (x θ)) + ( left-unit-law-add-Metric-Ab G (x ε')) + ( is-approx-x ε' θ)) + + sim-right-unit-law-add-cauchy-approximation-Metric-Ab : + sim-cauchy-pseudocompletion-Metric-Ab G + ( add-cauchy-approximation-Metric-Ab G + ( ax) + ( zero-cauchy-approximation-Metric-Ab G)) + ( ax) + sim-right-unit-law-add-cauchy-approximation-Metric-Ab = + tr + ( λ ay → sim-cauchy-pseudocompletion-Metric-Ab G ay ax) + ( commutative-add-cauchy-approximation-Metric-Ab G + ( zero-cauchy-approximation-Metric-Ab G) + ( ax)) + ( sim-left-unit-law-add-cauchy-approximation-Metric-Ab) +``` + +### Negations of Cauchy approximations + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where + + neg-cauchy-approximation-Metric-Ab : + cauchy-approximation-Metric-Ab G → cauchy-approximation-Metric-Ab G + neg-cauchy-approximation-Metric-Ab = + map-isometry-cauchy-approximation-Metric-Space + ( metric-space-Metric-Ab G) + ( metric-space-Metric-Ab G) + ( isometry-neg-Metric-Ab G) +``` + +### Inverse laws of Cauchy approximations + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + (ax@(x , is-approx-x) : cauchy-approximation-Metric-Ab G) + where abstract opaque + + unfolding map-add-cauchy-approximation-Metric-Ab + + left-inverse-law-add-cauchy-approximation-Metric-Ab : + add-cauchy-approximation-Metric-Ab G + ( neg-cauchy-approximation-Metric-Ab G ax) + ( ax) = + zero-cauchy-approximation-Metric-Ab G + left-inverse-law-add-cauchy-approximation-Metric-Ab = + eq-type-subtype + ( is-cauchy-approximation-prop-Metric-Ab G) + ( eq-htpy (λ _ → left-inverse-law-add-Metric-Ab G _)) + + right-inverse-law-add-cauchy-approximation-Metric-Ab : + add-cauchy-approximation-Metric-Ab G + ( ax) + ( neg-cauchy-approximation-Metric-Ab G ax) = + zero-cauchy-approximation-Metric-Ab G + right-inverse-law-add-cauchy-approximation-Metric-Ab = + eq-type-subtype + ( is-cauchy-approximation-prop-Metric-Ab G) + ( eq-htpy (λ _ → right-inverse-law-add-Metric-Ab G _)) +``` + +### Negations of Cauchy approximations preserve similarity + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where abstract + + preserves-sim-neg-cauchy-approximation-Metric-Ab : + (x y : cauchy-approximation-Metric-Ab G) → + sim-cauchy-pseudocompletion-Metric-Ab G x y → + sim-cauchy-pseudocompletion-Metric-Ab G + ( neg-cauchy-approximation-Metric-Ab G x) + ( neg-cauchy-approximation-Metric-Ab G y) + preserves-sim-neg-cauchy-approximation-Metric-Ab = + preserves-sim-map-isometry-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Ab G) + ( cauchy-pseudocompletion-Metric-Ab G) + ( isometry-cauchy-pseudocompletion-isometry-Metric-Space + ( metric-space-Metric-Ab G) + ( metric-space-Metric-Ab G) + ( isometry-neg-Metric-Ab G)) +``` + +### Left addition preserves neighborhoods + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where + + abstract opaque + unfolding map-add-cauchy-approximation-Metric-Ab + + preserves-neighborhood-left-add-cauchy-approximation-Metric-Ab : + (x : cauchy-approximation-Metric-Ab G) → + is-short-map-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Ab G) + ( cauchy-pseudocompletion-Metric-Ab G) + ( add-cauchy-approximation-Metric-Ab G x) + preserves-neighborhood-left-add-cauchy-approximation-Metric-Ab + (x , is-approx-x) d (y , is-approx-y) (z , is-approx-z) Ndyz δ ε = + let + (δ' , 2δ'<δ) = bound-double-le-ℚ⁺ δ + (ε' , 2ε'<ε) = bound-double-le-ℚ⁺ ε + in + monotonic-neighborhood-Metric-Ab G + ( add-Metric-Ab G (x δ') (y δ')) + ( add-Metric-Ab G (x ε') (z ε')) + ( (δ' +ℚ⁺ ε') +ℚ⁺ (δ' +ℚ⁺ ε' +ℚ⁺ d)) + ( δ +ℚ⁺ ε +ℚ⁺ d) + ( concat-eq-le-ℚ⁺ + { z = δ +ℚ⁺ ε +ℚ⁺ d} + ( equational-reasoning + (δ' +ℚ⁺ ε') +ℚ⁺ (δ' +ℚ⁺ ε' +ℚ⁺ d) + = (δ' +ℚ⁺ ε') +ℚ⁺ (δ' +ℚ⁺ ε') +ℚ⁺ d + by inv (associative-add-ℚ⁺ _ _ _) + = (δ' +ℚ⁺ δ') +ℚ⁺ (ε' +ℚ⁺ ε') +ℚ⁺ d + by ap-add-ℚ⁺ (interchange-law-add-add-ℚ⁺ _ _ _ _) refl) + ( preserves-le-left-add-ℚ _ _ _ (preserves-le-add-ℚ 2δ'<δ 2ε'<ε))) + ( neighborhood-add-Metric-Ab G + ( δ' +ℚ⁺ ε') + ( δ' +ℚ⁺ ε' +ℚ⁺ d) + ( x δ') + ( x ε') + ( y δ') + ( z ε') + ( is-approx-x δ' ε') + ( Ndyz δ' ε')) + + short-map-left-add-cauchy-pseudocompletion-Metric-Ab : + (x : cauchy-approximation-Metric-Ab G) → + short-map-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Ab G) + ( cauchy-pseudocompletion-Metric-Ab G) + short-map-left-add-cauchy-pseudocompletion-Metric-Ab x = + ( add-cauchy-approximation-Metric-Ab G x , + preserves-neighborhood-left-add-cauchy-approximation-Metric-Ab x) +``` diff --git a/src/analysis/cauchy-approximations-metric-abelian-groups.lagda.md b/src/analysis/cauchy-approximations-metric-abelian-groups.lagda.md new file mode 100644 index 00000000000..f93cdc3d811 --- /dev/null +++ b/src/analysis/cauchy-approximations-metric-abelian-groups.lagda.md @@ -0,0 +1,70 @@ +# Cauchy approximations in metric abelian groups + +```agda +module analysis.cauchy-approximations-metric-abelian-groups where +``` + +
Imports + +```agda +open import analysis.metric-abelian-groups + +open import elementary-number-theory.positive-rational-numbers + +open import foundation.subtypes +open import foundation.universe-levels + +open import metric-spaces.cauchy-approximations-metric-spaces +``` + +
+ +## Idea + +A +{{#concept "Cauchy approximation" Disambiguation="in a metric abelian group" Agda=cauchy-approximation-Metric-Ab}} +in a [metric abelian group](analysis.metric-abelian-groups.md) is a +[Cauchy approximation](metric-spaces.cauchy-approximations-metric-spaces.md) in +the underlying [metric space](metric-spaces.metric-spaces.md). + +## Definition + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where + + is-cauchy-approximation-prop-Metric-Ab : subtype l2 (ℚ⁺ → type-Metric-Ab G) + is-cauchy-approximation-prop-Metric-Ab = + is-cauchy-approximation-prop-Metric-Space (metric-space-Metric-Ab G) + + is-cauchy-approximation-Metric-Ab : (ℚ⁺ → type-Metric-Ab G) → UU l2 + is-cauchy-approximation-Metric-Ab = + is-in-subtype is-cauchy-approximation-prop-Metric-Ab + + cauchy-approximation-Metric-Ab : UU (l1 ⊔ l2) + cauchy-approximation-Metric-Ab = + type-subtype is-cauchy-approximation-prop-Metric-Ab +``` + +## Properties + +### Constant maps in metric abelian groups are Cauchy approximations + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where + + const-cauchy-approximation-Metric-Ab : + type-Metric-Ab G → cauchy-approximation-Metric-Ab G + const-cauchy-approximation-Metric-Ab = + const-cauchy-approximation-Metric-Space (metric-space-Metric-Ab G) + + zero-cauchy-approximation-Metric-Ab : + cauchy-approximation-Metric-Ab G + zero-cauchy-approximation-Metric-Ab = + const-cauchy-approximation-Metric-Ab (zero-Metric-Ab G) +``` diff --git a/src/analysis/cauchy-pseudocompletions-metric-abelian-groups.lagda.md b/src/analysis/cauchy-pseudocompletions-metric-abelian-groups.lagda.md new file mode 100644 index 00000000000..63b1685f2e2 --- /dev/null +++ b/src/analysis/cauchy-pseudocompletions-metric-abelian-groups.lagda.md @@ -0,0 +1,94 @@ +# Cauchy pseudocompletions of metric abelian groups + +```agda +module analysis.cauchy-pseudocompletions-metric-abelian-groups where +``` + +
Imports + +```agda +open import analysis.cauchy-approximations-metric-abelian-groups +open import analysis.metric-abelian-groups + +open import elementary-number-theory.positive-rational-numbers + +open import foundation.binary-relations +open import foundation.equivalence-relations +open import foundation.identity-types +open import foundation.universe-levels + +open import metric-spaces.cauchy-pseudocompletions-of-metric-spaces +open import metric-spaces.pseudometric-spaces +open import metric-spaces.rational-neighborhood-relations +open import metric-spaces.similarity-of-elements-pseudometric-spaces +``` + +
+ +## Idea + +The +{{#concept "Cauchy pseudocompletion" Disambiguation="of a metric abelian group" Agda=cauchy-pseudocompletion-Metric-Ab}} +of a [metric abelian group](group-theory.metric-abelian-groups.md) is the +[Cauchy pseudocompletion](metric-spaces.cauchy-pseudocompletions-of-metric-spaces.md) +of the underlying [metric space](metric-spaces.metric-spaces.md). + +## Definition + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where + + cauchy-pseudocompletion-Metric-Ab : Pseudometric-Space (l1 ⊔ l2) l2 + cauchy-pseudocompletion-Metric-Ab = + cauchy-pseudocompletion-Metric-Space (metric-space-Metric-Ab G) + + neighborhood-prop-cauchy-pseudocompletion-Metric-Ab : + Rational-Neighborhood-Relation l2 (cauchy-approximation-Metric-Ab G) + neighborhood-prop-cauchy-pseudocompletion-Metric-Ab = + neighborhood-prop-Pseudometric-Space cauchy-pseudocompletion-Metric-Ab + + neighborhood-cauchy-pseudocompletion-Metric-Ab : + ℚ⁺ → Relation l2 (cauchy-approximation-Metric-Ab G) + neighborhood-cauchy-pseudocompletion-Metric-Ab = + neighborhood-Pseudometric-Space cauchy-pseudocompletion-Metric-Ab + + equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab : + equivalence-relation l2 (cauchy-approximation-Metric-Ab G) + equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab = + equivalence-relation-sim-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Ab) + + sim-prop-cauchy-pseudocompletion-Metric-Ab : + Relation-Prop l2 (cauchy-approximation-Metric-Ab G) + sim-prop-cauchy-pseudocompletion-Metric-Ab = + sim-prop-Pseudometric-Space cauchy-pseudocompletion-Metric-Ab + + sim-cauchy-pseudocompletion-Metric-Ab : + Relation l2 (cauchy-approximation-Metric-Ab G) + sim-cauchy-pseudocompletion-Metric-Ab = + sim-Pseudometric-Space cauchy-pseudocompletion-Metric-Ab +``` + +## Properties + +### If two constant Cauchy approximations are similar, they have the same constant + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where abstract + + eq-sim-const-cauchy-approximation-cauchy-pseudocompletion-Metric-Ab : + (x y : type-Metric-Ab G) → + sim-cauchy-pseudocompletion-Metric-Ab G + ( const-cauchy-approximation-Metric-Ab G x) + ( const-cauchy-approximation-Metric-Ab G y) → + x = y + eq-sim-const-cauchy-approximation-cauchy-pseudocompletion-Metric-Ab = + eq-sim-const-cauchy-approximation-cauchy-pseudocompletion-Metric-Space + ( metric-space-Metric-Ab G) +``` diff --git a/src/analysis/metric-abelian-groups.lagda.md b/src/analysis/metric-abelian-groups.lagda.md index bf9a4eaf0c3..57eaaa6771c 100644 --- a/src/analysis/metric-abelian-groups.lagda.md +++ b/src/analysis/metric-abelian-groups.lagda.md @@ -7,16 +7,19 @@ module analysis.metric-abelian-groups 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-binary-functions open import foundation.binary-relations +open import foundation.binary-transport open import foundation.cartesian-product-types open import foundation.conjunction open import foundation.dependent-pair-types open import foundation.dependent-products-propositions open import foundation.function-extensionality open import foundation.identity-types +open import foundation.logical-equivalences open import foundation.propositions open import foundation.transport-along-identifications open import foundation.universe-levels @@ -26,11 +29,15 @@ open import group-theory.abelian-groups open import metric-spaces.cartesian-products-metric-spaces open import metric-spaces.extensionality-pseudometric-spaces open import metric-spaces.isometries-metric-spaces -open import metric-spaces.isometries-pseudometric-spaces open import metric-spaces.metric-spaces open import metric-spaces.modulated-uniformly-continuous-maps-metric-spaces +open import metric-spaces.monotonic-rational-neighborhood-relations open import metric-spaces.pseudometric-spaces open import metric-spaces.rational-neighborhood-relations +open import metric-spaces.reflexive-rational-neighborhood-relations +open import metric-spaces.short-maps-metric-spaces +open import metric-spaces.short-maps-pseudometric-spaces +open import metric-spaces.triangular-rational-neighborhood-relations open import metric-spaces.uniformly-continuous-maps-metric-spaces ``` @@ -41,8 +48,9 @@ open import metric-spaces.uniformly-continuous-maps-metric-spaces A {{#concept "metric abelian group" Agda=Metric-Ab}} is an [abelian group](group-theory.abelian-groups.md) endowed with the structure of a [metric space](metric-spaces.metric-spaces.md) such that the addition operation -and negation operation are -[isometries](metric-spaces.isometries-metric-spaces.md). +and negation operation are [short](metric-spaces.short-maps-metric-spaces.md) +(which, together with the group operations, implies they are +[isometries](metric-spaces.isometries-metric-spaces.md)). ## Definition @@ -55,10 +63,10 @@ is-metric-ab-prop-Ab-Pseudometric-Structure G M = MS = (type-Ab G , M) in is-extensional-prop-Pseudometric-Space MS ∧ - is-isometry-prop-Pseudometric-Space MS MS (neg-Ab G) ∧ + is-short-map-prop-Pseudometric-Space MS MS (neg-Ab G) ∧ Π-Prop ( type-Ab G) - ( λ x → is-isometry-prop-Pseudometric-Space MS MS (add-Ab G x)) + ( λ x → is-short-map-prop-Pseudometric-Space MS MS (add-Ab G x)) is-metric-ab-Ab-Pseudometric-Structure : {l1 l2 : Level} (G : Ab l1) (M : Pseudometric-Structure l2 (type-Ab G)) → @@ -89,32 +97,52 @@ module _ ```agda module _ {l1 l2 : Level} (MG : Metric-Ab l1 l2) + (let ab-MG = ab-Metric-Ab MG) where zero-Metric-Ab : type-Metric-Ab MG - zero-Metric-Ab = zero-Ab (ab-Metric-Ab MG) + zero-Metric-Ab = zero-Ab ab-MG add-Metric-Ab : type-Metric-Ab MG → type-Metric-Ab MG → type-Metric-Ab MG - add-Metric-Ab = add-Ab (ab-Metric-Ab MG) + add-Metric-Ab = add-Ab ab-MG add-Metric-Ab' : type-Metric-Ab MG → type-Metric-Ab MG → type-Metric-Ab MG - add-Metric-Ab' = add-Ab' (ab-Metric-Ab MG) + add-Metric-Ab' = add-Ab' ab-MG ap-add-Metric-Ab : {x x' y y' : type-Metric-Ab MG} → x = x' → y = y' → add-Metric-Ab x y = add-Metric-Ab x' y' - ap-add-Metric-Ab = ap-add-Ab (ab-Metric-Ab MG) + ap-add-Metric-Ab = ap-add-Ab ab-MG neg-Metric-Ab : type-Metric-Ab MG → type-Metric-Ab MG - neg-Metric-Ab = neg-Ab (ab-Metric-Ab MG) + neg-Metric-Ab = neg-Ab ab-MG abstract + left-unit-law-add-Metric-Ab : + (x : type-Metric-Ab MG) → add-Metric-Ab zero-Metric-Ab x = x + left-unit-law-add-Metric-Ab = left-unit-law-add-Ab ab-MG + + associative-add-Metric-Ab : + (x y z : type-Metric-Ab MG) → + add-Metric-Ab (add-Metric-Ab x y) z = add-Metric-Ab x (add-Metric-Ab y z) + associative-add-Metric-Ab = associative-add-Ab ab-MG + + left-inverse-law-add-Metric-Ab : + (x : type-Metric-Ab MG) → + add-Metric-Ab (neg-Metric-Ab x) x = zero-Metric-Ab + left-inverse-law-add-Metric-Ab = left-inverse-law-add-Ab ab-MG + + right-inverse-law-add-Metric-Ab : + (x : type-Metric-Ab MG) → + add-Metric-Ab x (neg-Metric-Ab x) = zero-Metric-Ab + right-inverse-law-add-Metric-Ab = right-inverse-law-add-Ab ab-MG + neg-zero-Metric-Ab : neg-Metric-Ab zero-Metric-Ab = zero-Metric-Ab - neg-zero-Metric-Ab = neg-zero-Ab (ab-Metric-Ab MG) + neg-zero-Metric-Ab = neg-zero-Ab ab-MG neg-neg-Metric-Ab : (x : type-Metric-Ab MG) → neg-Metric-Ab (neg-Metric-Ab x) = x - neg-neg-Metric-Ab = neg-neg-Ab (ab-Metric-Ab MG) + neg-neg-Metric-Ab = neg-neg-Ab ab-MG diff-Metric-Ab : type-Metric-Ab MG → type-Metric-Ab MG → type-Metric-Ab MG diff-Metric-Ab x y = add-Metric-Ab x (neg-Metric-Ab y) @@ -122,16 +150,16 @@ module _ ap-diff-Metric-Ab : {x x' y y' : type-Metric-Ab MG} → x = x' → y = y' → diff-Metric-Ab x y = diff-Metric-Ab x' y' - ap-diff-Metric-Ab = ap-right-subtraction-Ab (ab-Metric-Ab MG) + ap-diff-Metric-Ab = ap-right-subtraction-Ab ab-MG commutative-add-Metric-Ab : (x y : type-Metric-Ab MG) → add-Metric-Ab x y = add-Metric-Ab y x - commutative-add-Metric-Ab = commutative-add-Ab (ab-Metric-Ab MG) + commutative-add-Metric-Ab = commutative-add-Ab ab-MG is-identity-right-conjugation-Metric-Ab : (x y : type-Metric-Ab MG) → add-Metric-Ab x (diff-Metric-Ab y x) = y is-identity-right-conjugation-Metric-Ab = - is-identity-right-conjugation-Ab (ab-Metric-Ab MG) + is-identity-right-conjugation-Ab ab-MG ``` ### Metric properties of metric abelian groups @@ -162,13 +190,55 @@ module _ neighborhood-Metric-Ab : ℚ⁺ → Relation l2 (type-Metric-Ab MG) neighborhood-Metric-Ab = neighborhood-Metric-Space metric-space-Metric-Ab + refl-neighborhood-Metric-Ab : + is-reflexive-Rational-Neighborhood-Relation neighborhood-prop-Metric-Ab + refl-neighborhood-Metric-Ab = + refl-neighborhood-Metric-Space metric-space-Metric-Ab + + monotonic-neighborhood-Metric-Ab : + is-monotonic-Rational-Neighborhood-Relation neighborhood-prop-Metric-Ab + monotonic-neighborhood-Metric-Ab = + monotonic-neighborhood-Metric-Space metric-space-Metric-Ab + + triangular-neighborhood-Metric-Ab : + is-triangular-Rational-Neighborhood-Relation neighborhood-prop-Metric-Ab + triangular-neighborhood-Metric-Ab = + triangular-neighborhood-Metric-Space metric-space-Metric-Ab + + is-short-map-add-Metric-Ab : + (x : type-Metric-Ab MG) → + is-short-map-Metric-Space + ( metric-space-Metric-Ab) + ( metric-space-Metric-Ab) + ( add-Metric-Ab MG x) + is-short-map-add-Metric-Ab = pr2 (pr2 (pr2 (pr2 MG))) + + abstract + reflects-neighborhoods-left-add-Metric-Ab : + (x : type-Metric-Ab MG) + (d : ℚ⁺) + (y z : type-Metric-Ab MG) → + neighborhood-Metric-Ab + ( d) + ( add-Metric-Ab MG x y) + ( add-Metric-Ab MG x z) → + neighborhood-Metric-Ab d y z + reflects-neighborhoods-left-add-Metric-Ab x d y z Nd⟨x+y⟩⟨x+z⟩ = + binary-tr + ( neighborhood-Metric-Ab d) + ( is-retraction-left-subtraction-Ab (ab-Metric-Ab MG) x y) + ( is-retraction-left-subtraction-Ab (ab-Metric-Ab MG) x z) + ( is-short-map-add-Metric-Ab (neg-Metric-Ab MG x) d _ _ Nd⟨x+y⟩⟨x+z⟩) + is-isometry-add-Metric-Ab : (x : type-Metric-Ab MG) → is-isometry-Metric-Space ( metric-space-Metric-Ab) ( metric-space-Metric-Ab) ( add-Metric-Ab MG x) - is-isometry-add-Metric-Ab = pr2 (pr2 (pr2 (pr2 MG))) + is-isometry-add-Metric-Ab x d y z = + ( is-short-map-add-Metric-Ab x d y z , + reflects-neighborhoods-left-add-Metric-Ab x d y z) isometry-add-Metric-Ab : (x : type-Metric-Ab MG) → @@ -200,12 +270,33 @@ module _ isometry-add-Metric-Ab' x = ( add-Metric-Ab' MG x , is-isometry-add-Metric-Ab' x) + is-short-map-neg-Metric-Ab : + is-short-map-Metric-Space + ( metric-space-Metric-Ab) + ( metric-space-Metric-Ab) + ( neg-Metric-Ab MG) + is-short-map-neg-Metric-Ab = pr1 (pr2 (pr2 (pr2 MG))) + + abstract + reflects-neighborhoods-neg-Metric-Ab : + (d : ℚ⁺) (x y : type-Metric-Ab MG) → + neighborhood-Metric-Ab d (neg-Metric-Ab MG x) (neg-Metric-Ab MG y) → + neighborhood-Metric-Ab d x y + reflects-neighborhoods-neg-Metric-Ab d x y Nd⟨-x⟩⟨-y⟩ = + binary-tr + ( neighborhood-Metric-Ab d) + ( neg-neg-Metric-Ab MG x) + ( neg-neg-Metric-Ab MG y) + ( is-short-map-neg-Metric-Ab d _ _ Nd⟨-x⟩⟨-y⟩) + is-isometry-neg-Metric-Ab : is-isometry-Metric-Space ( metric-space-Metric-Ab) ( metric-space-Metric-Ab) ( neg-Metric-Ab MG) - is-isometry-neg-Metric-Ab = pr1 (pr2 (pr2 (pr2 MG))) + is-isometry-neg-Metric-Ab d x y = + ( is-short-map-neg-Metric-Ab d x y , + reflects-neighborhoods-neg-Metric-Ab d x y) isometry-neg-Metric-Ab : isometry-Metric-Space @@ -253,3 +344,35 @@ module _ ( metric-space-Metric-Ab G) ( modulated-uniformly-continuous-map-add-pair-Metric-Ab) ``` + +### Neighborhoods of sums in metric abelian groups + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + (dxx' dyy' : ℚ⁺) + (x x' y y' : type-Metric-Ab G) + where abstract + + neighborhood-add-Metric-Ab : + neighborhood-Metric-Ab G dxx' x x' → + neighborhood-Metric-Ab G dyy' y y' → + neighborhood-Metric-Ab G + ( dxx' +ℚ⁺ dyy') + ( add-Metric-Ab G x y) + ( add-Metric-Ab G x' y') + neighborhood-add-Metric-Ab Nxx' Nyy' = + triangular-neighborhood-Metric-Ab G + ( add-Metric-Ab G x y) + ( add-Metric-Ab G x' y) + ( add-Metric-Ab G x' y') + ( dxx') + ( dyy') + ( forward-implication + ( is-isometry-add-Metric-Ab G x' dyy' y y') + ( Nyy')) + ( forward-implication + ( is-isometry-add-Metric-Ab' G y dxx' x x') + ( Nxx')) +``` diff --git a/src/elementary-number-theory/strict-inequality-positive-rational-numbers.lagda.md b/src/elementary-number-theory/strict-inequality-positive-rational-numbers.lagda.md index 4e2a1657a36..4ca8e619ac0 100644 --- a/src/elementary-number-theory/strict-inequality-positive-rational-numbers.lagda.md +++ b/src/elementary-number-theory/strict-inequality-positive-rational-numbers.lagda.md @@ -15,7 +15,9 @@ open import elementary-number-theory.strict-inequality-rational-numbers open import foundation.binary-relations open import foundation.dependent-pair-types open import foundation.function-types +open import foundation.identity-types open import foundation.propositions +open import foundation.transport-along-identifications open import foundation.universe-levels open import order-theory.strict-preorders @@ -64,6 +66,17 @@ leq-le-ℚ⁺ : {x y : ℚ⁺} → le-ℚ⁺ x y → leq-ℚ⁺ x y leq-le-ℚ⁺ {x} {y} = leq-le-ℚ {rational-ℚ⁺ x} {rational-ℚ⁺ y} ``` +### Concatenation of equality and strict inequality + +```agda +module _ + {x y z : ℚ⁺} + where abstract + + concat-eq-le-ℚ⁺ : x = y → le-ℚ⁺ y z → le-ℚ⁺ x z + concat-eq-le-ℚ⁺ = inv-tr (λ w → le-ℚ⁺ w z) +``` + ### The strictly preordered set of positive rational numbers ```agda From 9fcc281b33b0d4169458cf1d71bd8cae1bdd7b1f Mon Sep 17 00:00:00 2001 From: Louis Wasserman Date: Sat, 13 Jun 2026 14:23:27 -0700 Subject: [PATCH 05/26] Progress --- src/analysis.lagda.md | 4 + ...roximations-metric-abelian-groups.lagda.md | 86 +------------------ ...roximations-metric-abelian-groups.lagda.md | 82 ++++++++++++++++++ 3 files changed, 88 insertions(+), 84 deletions(-) create mode 100644 src/analysis/negation-cauchy-approximations-metric-abelian-groups.lagda.md diff --git a/src/analysis.lagda.md b/src/analysis.lagda.md index bce22009164..62e3f1ae0ca 100644 --- a/src/analysis.lagda.md +++ b/src/analysis.lagda.md @@ -3,13 +3,17 @@ ```agda module analysis where +open import analysis.addition-cauchy-approximations-metric-abelian-groups public open import analysis.alternation-sequences-metric-abelian-groups public +open import analysis.cauchy-approximations-metric-abelian-groups public +open import analysis.cauchy-pseudocompletions-metric-abelian-groups public open import analysis.complete-metric-abelian-groups public open import analysis.convergent-series-complete-metric-abelian-groups public open import analysis.convergent-series-metric-abelian-groups public open import analysis.limits-of-sequences-metric-abelian-groups public open import analysis.metric-abelian-groups public open import analysis.metric-abelian-groups-of-uniformly-continuous-maps-into-metric-abelian-groups public +open import analysis.negation-cauchy-approximations-metric-abelian-groups public open import analysis.sequences-metric-abelian-groups public open import analysis.series-complete-metric-abelian-groups public open import analysis.series-metric-abelian-groups public diff --git a/src/analysis/addition-cauchy-approximations-metric-abelian-groups.lagda.md b/src/analysis/addition-cauchy-approximations-metric-abelian-groups.lagda.md index 15b5c86afe3..e1b92eb14ef 100644 --- a/src/analysis/addition-cauchy-approximations-metric-abelian-groups.lagda.md +++ b/src/analysis/addition-cauchy-approximations-metric-abelian-groups.lagda.md @@ -25,14 +25,7 @@ open import foundation.subtypes open import foundation.transport-along-identifications open import foundation.universe-levels -open import metric-spaces.action-on-cauchy-approximations-isometries-metric-spaces -open import metric-spaces.cauchy-approximations-metric-spaces -open import metric-spaces.cauchy-pseudocompletions-of-metric-spaces -open import metric-spaces.isometries-metric-spaces -open import metric-spaces.metric-quotients-of-pseudometric-spaces -open import metric-spaces.metric-spaces open import metric-spaces.short-maps-pseudometric-spaces -open import metric-spaces.similarity-of-elements-pseudometric-spaces ```
@@ -165,9 +158,7 @@ module _ sim-add-const-cauchy-approximation-Metric-Ab : (x y : type-Metric-Ab G) → - sim-Pseudometric-Space - ( cauchy-pseudocompletion-Metric-Space - ( metric-space-Metric-Ab G)) + sim-cauchy-pseudocompletion-Metric-Ab G ( add-cauchy-approximation-Metric-Ab G ( const-cauchy-approximation-Metric-Ab G x) ( const-cauchy-approximation-Metric-Ab G y)) @@ -325,80 +316,7 @@ module _ ( sim-left-unit-law-add-cauchy-approximation-Metric-Ab) ``` -### Negations of Cauchy approximations - -```agda -module _ - {l1 l2 : Level} - (G : Metric-Ab l1 l2) - where - - neg-cauchy-approximation-Metric-Ab : - cauchy-approximation-Metric-Ab G → cauchy-approximation-Metric-Ab G - neg-cauchy-approximation-Metric-Ab = - map-isometry-cauchy-approximation-Metric-Space - ( metric-space-Metric-Ab G) - ( metric-space-Metric-Ab G) - ( isometry-neg-Metric-Ab G) -``` - -### Inverse laws of Cauchy approximations - -```agda -module _ - {l1 l2 : Level} - (G : Metric-Ab l1 l2) - (ax@(x , is-approx-x) : cauchy-approximation-Metric-Ab G) - where abstract opaque - - unfolding map-add-cauchy-approximation-Metric-Ab - - left-inverse-law-add-cauchy-approximation-Metric-Ab : - add-cauchy-approximation-Metric-Ab G - ( neg-cauchy-approximation-Metric-Ab G ax) - ( ax) = - zero-cauchy-approximation-Metric-Ab G - left-inverse-law-add-cauchy-approximation-Metric-Ab = - eq-type-subtype - ( is-cauchy-approximation-prop-Metric-Ab G) - ( eq-htpy (λ _ → left-inverse-law-add-Metric-Ab G _)) - - right-inverse-law-add-cauchy-approximation-Metric-Ab : - add-cauchy-approximation-Metric-Ab G - ( ax) - ( neg-cauchy-approximation-Metric-Ab G ax) = - zero-cauchy-approximation-Metric-Ab G - right-inverse-law-add-cauchy-approximation-Metric-Ab = - eq-type-subtype - ( is-cauchy-approximation-prop-Metric-Ab G) - ( eq-htpy (λ _ → right-inverse-law-add-Metric-Ab G _)) -``` - -### Negations of Cauchy approximations preserve similarity - -```agda -module _ - {l1 l2 : Level} - (G : Metric-Ab l1 l2) - where abstract - - preserves-sim-neg-cauchy-approximation-Metric-Ab : - (x y : cauchy-approximation-Metric-Ab G) → - sim-cauchy-pseudocompletion-Metric-Ab G x y → - sim-cauchy-pseudocompletion-Metric-Ab G - ( neg-cauchy-approximation-Metric-Ab G x) - ( neg-cauchy-approximation-Metric-Ab G y) - preserves-sim-neg-cauchy-approximation-Metric-Ab = - preserves-sim-map-isometry-Pseudometric-Space - ( cauchy-pseudocompletion-Metric-Ab G) - ( cauchy-pseudocompletion-Metric-Ab G) - ( isometry-cauchy-pseudocompletion-isometry-Metric-Space - ( metric-space-Metric-Ab G) - ( metric-space-Metric-Ab G) - ( isometry-neg-Metric-Ab G)) -``` - -### Left addition preserves neighborhoods +### Left addition is a short map in the Cauchy pseudocompletion of a metric abelian group ```agda module _ diff --git a/src/analysis/negation-cauchy-approximations-metric-abelian-groups.lagda.md b/src/analysis/negation-cauchy-approximations-metric-abelian-groups.lagda.md new file mode 100644 index 00000000000..fd96991274a --- /dev/null +++ b/src/analysis/negation-cauchy-approximations-metric-abelian-groups.lagda.md @@ -0,0 +1,82 @@ +# Negation of Cauchy approximations in metric abelian groups + +```agda +module analysis.negation-cauchy-approximations-metric-abelian-groups where +``` + +
Imports + +```agda +open import analysis.addition-cauchy-approximations-metric-abelian-groups +open import analysis.cauchy-approximations-metric-abelian-groups +open import analysis.metric-abelian-groups + +open import foundation.dependent-pair-types +open import foundation.function-extensionality +open import foundation.identity-types +open import foundation.subtypes +open import foundation.universe-levels + +open import metric-spaces.action-on-cauchy-approximations-isometries-metric-spaces +``` + +
+ +## Idea + +## Definition + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where + + neg-cauchy-approximation-Metric-Ab : + cauchy-approximation-Metric-Ab G → cauchy-approximation-Metric-Ab G + neg-cauchy-approximation-Metric-Ab = + map-isometry-cauchy-approximation-Metric-Space + ( metric-space-Metric-Ab G) + ( metric-space-Metric-Ab G) + ( isometry-neg-Metric-Ab G) +``` + +## Properties + +### Negation is an isometry in the Cauchy pseudocompletion of metric abelian groups + +```agda + +``` + +### Inverse laws of addition of Cauchy approximations + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + (ax@(x , is-approx-x) : cauchy-approximation-Metric-Ab G) + where abstract opaque + + unfolding map-add-cauchy-approximation-Metric-Ab + + left-inverse-law-add-cauchy-approximation-Metric-Ab : + add-cauchy-approximation-Metric-Ab G + ( neg-cauchy-approximation-Metric-Ab G ax) + ( ax) = + zero-cauchy-approximation-Metric-Ab G + left-inverse-law-add-cauchy-approximation-Metric-Ab = + eq-type-subtype + ( is-cauchy-approximation-prop-Metric-Ab G) + ( eq-htpy (λ _ → left-inverse-law-add-Metric-Ab G _)) + + right-inverse-law-add-cauchy-approximation-Metric-Ab : + add-cauchy-approximation-Metric-Ab G + ( ax) + ( neg-cauchy-approximation-Metric-Ab G ax) = + zero-cauchy-approximation-Metric-Ab G + right-inverse-law-add-cauchy-approximation-Metric-Ab = + eq-type-subtype + ( is-cauchy-approximation-prop-Metric-Ab G) + ( eq-htpy (λ _ → right-inverse-law-add-Metric-Ab G _)) +``` From 9a21dad3b07ae2fe4ca0c48e2c89b20e0363f49f Mon Sep 17 00:00:00 2001 From: Louis Wasserman Date: Sat, 13 Jun 2026 14:28:20 -0700 Subject: [PATCH 06/26] Add short maps on metric spaces --- src/metric-spaces.lagda.md | 1 + ...imations-short-maps-metric-spaces.lagda.md | 59 +++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 src/metric-spaces/action-on-cauchy-approximations-short-maps-metric-spaces.lagda.md diff --git a/src/metric-spaces.lagda.md b/src/metric-spaces.lagda.md index 2e432f509dd..bd25a981e3e 100644 --- a/src/metric-spaces.lagda.md +++ b/src/metric-spaces.lagda.md @@ -64,6 +64,7 @@ module metric-spaces where open import metric-spaces.accumulation-points-subsets-located-metric-spaces public open import metric-spaces.action-on-cauchy-approximations-isometries-metric-spaces public open import metric-spaces.action-on-cauchy-approximations-isometries-pseudometric-spaces public +open import metric-spaces.action-on-cauchy-approximations-short-maps-metric-spaces public open import metric-spaces.action-on-cauchy-approximations-short-maps-pseudometric-spaces public open import metric-spaces.action-on-cauchy-sequences-short-maps-metric-spaces public open import metric-spaces.action-on-cauchy-sequences-uniformly-continuous-maps-metric-spaces public diff --git a/src/metric-spaces/action-on-cauchy-approximations-short-maps-metric-spaces.lagda.md b/src/metric-spaces/action-on-cauchy-approximations-short-maps-metric-spaces.lagda.md new file mode 100644 index 00000000000..0af182cc02c --- /dev/null +++ b/src/metric-spaces/action-on-cauchy-approximations-short-maps-metric-spaces.lagda.md @@ -0,0 +1,59 @@ +# The action on Cauchy approximations of short maps on metric spaces + +```agda +module metric-spaces.action-on-cauchy-approximations-short-maps-metric-spaces where +``` + +
Imports + +```agda +open import foundation.universe-levels + +open import metric-spaces.action-on-cauchy-approximations-short-maps-pseudometric-spaces +open import metric-spaces.cauchy-approximations-metric-spaces +open import metric-spaces.cauchy-pseudocompletions-of-metric-spaces +open import metric-spaces.metric-spaces +open import metric-spaces.short-maps-metric-spaces +open import metric-spaces.short-maps-pseudometric-spaces +``` + +
+ +## Idea + +The action of [short maps](metric-spaces.short-maps-metric-spaces.md) on +[Cauchy approximations](metric-spaces.cauchy-approximations-metric-spaces.md) in +[metric spaces](metric-spaces.metric-spaces.md) is itself a +[short map](metric-spaces.short-maps-pseudometric-spaces.md) on the +[Cauchy pseudocompletions](metric-spaces.cauchy-pseudocompletions-of-metric-spaces.md) +of the metric spaces. + +## Definition + +```agda +module _ + {l1 l2 l3 l4 : Level} + (X : Metric-Space l1 l2) + (Y : Metric-Space l3 l4) + (f : short-map-Metric-Space X Y) + where + + short-map-cauchy-pseudocompletion-short-map-Metric-Space : + short-map-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Space X) + ( cauchy-pseudocompletion-Metric-Space Y) + short-map-cauchy-pseudocompletion-short-map-Metric-Space = + short-map-cauchy-pseudocompletion-short-map-Pseudometric-Space + ( pseudometric-Metric-Space X) + ( pseudometric-Metric-Space Y) + ( f) + + map-short-map-cauchy-approximation-Metric-Space : + cauchy-approximation-Metric-Space X → + cauchy-approximation-Metric-Space Y + map-short-map-cauchy-approximation-Metric-Space = + map-short-map-cauchy-approximation-Pseudometric-Space + ( pseudometric-Metric-Space X) + ( pseudometric-Metric-Space Y) + ( f) +``` From 4ec34ed2995787bf9134b45a911ff1008ef0b516 Mon Sep 17 00:00:00 2001 From: Louis Wasserman Date: Sat, 13 Jun 2026 14:30:48 -0700 Subject: [PATCH 07/26] Progress --- ...y-approximations-metric-abelian-groups.lagda.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/analysis/negation-cauchy-approximations-metric-abelian-groups.lagda.md b/src/analysis/negation-cauchy-approximations-metric-abelian-groups.lagda.md index fd96991274a..3ec17db7d77 100644 --- a/src/analysis/negation-cauchy-approximations-metric-abelian-groups.lagda.md +++ b/src/analysis/negation-cauchy-approximations-metric-abelian-groups.lagda.md @@ -13,11 +13,13 @@ open import analysis.metric-abelian-groups open import foundation.dependent-pair-types open import foundation.function-extensionality +open import analysis.cauchy-pseudocompletions-metric-abelian-groups open import foundation.identity-types open import foundation.subtypes open import foundation.universe-levels open import metric-spaces.action-on-cauchy-approximations-isometries-metric-spaces +open import metric-spaces.isometries-pseudometric-spaces ``` @@ -46,7 +48,19 @@ module _ ### Negation is an isometry in the Cauchy pseudocompletion of metric abelian groups ```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where + abstract + is-isometry-neg-cauchy-pseudocompletion-Metric-Ab : + is-isometry-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Ab G) + ( cauchy-pseudocompletion-Metric-Ab G) + ( neg-cauchy-approximation-Metric-Ab G) + is-isometry-neg-cauchy-pseudocompletion-Metric-Ab = + {! is-isometry-map !} ``` ### Inverse laws of addition of Cauchy approximations From 21322ae7e97c1026e6fdd846846c56b2b684ed2d Mon Sep 17 00:00:00 2001 From: Louis Wasserman Date: Sat, 13 Jun 2026 14:32:19 -0700 Subject: [PATCH 08/26] Add proof the isometry is one --- ...-approximations-isometries-metric-spaces.lagda.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/metric-spaces/action-on-cauchy-approximations-isometries-metric-spaces.lagda.md b/src/metric-spaces/action-on-cauchy-approximations-isometries-metric-spaces.lagda.md index 8f6e86c0afd..1937d76ea20 100644 --- a/src/metric-spaces/action-on-cauchy-approximations-isometries-metric-spaces.lagda.md +++ b/src/metric-spaces/action-on-cauchy-approximations-isometries-metric-spaces.lagda.md @@ -58,6 +58,18 @@ module _ (f : isometry-Metric-Space X Y) where + abstract + is-isometry-cauchy-pseudocompletion-isometry-Metric-Space : + is-isometry-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Space X) + ( cauchy-pseudocompletion-Metric-Space Y) + ( map-isometry-cauchy-approximation-Metric-Space X Y f) + is-isometry-cauchy-pseudocompletion-isometry-Metric-Space = + is-isometry-cauchy-pseudocompletion-isometry-Pseudometric-Space + ( pseudometric-Metric-Space X) + ( pseudometric-Metric-Space Y) + ( f) + isometry-cauchy-pseudocompletion-isometry-Metric-Space : isometry-Pseudometric-Space ( cauchy-pseudocompletion-Metric-Space X) From 68a99edb4b3b0f6a71087713d1b7e7d0d945f94c Mon Sep 17 00:00:00 2001 From: Louis Wasserman Date: Sat, 13 Jun 2026 14:34:03 -0700 Subject: [PATCH 09/26] Progress --- ...hy-approximations-metric-abelian-groups.lagda.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/analysis/negation-cauchy-approximations-metric-abelian-groups.lagda.md b/src/analysis/negation-cauchy-approximations-metric-abelian-groups.lagda.md index 3ec17db7d77..10a4a2b400d 100644 --- a/src/analysis/negation-cauchy-approximations-metric-abelian-groups.lagda.md +++ b/src/analysis/negation-cauchy-approximations-metric-abelian-groups.lagda.md @@ -60,7 +60,18 @@ module _ ( cauchy-pseudocompletion-Metric-Ab G) ( neg-cauchy-approximation-Metric-Ab G) is-isometry-neg-cauchy-pseudocompletion-Metric-Ab = - {! is-isometry-map !} + is-isometry-cauchy-pseudocompletion-isometry-Metric-Space + ( metric-space-Metric-Ab G) + ( metric-space-Metric-Ab G) + ( isometry-neg-Metric-Ab G) + + isometry-neg-cauchy-pseudocompletion-Metric-Ab : + isometry-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Ab G) + ( cauchy-pseudocompletion-Metric-Ab G) + isometry-neg-cauchy-pseudocompletion-Metric-Ab = + ( neg-cauchy-approximation-Metric-Ab G , + is-isometry-neg-cauchy-pseudocompletion-Metric-Ab) ``` ### Inverse laws of addition of Cauchy approximations From 8aeeeca15780a74c6c7e71bb5decade111242ee4 Mon Sep 17 00:00:00 2001 From: Louis Wasserman Date: Sat, 13 Jun 2026 14:35:24 -0700 Subject: [PATCH 10/26] Progress --- ...n-cauchy-approximations-metric-abelian-groups.lagda.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/analysis/negation-cauchy-approximations-metric-abelian-groups.lagda.md b/src/analysis/negation-cauchy-approximations-metric-abelian-groups.lagda.md index 10a4a2b400d..6d7634281e3 100644 --- a/src/analysis/negation-cauchy-approximations-metric-abelian-groups.lagda.md +++ b/src/analysis/negation-cauchy-approximations-metric-abelian-groups.lagda.md @@ -9,11 +9,11 @@ module analysis.negation-cauchy-approximations-metric-abelian-groups where ```agda open import analysis.addition-cauchy-approximations-metric-abelian-groups open import analysis.cauchy-approximations-metric-abelian-groups +open import analysis.cauchy-pseudocompletions-metric-abelian-groups open import analysis.metric-abelian-groups open import foundation.dependent-pair-types open import foundation.function-extensionality -open import analysis.cauchy-pseudocompletions-metric-abelian-groups open import foundation.identity-types open import foundation.subtypes open import foundation.universe-levels @@ -26,6 +26,12 @@ open import metric-spaces.isometries-pseudometric-spaces ## Idea +Negation of +[Cauchy approximations](analysis.cauchy-approximations-metric-abelian-groups.md) +in [metric abelian groups](analysis.metric-abelian-groups.md) is the inverse +operation for +[addition](analysis.addition-cauchy-approximations-metric-abelian-groups.md). + ## Definition ```agda From 18af96421603988a1f62e8df1931bac8d825de6f Mon Sep 17 00:00:00 2001 From: Louis Wasserman Date: Sat, 13 Jun 2026 14:38:46 -0700 Subject: [PATCH 11/26] Progress --- ...roximations-metric-abelian-groups.lagda.md | 86 +------------ ...roximations-metric-abelian-groups.lagda.md | 113 ++++++++++++++++++ ...imations-isometries-metric-spaces.lagda.md | 12 ++ ...ns-short-maps-pseudometric-spaces.lagda.md | 28 +---- 4 files changed, 128 insertions(+), 111 deletions(-) create mode 100644 src/analysis/negation-cauchy-approximations-metric-abelian-groups.lagda.md diff --git a/src/analysis/addition-cauchy-approximations-metric-abelian-groups.lagda.md b/src/analysis/addition-cauchy-approximations-metric-abelian-groups.lagda.md index 15b5c86afe3..e1b92eb14ef 100644 --- a/src/analysis/addition-cauchy-approximations-metric-abelian-groups.lagda.md +++ b/src/analysis/addition-cauchy-approximations-metric-abelian-groups.lagda.md @@ -25,14 +25,7 @@ open import foundation.subtypes open import foundation.transport-along-identifications open import foundation.universe-levels -open import metric-spaces.action-on-cauchy-approximations-isometries-metric-spaces -open import metric-spaces.cauchy-approximations-metric-spaces -open import metric-spaces.cauchy-pseudocompletions-of-metric-spaces -open import metric-spaces.isometries-metric-spaces -open import metric-spaces.metric-quotients-of-pseudometric-spaces -open import metric-spaces.metric-spaces open import metric-spaces.short-maps-pseudometric-spaces -open import metric-spaces.similarity-of-elements-pseudometric-spaces ``` @@ -165,9 +158,7 @@ module _ sim-add-const-cauchy-approximation-Metric-Ab : (x y : type-Metric-Ab G) → - sim-Pseudometric-Space - ( cauchy-pseudocompletion-Metric-Space - ( metric-space-Metric-Ab G)) + sim-cauchy-pseudocompletion-Metric-Ab G ( add-cauchy-approximation-Metric-Ab G ( const-cauchy-approximation-Metric-Ab G x) ( const-cauchy-approximation-Metric-Ab G y)) @@ -325,80 +316,7 @@ module _ ( sim-left-unit-law-add-cauchy-approximation-Metric-Ab) ``` -### Negations of Cauchy approximations - -```agda -module _ - {l1 l2 : Level} - (G : Metric-Ab l1 l2) - where - - neg-cauchy-approximation-Metric-Ab : - cauchy-approximation-Metric-Ab G → cauchy-approximation-Metric-Ab G - neg-cauchy-approximation-Metric-Ab = - map-isometry-cauchy-approximation-Metric-Space - ( metric-space-Metric-Ab G) - ( metric-space-Metric-Ab G) - ( isometry-neg-Metric-Ab G) -``` - -### Inverse laws of Cauchy approximations - -```agda -module _ - {l1 l2 : Level} - (G : Metric-Ab l1 l2) - (ax@(x , is-approx-x) : cauchy-approximation-Metric-Ab G) - where abstract opaque - - unfolding map-add-cauchy-approximation-Metric-Ab - - left-inverse-law-add-cauchy-approximation-Metric-Ab : - add-cauchy-approximation-Metric-Ab G - ( neg-cauchy-approximation-Metric-Ab G ax) - ( ax) = - zero-cauchy-approximation-Metric-Ab G - left-inverse-law-add-cauchy-approximation-Metric-Ab = - eq-type-subtype - ( is-cauchy-approximation-prop-Metric-Ab G) - ( eq-htpy (λ _ → left-inverse-law-add-Metric-Ab G _)) - - right-inverse-law-add-cauchy-approximation-Metric-Ab : - add-cauchy-approximation-Metric-Ab G - ( ax) - ( neg-cauchy-approximation-Metric-Ab G ax) = - zero-cauchy-approximation-Metric-Ab G - right-inverse-law-add-cauchy-approximation-Metric-Ab = - eq-type-subtype - ( is-cauchy-approximation-prop-Metric-Ab G) - ( eq-htpy (λ _ → right-inverse-law-add-Metric-Ab G _)) -``` - -### Negations of Cauchy approximations preserve similarity - -```agda -module _ - {l1 l2 : Level} - (G : Metric-Ab l1 l2) - where abstract - - preserves-sim-neg-cauchy-approximation-Metric-Ab : - (x y : cauchy-approximation-Metric-Ab G) → - sim-cauchy-pseudocompletion-Metric-Ab G x y → - sim-cauchy-pseudocompletion-Metric-Ab G - ( neg-cauchy-approximation-Metric-Ab G x) - ( neg-cauchy-approximation-Metric-Ab G y) - preserves-sim-neg-cauchy-approximation-Metric-Ab = - preserves-sim-map-isometry-Pseudometric-Space - ( cauchy-pseudocompletion-Metric-Ab G) - ( cauchy-pseudocompletion-Metric-Ab G) - ( isometry-cauchy-pseudocompletion-isometry-Metric-Space - ( metric-space-Metric-Ab G) - ( metric-space-Metric-Ab G) - ( isometry-neg-Metric-Ab G)) -``` - -### Left addition preserves neighborhoods +### Left addition is a short map in the Cauchy pseudocompletion of a metric abelian group ```agda module _ diff --git a/src/analysis/negation-cauchy-approximations-metric-abelian-groups.lagda.md b/src/analysis/negation-cauchy-approximations-metric-abelian-groups.lagda.md new file mode 100644 index 00000000000..6d7634281e3 --- /dev/null +++ b/src/analysis/negation-cauchy-approximations-metric-abelian-groups.lagda.md @@ -0,0 +1,113 @@ +# Negation of Cauchy approximations in metric abelian groups + +```agda +module analysis.negation-cauchy-approximations-metric-abelian-groups where +``` + +
Imports + +```agda +open import analysis.addition-cauchy-approximations-metric-abelian-groups +open import analysis.cauchy-approximations-metric-abelian-groups +open import analysis.cauchy-pseudocompletions-metric-abelian-groups +open import analysis.metric-abelian-groups + +open import foundation.dependent-pair-types +open import foundation.function-extensionality +open import foundation.identity-types +open import foundation.subtypes +open import foundation.universe-levels + +open import metric-spaces.action-on-cauchy-approximations-isometries-metric-spaces +open import metric-spaces.isometries-pseudometric-spaces +``` + +
+ +## Idea + +Negation of +[Cauchy approximations](analysis.cauchy-approximations-metric-abelian-groups.md) +in [metric abelian groups](analysis.metric-abelian-groups.md) is the inverse +operation for +[addition](analysis.addition-cauchy-approximations-metric-abelian-groups.md). + +## Definition + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where + + neg-cauchy-approximation-Metric-Ab : + cauchy-approximation-Metric-Ab G → cauchy-approximation-Metric-Ab G + neg-cauchy-approximation-Metric-Ab = + map-isometry-cauchy-approximation-Metric-Space + ( metric-space-Metric-Ab G) + ( metric-space-Metric-Ab G) + ( isometry-neg-Metric-Ab G) +``` + +## Properties + +### Negation is an isometry in the Cauchy pseudocompletion of metric abelian groups + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where + + abstract + is-isometry-neg-cauchy-pseudocompletion-Metric-Ab : + is-isometry-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Ab G) + ( cauchy-pseudocompletion-Metric-Ab G) + ( neg-cauchy-approximation-Metric-Ab G) + is-isometry-neg-cauchy-pseudocompletion-Metric-Ab = + is-isometry-cauchy-pseudocompletion-isometry-Metric-Space + ( metric-space-Metric-Ab G) + ( metric-space-Metric-Ab G) + ( isometry-neg-Metric-Ab G) + + isometry-neg-cauchy-pseudocompletion-Metric-Ab : + isometry-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Ab G) + ( cauchy-pseudocompletion-Metric-Ab G) + isometry-neg-cauchy-pseudocompletion-Metric-Ab = + ( neg-cauchy-approximation-Metric-Ab G , + is-isometry-neg-cauchy-pseudocompletion-Metric-Ab) +``` + +### Inverse laws of addition of Cauchy approximations + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + (ax@(x , is-approx-x) : cauchy-approximation-Metric-Ab G) + where abstract opaque + + unfolding map-add-cauchy-approximation-Metric-Ab + + left-inverse-law-add-cauchy-approximation-Metric-Ab : + add-cauchy-approximation-Metric-Ab G + ( neg-cauchy-approximation-Metric-Ab G ax) + ( ax) = + zero-cauchy-approximation-Metric-Ab G + left-inverse-law-add-cauchy-approximation-Metric-Ab = + eq-type-subtype + ( is-cauchy-approximation-prop-Metric-Ab G) + ( eq-htpy (λ _ → left-inverse-law-add-Metric-Ab G _)) + + right-inverse-law-add-cauchy-approximation-Metric-Ab : + add-cauchy-approximation-Metric-Ab G + ( ax) + ( neg-cauchy-approximation-Metric-Ab G ax) = + zero-cauchy-approximation-Metric-Ab G + right-inverse-law-add-cauchy-approximation-Metric-Ab = + eq-type-subtype + ( is-cauchy-approximation-prop-Metric-Ab G) + ( eq-htpy (λ _ → right-inverse-law-add-Metric-Ab G _)) +``` diff --git a/src/metric-spaces/action-on-cauchy-approximations-isometries-metric-spaces.lagda.md b/src/metric-spaces/action-on-cauchy-approximations-isometries-metric-spaces.lagda.md index 8f6e86c0afd..1937d76ea20 100644 --- a/src/metric-spaces/action-on-cauchy-approximations-isometries-metric-spaces.lagda.md +++ b/src/metric-spaces/action-on-cauchy-approximations-isometries-metric-spaces.lagda.md @@ -58,6 +58,18 @@ module _ (f : isometry-Metric-Space X Y) where + abstract + is-isometry-cauchy-pseudocompletion-isometry-Metric-Space : + is-isometry-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Space X) + ( cauchy-pseudocompletion-Metric-Space Y) + ( map-isometry-cauchy-approximation-Metric-Space X Y f) + is-isometry-cauchy-pseudocompletion-isometry-Metric-Space = + is-isometry-cauchy-pseudocompletion-isometry-Pseudometric-Space + ( pseudometric-Metric-Space X) + ( pseudometric-Metric-Space Y) + ( f) + isometry-cauchy-pseudocompletion-isometry-Metric-Space : isometry-Pseudometric-Space ( cauchy-pseudocompletion-Metric-Space X) diff --git a/src/metric-spaces/action-on-cauchy-approximations-short-maps-pseudometric-spaces.lagda.md b/src/metric-spaces/action-on-cauchy-approximations-short-maps-pseudometric-spaces.lagda.md index 368391bef67..281e54b3bd9 100644 --- a/src/metric-spaces/action-on-cauchy-approximations-short-maps-pseudometric-spaces.lagda.md +++ b/src/metric-spaces/action-on-cauchy-approximations-short-maps-pseudometric-spaces.lagda.md @@ -11,14 +11,12 @@ open import elementary-number-theory.addition-positive-rational-numbers open import elementary-number-theory.positive-rational-numbers open import foundation.dependent-pair-types -open import foundation.functoriality-set-quotients open import foundation.universe-levels open import metric-spaces.cauchy-approximations-pseudometric-spaces open import metric-spaces.cauchy-pseudocompletions-of-pseudometric-spaces open import metric-spaces.pseudometric-spaces open import metric-spaces.short-maps-pseudometric-spaces -open import metric-spaces.similarity-of-elements-pseudometric-spaces ``` @@ -64,7 +62,7 @@ module _ ## Properties -### Short maps preserve neighborhoods in the Cauchy pseudocompletion of a pseudometric space +### The induced action of a short map on Cauchy approximations is short in the Cauchy pseudocompletion of a pseudometric space ```agda module _ @@ -92,27 +90,3 @@ module _ ( map-short-map-cauchy-approximation-Pseudometric-Space X Y f , is-short-map-cauchy-pseudocompletion-short-map-Pseudometric-Space) ``` - -### Short maps preserve similarity in the Cauchy pseudocompletion of a pseudometric space - -```agda -module _ - {l1 l2 l3 l4 : Level} - (X : Pseudometric-Space l1 l2) - (Y : Pseudometric-Space l3 l4) - (f : short-map-Pseudometric-Space X Y) - where abstract - - preserves-sim-short-map-cauchy-pseudocompletion-Pseudometric-Space : - preserves-sim-equivalence-relation - ( equivalence-relation-sim-cauchy-pseudocompletion-Pseudometric-Space X) - ( equivalence-relation-sim-cauchy-pseudocompletion-Pseudometric-Space Y) - ( map-short-map-cauchy-approximation-Pseudometric-Space X Y f) - preserves-sim-short-map-cauchy-pseudocompletion-Pseudometric-Space {x} {y} = - preserves-sim-map-short-map-Pseudometric-Space - ( cauchy-pseudocompletion-Pseudometric-Space X) - ( cauchy-pseudocompletion-Pseudometric-Space Y) - ( short-map-cauchy-pseudocompletion-short-map-Pseudometric-Space X Y f) - ( x) - ( y) -``` From a3f9fd19155b5f9cb6bbd58fea48fa2b545abdc1 Mon Sep 17 00:00:00 2001 From: Louis Wasserman Date: Sat, 13 Jun 2026 14:42:26 -0700 Subject: [PATCH 12/26] Update --- src/analysis.lagda.md | 4 ++-- ...pseudocompletions-metric-abelian-groups.lagda.md} | 12 +++++++++--- ...pseudocompletions-metric-abelian-groups.lagda.md} | 4 ++-- 3 files changed, 13 insertions(+), 7 deletions(-) rename src/analysis/{abelian-group-metric-quotient-cauchy-pseudocompletion-metric-abelian-groups.lagda.md => abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md} (97%) rename src/analysis/{metric-abelian-group-metric-quotient-cauchy-pseudocompletion-metric-abelian-groups.lagda.md => metric-abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md} (97%) diff --git a/src/analysis.lagda.md b/src/analysis.lagda.md index 74269fbccad..5c8faa60fb0 100644 --- a/src/analysis.lagda.md +++ b/src/analysis.lagda.md @@ -3,7 +3,7 @@ ```agda module analysis where -open import analysis.abelian-group-metric-quotient-cauchy-pseudocompletion-metric-abelian-groups public +open import analysis.abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups public open import analysis.addition-cauchy-approximations-metric-abelian-groups public open import analysis.alternation-sequences-metric-abelian-groups public open import analysis.cauchy-approximations-metric-abelian-groups public @@ -12,8 +12,8 @@ open import analysis.complete-metric-abelian-groups public open import analysis.convergent-series-complete-metric-abelian-groups public open import analysis.convergent-series-metric-abelian-groups public open import analysis.limits-of-sequences-metric-abelian-groups public -open import analysis.metric-abelian-group-metric-quotient-cauchy-pseudocompletion-metric-abelian-groups public open import analysis.metric-abelian-groups public +open import analysis.metric-abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups public open import analysis.metric-abelian-groups-of-uniformly-continuous-maps-into-metric-abelian-groups public open import analysis.negation-cauchy-approximations-metric-abelian-groups public open import analysis.sequences-metric-abelian-groups public diff --git a/src/analysis/abelian-group-metric-quotient-cauchy-pseudocompletion-metric-abelian-groups.lagda.md b/src/analysis/abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md similarity index 97% rename from src/analysis/abelian-group-metric-quotient-cauchy-pseudocompletion-metric-abelian-groups.lagda.md rename to src/analysis/abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md index db37e3e37b8..56100ab7564 100644 --- a/src/analysis/abelian-group-metric-quotient-cauchy-pseudocompletion-metric-abelian-groups.lagda.md +++ b/src/analysis/abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md @@ -1,9 +1,9 @@ -# The abelian group of the metric quotient of Cauchy pseudocompletions of metric abelian groups +# The abelian groups of the metric quotients of Cauchy pseudocompletions of metric abelian groups ```agda {-# OPTIONS --lossy-unification #-} -module analysis.abelian-group-metric-quotient-cauchy-pseudocompletion-metric-abelian-groups where +module analysis.abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups where ```
Imports @@ -13,6 +13,7 @@ open import analysis.addition-cauchy-approximations-metric-abelian-groups open import analysis.cauchy-approximations-metric-abelian-groups open import analysis.cauchy-pseudocompletions-metric-abelian-groups open import analysis.metric-abelian-groups +open import analysis.negation-cauchy-approximations-metric-abelian-groups open import elementary-number-theory.addition-positive-rational-numbers open import elementary-number-theory.positive-rational-numbers @@ -428,7 +429,12 @@ module _ ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) hom-neg-cauchy-pseudocompletion-Metric-Ab = ( neg-cauchy-approximation-Metric-Ab G , - preserves-sim-neg-cauchy-approximation-Metric-Ab G _ _) + preserves-sim-map-isometry-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Ab G) + ( cauchy-pseudocompletion-Metric-Ab G) + ( isometry-neg-cauchy-pseudocompletion-Metric-Ab G) + ( _) + ( _)) neg-metric-quotient-cauchy-pseudocompletion-Metric-Ab : type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G → diff --git a/src/analysis/metric-abelian-group-metric-quotient-cauchy-pseudocompletion-metric-abelian-groups.lagda.md b/src/analysis/metric-abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md similarity index 97% rename from src/analysis/metric-abelian-group-metric-quotient-cauchy-pseudocompletion-metric-abelian-groups.lagda.md rename to src/analysis/metric-abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md index c8d4b7bca3b..8a32a696049 100644 --- a/src/analysis/metric-abelian-group-metric-quotient-cauchy-pseudocompletion-metric-abelian-groups.lagda.md +++ b/src/analysis/metric-abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md @@ -3,13 +3,13 @@ ```agda {-# OPTIONS --lossy-unification #-} -module analysis.metric-abelian-group-metric-quotient-cauchy-pseudocompletion-metric-abelian-groups where +module analysis.metric-abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups where ```
Imports ```agda -open import analysis.abelian-group-metric-quotient-cauchy-pseudocompletion-metric-abelian-groups +open import analysis.abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups open import analysis.addition-cauchy-approximations-metric-abelian-groups open import analysis.cauchy-pseudocompletions-metric-abelian-groups open import analysis.metric-abelian-groups From 7725d45d34d09b870f8a59e0bdd464bfae74eb53 Mon Sep 17 00:00:00 2001 From: Louis Wasserman Date: Sat, 13 Jun 2026 14:43:24 -0700 Subject: [PATCH 13/26] Fix codespell --- config/codespell-ignore.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/config/codespell-ignore.txt b/config/codespell-ignore.txt index 79a8f895b86..e060a3a5f41 100644 --- a/config/codespell-ignore.txt +++ b/config/codespell-ignore.txt @@ -1,3 +1,4 @@ +Nd Tim blacklist couldn From a2e6047f42a156f16209d5634effa94a28b9283e Mon Sep 17 00:00:00 2001 From: Louis Wasserman Date: Sat, 13 Jun 2026 14:43:56 -0700 Subject: [PATCH 14/26] Fix link --- .../cauchy-pseudocompletions-metric-abelian-groups.lagda.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/analysis/cauchy-pseudocompletions-metric-abelian-groups.lagda.md b/src/analysis/cauchy-pseudocompletions-metric-abelian-groups.lagda.md index 63b1685f2e2..ec533984187 100644 --- a/src/analysis/cauchy-pseudocompletions-metric-abelian-groups.lagda.md +++ b/src/analysis/cauchy-pseudocompletions-metric-abelian-groups.lagda.md @@ -29,7 +29,7 @@ open import metric-spaces.similarity-of-elements-pseudometric-spaces The {{#concept "Cauchy pseudocompletion" Disambiguation="of a metric abelian group" Agda=cauchy-pseudocompletion-Metric-Ab}} -of a [metric abelian group](group-theory.metric-abelian-groups.md) is the +of a [metric abelian group](analysis.metric-abelian-groups.md) is the [Cauchy pseudocompletion](metric-spaces.cauchy-pseudocompletions-of-metric-spaces.md) of the underlying [metric space](metric-spaces.metric-spaces.md). From a89071f1869db2d3e410b73839e07f25d0c27945 Mon Sep 17 00:00:00 2001 From: Louis Wasserman Date: Sat, 13 Jun 2026 14:58:07 -0700 Subject: [PATCH 15/26] Progress --- ...completions-metric-abelian-groups.lagda.md | 4 +- ...completions-metric-abelian-groups.lagda.md | 53 +++++++++++++++++++ .../homomorphisms-abelian-groups.lagda.md | 5 +- 3 files changed, 58 insertions(+), 4 deletions(-) diff --git a/src/analysis/abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md b/src/analysis/abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md index 56100ab7564..538d1cbe5c2 100644 --- a/src/analysis/abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md +++ b/src/analysis/abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md @@ -216,13 +216,13 @@ module _ ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) ( binary-hom-add-cauchy-pseudocompletion-Metric-Ab G) - preserves-add-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + add-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab : (x y : type-Metric-Ab G) → add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G ( in-metric-quotient-cauchy-pseudocompletion-Metric-Ab G x) ( in-metric-quotient-cauchy-pseudocompletion-Metric-Ab G y) = in-metric-quotient-cauchy-pseudocompletion-Metric-Ab G (add-Metric-Ab G x y) - preserves-add-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab x y = + add-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab x y = add-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab ( const-cauchy-approximation-Metric-Ab G x) ( const-cauchy-approximation-Metric-Ab G y) ∙ diff --git a/src/analysis/metric-abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md b/src/analysis/metric-abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md index 8a32a696049..75d663a13e0 100644 --- a/src/analysis/metric-abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md +++ b/src/analysis/metric-abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md @@ -26,12 +26,14 @@ open import foundation.set-quotients open import foundation.universe-levels open import group-theory.abelian-groups +open import group-theory.homomorphisms-abelian-groups open import metric-spaces.action-on-cauchy-approximations-isometries-metric-spaces open import metric-spaces.isometries-metric-spaces open import metric-spaces.isometries-pseudometric-spaces open import metric-spaces.metric-spaces open import metric-spaces.short-maps-metric-spaces +open import metric-spaces.cauchy-pseudocompletions-of-metric-spaces open import metric-spaces.short-maps-pseudometric-spaces open import metric-spaces.unit-map-metric-quotients-of-pseudometric-spaces ``` @@ -229,3 +231,54 @@ module _ is-short-map-neg-metric-quotient-cauchy-pseudocompletion-Metric-Ab G , is-short-map-left-add-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) ``` + +## Properties + +### The embedding of the metric abelian group into the metric abelian group of the metric quotient of its Cauchy pseudocompletion is an isometry + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where + + isometry-in-approx-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + isometry-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Ab G) + ( pseudometric-space-Metric-Ab + ( metric-ab-metric-quotient-cauchy-pseudocompletion-Metric-Ab G)) + isometry-in-approx-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + isometry-unit-metric-quotient-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Ab G) + + isometry-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + isometry-Metric-Space + ( metric-space-Metric-Ab G) + ( metric-quotient-cauchy-pseudocompletion-Metric-Ab G) + isometry-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + comp-isometry-Pseudometric-Space + ( pseudometric-space-Metric-Ab G) + ( cauchy-pseudocompletion-Metric-Ab G) + ( pseudometric-Metric-Space + ( metric-quotient-cauchy-pseudocompletion-Metric-Ab G)) + ( isometry-in-approx-metric-quotient-cauchy-pseudocompletion-Metric-Ab ) + ( isometry-unit-cauchy-pseudocompletion-Metric-Space + ( metric-space-Metric-Ab G)) +``` + +### The embedding of the metric abelian group into the metric abelian group of the metric quotient of its Cauchy pseudocompletion is an Abelian group homomorphism + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where + + hom-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + hom-Ab + ( ab-Metric-Ab G) + ( ab-metric-quotient-cauchy-pseudocompletion-Metric-Ab G) + hom-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + ( in-metric-quotient-cauchy-pseudocompletion-Metric-Ab G , + inv (add-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab G _ _)) +``` diff --git a/src/group-theory/homomorphisms-abelian-groups.lagda.md b/src/group-theory/homomorphisms-abelian-groups.lagda.md index 43fa154acc8..5ad470912c9 100644 --- a/src/group-theory/homomorphisms-abelian-groups.lagda.md +++ b/src/group-theory/homomorphisms-abelian-groups.lagda.md @@ -28,8 +28,9 @@ open import group-theory.homomorphisms-semigroups ## Idea -Homomorphisms between abelian groups are just homomorphisms between their -underlying groups. +Homomorphisms between [abelian groups](group-theory.abelian-groups.md) are just +[homomorphisms](group-theory.homomorphisms-groups.md) between their underlying +[groups](group-theory.groups.md). ## Definition From 3e76740955d8525a39221fef6a71756b604135f5 Mon Sep 17 00:00:00 2001 From: Louis Wasserman Date: Sat, 13 Jun 2026 15:15:18 -0700 Subject: [PATCH 16/26] Progress --- src/analysis.lagda.md | 1 + ...completions-metric-abelian-groups.lagda.md | 45 +----------- ...completions-metric-abelian-groups.lagda.md | 69 +++++++++++++++++++ 3 files changed, 73 insertions(+), 42 deletions(-) create mode 100644 src/analysis/metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md diff --git a/src/analysis.lagda.md b/src/analysis.lagda.md index 5c8faa60fb0..74ccc276304 100644 --- a/src/analysis.lagda.md +++ b/src/analysis.lagda.md @@ -15,6 +15,7 @@ open import analysis.limits-of-sequences-metric-abelian-groups public open import analysis.metric-abelian-groups public open import analysis.metric-abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups public open import analysis.metric-abelian-groups-of-uniformly-continuous-maps-into-metric-abelian-groups public +open import analysis.metric-quotients-cauchy-pseudocompletions-metric-abelian-groups public open import analysis.negation-cauchy-approximations-metric-abelian-groups public open import analysis.sequences-metric-abelian-groups public open import analysis.series-complete-metric-abelian-groups public diff --git a/src/analysis/abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md b/src/analysis/abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md index 538d1cbe5c2..c9e6f29fffa 100644 --- a/src/analysis/abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md +++ b/src/analysis/abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md @@ -13,6 +13,7 @@ open import analysis.addition-cauchy-approximations-metric-abelian-groups open import analysis.cauchy-approximations-metric-abelian-groups open import analysis.cauchy-pseudocompletions-metric-abelian-groups open import analysis.metric-abelian-groups +open import analysis.metric-quotients-cauchy-pseudocompletions-metric-abelian-groups open import analysis.negation-cauchy-approximations-metric-abelian-groups open import elementary-number-theory.addition-positive-rational-numbers @@ -58,51 +59,11 @@ open import metric-spaces.unit-map-metric-quotients-of-pseudometric-spaces The [metric quotient](metric-spaces.metric-quotients-of-pseudometric-spaces.md) of the [Cauchy pseudocompletion](analysis.cauchy-pseudocompletions-metric-abelian-groups.md) -of a [metric abelian group](analysis.metric-abelian-groups.md) itself forms a -metric abelian group. - -This construction is precisely analogous to the definition of the Cauchy real -numbers and their definition of addition. +of a [metric abelian group](analysis.metric-abelian-groups.md) forms an +[abelian group](group-theory.abelian-groups.md). ## Definition -### The metric space of the metric quotient - -```agda -module _ - {l1 l2 : Level} - (G : Metric-Ab l1 l2) - where - - metric-quotient-cauchy-pseudocompletion-Metric-Ab : - Metric-Space (l1 ⊔ l2) (l1 ⊔ l2) - metric-quotient-cauchy-pseudocompletion-Metric-Ab = - metric-quotient-Pseudometric-Space (cauchy-pseudocompletion-Metric-Ab G) - - set-metric-quotient-cauchy-pseudocompletion-Metric-Ab : Set (l1 ⊔ l2) - set-metric-quotient-cauchy-pseudocompletion-Metric-Ab = - set-Metric-Space metric-quotient-cauchy-pseudocompletion-Metric-Ab - - type-metric-quotient-cauchy-pseudocompletion-Metric-Ab : UU (l1 ⊔ l2) - type-metric-quotient-cauchy-pseudocompletion-Metric-Ab = - type-Set set-metric-quotient-cauchy-pseudocompletion-Metric-Ab - - neighborhood-prop-metric-quotient-cauchy-pseudocompletion-Metric-Ab : - Rational-Neighborhood-Relation - ( l1 ⊔ l2) - ( type-metric-quotient-cauchy-pseudocompletion-Metric-Ab) - neighborhood-prop-metric-quotient-cauchy-pseudocompletion-Metric-Ab = - neighborhood-prop-Metric-Space - ( metric-quotient-cauchy-pseudocompletion-Metric-Ab) - - neighborhood-metric-quotient-cauchy-pseudocompletion-Metric-Ab : - ℚ⁺ → - Relation (l1 ⊔ l2) type-metric-quotient-cauchy-pseudocompletion-Metric-Ab - neighborhood-metric-quotient-cauchy-pseudocompletion-Metric-Ab = - neighborhood-Metric-Space - ( metric-quotient-cauchy-pseudocompletion-Metric-Ab) -``` - ### Addition in the metric quotient ```agda diff --git a/src/analysis/metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md b/src/analysis/metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md new file mode 100644 index 00000000000..60c9bd06928 --- /dev/null +++ b/src/analysis/metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md @@ -0,0 +1,69 @@ +# Metric quotients of Cauchy pseudocompletions of metric abelian groups + +```agda +module analysis.metric-quotients-cauchy-pseudocompletions-metric-abelian-groups where +``` + +
Imports + +```agda +open import analysis.cauchy-pseudocompletions-metric-abelian-groups +open import analysis.metric-abelian-groups + +open import elementary-number-theory.positive-rational-numbers + +open import foundation.binary-relations +open import foundation.sets +open import foundation.universe-levels + +open import metric-spaces.metric-quotients-of-pseudometric-spaces +open import metric-spaces.metric-spaces +open import metric-spaces.rational-neighborhood-relations +``` + +
+ +## Idea + +The [metric quotient](metric-spaces.metric-quotients-of-pseudometric-spaces.md) +of the +[Cauchy pseudocompletion](analysis.cauchy-pseudocompletions-metric-abelian-groups.md) +of a [metric abelian group](analysis.metric-abelian-groups.md) forms a +[metric space](metric-spaces.metric-spaces.md). + +## Definition + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where + + metric-quotient-cauchy-pseudocompletion-Metric-Ab : + Metric-Space (l1 ⊔ l2) (l1 ⊔ l2) + metric-quotient-cauchy-pseudocompletion-Metric-Ab = + metric-quotient-Pseudometric-Space (cauchy-pseudocompletion-Metric-Ab G) + + set-metric-quotient-cauchy-pseudocompletion-Metric-Ab : Set (l1 ⊔ l2) + set-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + set-Metric-Space metric-quotient-cauchy-pseudocompletion-Metric-Ab + + type-metric-quotient-cauchy-pseudocompletion-Metric-Ab : UU (l1 ⊔ l2) + type-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + type-Set set-metric-quotient-cauchy-pseudocompletion-Metric-Ab + + neighborhood-prop-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + Rational-Neighborhood-Relation + ( l1 ⊔ l2) + ( type-metric-quotient-cauchy-pseudocompletion-Metric-Ab) + neighborhood-prop-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + neighborhood-prop-Metric-Space + ( metric-quotient-cauchy-pseudocompletion-Metric-Ab) + + neighborhood-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + ℚ⁺ → + Relation (l1 ⊔ l2) type-metric-quotient-cauchy-pseudocompletion-Metric-Ab + neighborhood-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + neighborhood-Metric-Space + ( metric-quotient-cauchy-pseudocompletion-Metric-Ab) +``` From a75d5dc43973a29d1cff1b2bfc68ead1fedf81d5 Mon Sep 17 00:00:00 2001 From: Louis Wasserman Date: Sat, 13 Jun 2026 15:15:46 -0700 Subject: [PATCH 17/26] Progress --- ...ients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md | 1 + 1 file changed, 1 insertion(+) diff --git a/src/analysis/metric-abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md b/src/analysis/metric-abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md index 75d663a13e0..1d400421c65 100644 --- a/src/analysis/metric-abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md +++ b/src/analysis/metric-abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md @@ -10,6 +10,7 @@ module analysis.metric-abelian-groups-metric-quotients-cauchy-pseudocompletions- ```agda open import analysis.abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups +open import analysis.metric-quotients-cauchy-pseudocompletions-metric-abelian-groups open import analysis.addition-cauchy-approximations-metric-abelian-groups open import analysis.cauchy-pseudocompletions-metric-abelian-groups open import analysis.metric-abelian-groups From d9fc3e584fb339f54188179a880dca51f9fea205 Mon Sep 17 00:00:00 2001 From: Louis Wasserman Date: Sat, 13 Jun 2026 15:15:57 -0700 Subject: [PATCH 18/26] pre-commit --- ...-cauchy-pseudocompletions-metric-abelian-groups.lagda.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/analysis/metric-abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md b/src/analysis/metric-abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md index 1d400421c65..b3805f4b9c3 100644 --- a/src/analysis/metric-abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md +++ b/src/analysis/metric-abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md @@ -10,10 +10,10 @@ module analysis.metric-abelian-groups-metric-quotients-cauchy-pseudocompletions- ```agda open import analysis.abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups -open import analysis.metric-quotients-cauchy-pseudocompletions-metric-abelian-groups open import analysis.addition-cauchy-approximations-metric-abelian-groups open import analysis.cauchy-pseudocompletions-metric-abelian-groups open import analysis.metric-abelian-groups +open import analysis.metric-quotients-cauchy-pseudocompletions-metric-abelian-groups open import elementary-number-theory.positive-rational-numbers @@ -30,11 +30,11 @@ open import group-theory.abelian-groups open import group-theory.homomorphisms-abelian-groups open import metric-spaces.action-on-cauchy-approximations-isometries-metric-spaces +open import metric-spaces.cauchy-pseudocompletions-of-metric-spaces open import metric-spaces.isometries-metric-spaces open import metric-spaces.isometries-pseudometric-spaces open import metric-spaces.metric-spaces open import metric-spaces.short-maps-metric-spaces -open import metric-spaces.cauchy-pseudocompletions-of-metric-spaces open import metric-spaces.short-maps-pseudometric-spaces open import metric-spaces.unit-map-metric-quotients-of-pseudometric-spaces ``` @@ -262,7 +262,7 @@ module _ ( cauchy-pseudocompletion-Metric-Ab G) ( pseudometric-Metric-Space ( metric-quotient-cauchy-pseudocompletion-Metric-Ab G)) - ( isometry-in-approx-metric-quotient-cauchy-pseudocompletion-Metric-Ab ) + ( isometry-in-approx-metric-quotient-cauchy-pseudocompletion-Metric-Ab) ( isometry-unit-cauchy-pseudocompletion-Metric-Space ( metric-space-Metric-Ab G)) ``` From f34a2038fba251d6567df210b28601fd9a704f78 Mon Sep 17 00:00:00 2001 From: Louis Wasserman Date: Sat, 13 Jun 2026 15:42:33 -0700 Subject: [PATCH 19/26] Move isometries into the metric quotient file --- ...completions-metric-abelian-groups.lagda.md | 54 ------------- ...completions-metric-abelian-groups.lagda.md | 80 +++++++++++++++++++ 2 files changed, 80 insertions(+), 54 deletions(-) diff --git a/src/analysis/abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md b/src/analysis/abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md index c9e6f29fffa..0c451f6dd99 100644 --- a/src/analysis/abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md +++ b/src/analysis/abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md @@ -94,60 +94,6 @@ module _ ( binary-hom-add-cauchy-pseudocompletion-Metric-Ab) ``` -### The embedding of elements of a metric abelian group in the metric quotient of its Cauchy pseudocompletion - -```agda -module _ - {l1 l2 : Level} - (G : Metric-Ab l1 l2) - where - - in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab : - cauchy-approximation-Metric-Ab G → - type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G - in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab = - quotient-map - ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) - - in-metric-quotient-cauchy-pseudocompletion-Metric-Ab : - type-Metric-Ab G → type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G - in-metric-quotient-cauchy-pseudocompletion-Metric-Ab x = - in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab - ( const-cauchy-approximation-Metric-Ab G x) - - abstract - is-injective-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab : - is-injective in-metric-quotient-cauchy-pseudocompletion-Metric-Ab - is-injective-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab - {x} {y} inx=iny = - eq-sim-const-cauchy-approximation-cauchy-pseudocompletion-Metric-Ab - ( G) - ( x) - ( y) - ( apply-effectiveness-quotient-map - ( equivalence-relation-sim-cauchy-pseudocompletion-Metric-Ab G) - ( inx=iny)) - - is-emb-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab : - is-emb in-metric-quotient-cauchy-pseudocompletion-Metric-Ab - is-emb-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab = - is-emb-is-injective - ( is-set-type-Metric-Space - ( metric-quotient-cauchy-pseudocompletion-Metric-Ab G)) - is-injective-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab - - emb-metric-quotient-cauchy-pseudocompletion-Metric-Ab : - type-Metric-Ab G ↪ type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G - emb-metric-quotient-cauchy-pseudocompletion-Metric-Ab = - ( in-metric-quotient-cauchy-pseudocompletion-Metric-Ab , - is-emb-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab) - - zero-metric-quotient-cauchy-pseudocompletion-Metric-Ab : - type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G - zero-metric-quotient-cauchy-pseudocompletion-Metric-Ab = - in-metric-quotient-cauchy-pseudocompletion-Metric-Ab (zero-Metric-Ab G) -``` - ## Properties ### The embedding in the metric quotient of the Cauchy pseudocompletion preserves addition diff --git a/src/analysis/metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md b/src/analysis/metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md index 60c9bd06928..e5a1f75e820 100644 --- a/src/analysis/metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md +++ b/src/analysis/metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md @@ -1,6 +1,8 @@ # Metric quotients of Cauchy pseudocompletions of metric abelian groups ```agda +{-# OPTIONS --lossy-unification #-} + module analysis.metric-quotients-cauchy-pseudocompletions-metric-abelian-groups where ``` @@ -9,15 +11,23 @@ module analysis.metric-quotients-cauchy-pseudocompletions-metric-abelian-groups ```agda open import analysis.cauchy-pseudocompletions-metric-abelian-groups open import analysis.metric-abelian-groups +open import analysis.cauchy-approximations-metric-abelian-groups +open import metric-spaces.unit-map-metric-quotients-of-pseudometric-spaces open import elementary-number-theory.positive-rational-numbers +open import metric-spaces.cauchy-pseudocompletions-of-metric-spaces +open import foundation.embeddings open import foundation.binary-relations +open import foundation.dependent-pair-types open import foundation.sets open import foundation.universe-levels +open import metric-spaces.pseudometric-spaces +open import metric-spaces.isometries-metric-spaces open import metric-spaces.metric-quotients-of-pseudometric-spaces open import metric-spaces.metric-spaces +open import metric-spaces.isometries-pseudometric-spaces open import metric-spaces.rational-neighborhood-relations ``` @@ -44,6 +54,11 @@ module _ metric-quotient-cauchy-pseudocompletion-Metric-Ab = metric-quotient-Pseudometric-Space (cauchy-pseudocompletion-Metric-Ab G) + pseudometric-quotient-cauchy-pseudocompletion-Metric-Ab : + Pseudometric-Space (l1 ⊔ l2) (l1 ⊔ l2) + pseudometric-quotient-cauchy-pseudocompletion-Metric-Ab = + pseudometric-Metric-Space metric-quotient-cauchy-pseudocompletion-Metric-Ab + set-metric-quotient-cauchy-pseudocompletion-Metric-Ab : Set (l1 ⊔ l2) set-metric-quotient-cauchy-pseudocompletion-Metric-Ab = set-Metric-Space metric-quotient-cauchy-pseudocompletion-Metric-Ab @@ -67,3 +82,68 @@ module _ neighborhood-Metric-Space ( metric-quotient-cauchy-pseudocompletion-Metric-Ab) ``` + +## Properties + +### The embedding of elements of a metric abelian group in the metric quotient of its Cauchy pseudocompletion + +```agda +module _ + {l1 l2 : Level} + (G : Metric-Ab l1 l2) + where + + isometry-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + isometry-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Ab G) + ( pseudometric-quotient-cauchy-pseudocompletion-Metric-Ab G) + isometry-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + isometry-unit-metric-quotient-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Ab G) + + isometry-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + isometry-Metric-Space + ( metric-space-Metric-Ab G) + ( metric-quotient-cauchy-pseudocompletion-Metric-Ab G) + isometry-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + comp-isometry-Pseudometric-Space + ( pseudometric-space-Metric-Ab G) + ( cauchy-pseudocompletion-Metric-Ab G) + ( pseudometric-quotient-cauchy-pseudocompletion-Metric-Ab G) + ( isometry-in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab) + ( isometry-unit-cauchy-pseudocompletion-Metric-Space + ( metric-space-Metric-Ab G)) + + in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + cauchy-approximation-Metric-Ab G → + type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + map-unit-metric-quotient-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Ab G) + + in-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + type-Metric-Ab G → type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + in-metric-quotient-cauchy-pseudocompletion-Metric-Ab x = + in-approximation-metric-quotient-cauchy-pseudocompletion-Metric-Ab + ( const-cauchy-approximation-Metric-Ab G x) + + abstract + is-emb-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + is-emb in-metric-quotient-cauchy-pseudocompletion-Metric-Ab + is-emb-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + is-emb-map-isometry-Metric-Space + ( metric-space-Metric-Ab G) + ( metric-quotient-cauchy-pseudocompletion-Metric-Ab G) + ( isometry-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab) + + emb-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + type-Metric-Ab G ↪ type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + emb-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + ( in-metric-quotient-cauchy-pseudocompletion-Metric-Ab , + is-emb-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab) + + zero-metric-quotient-cauchy-pseudocompletion-Metric-Ab : + type-metric-quotient-cauchy-pseudocompletion-Metric-Ab G + zero-metric-quotient-cauchy-pseudocompletion-Metric-Ab = + in-metric-quotient-cauchy-pseudocompletion-Metric-Ab (zero-Metric-Ab G) +``` From ad0b7d8f465548adf05e87bc7f5aa57fca179994 Mon Sep 17 00:00:00 2001 From: Louis Wasserman Date: Sat, 13 Jun 2026 15:45:32 -0700 Subject: [PATCH 20/26] Fix imports --- ...seudocompletions-metric-abelian-groups.lagda.md | 14 -------------- ...seudocompletions-metric-abelian-groups.lagda.md | 12 ++++++------ 2 files changed, 6 insertions(+), 20 deletions(-) diff --git a/src/analysis/abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md b/src/analysis/abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md index 0c451f6dd99..a5ae7f941e6 100644 --- a/src/analysis/abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md +++ b/src/analysis/abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md @@ -22,15 +22,9 @@ open import elementary-number-theory.positive-rational-numbers open import foundation.action-on-identifications-binary-functions open import foundation.action-on-identifications-functions open import foundation.binary-functoriality-set-quotients -open import foundation.binary-relations -open import foundation.binary-transport open import foundation.dependent-pair-types -open import foundation.embeddings -open import foundation.equivalence-relations open import foundation.functoriality-set-quotients open import foundation.identity-types -open import foundation.injective-maps -open import foundation.propositional-truncations open import foundation.set-quotients open import foundation.sets open import foundation.transport-along-identifications @@ -41,15 +35,7 @@ open import group-theory.groups open import group-theory.monoids open import group-theory.semigroups -open import metric-spaces.cauchy-approximations-metric-spaces -open import metric-spaces.cauchy-pseudocompletions-of-metric-spaces -open import metric-spaces.isometries-metric-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.similarity-of-elements-pseudometric-spaces -open import metric-spaces.unit-map-metric-quotients-of-pseudometric-spaces ```
diff --git a/src/analysis/metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md b/src/analysis/metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md index e5a1f75e820..99750ce71e2 100644 --- a/src/analysis/metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md +++ b/src/analysis/metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md @@ -9,26 +9,26 @@ module analysis.metric-quotients-cauchy-pseudocompletions-metric-abelian-groups
Imports ```agda +open import analysis.cauchy-approximations-metric-abelian-groups open import analysis.cauchy-pseudocompletions-metric-abelian-groups open import analysis.metric-abelian-groups -open import analysis.cauchy-approximations-metric-abelian-groups -open import metric-spaces.unit-map-metric-quotients-of-pseudometric-spaces open import elementary-number-theory.positive-rational-numbers -open import metric-spaces.cauchy-pseudocompletions-of-metric-spaces -open import foundation.embeddings open import foundation.binary-relations open import foundation.dependent-pair-types +open import foundation.embeddings open import foundation.sets open import foundation.universe-levels -open import metric-spaces.pseudometric-spaces +open import metric-spaces.cauchy-pseudocompletions-of-metric-spaces open import metric-spaces.isometries-metric-spaces +open import metric-spaces.isometries-pseudometric-spaces open import metric-spaces.metric-quotients-of-pseudometric-spaces open import metric-spaces.metric-spaces -open import metric-spaces.isometries-pseudometric-spaces +open import metric-spaces.pseudometric-spaces open import metric-spaces.rational-neighborhood-relations +open import metric-spaces.unit-map-metric-quotients-of-pseudometric-spaces ```
From 4475b52340083ad9e3fb5ce947eb314cdc953df8 Mon Sep 17 00:00:00 2001 From: Louis Wasserman Date: Sat, 13 Jun 2026 15:53:43 -0700 Subject: [PATCH 21/26] Fix --- ...completions-metric-abelian-groups.lagda.md | 32 ------------------- 1 file changed, 32 deletions(-) diff --git a/src/analysis/metric-abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md b/src/analysis/metric-abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md index b3805f4b9c3..30c1bf7a15a 100644 --- a/src/analysis/metric-abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md +++ b/src/analysis/metric-abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md @@ -235,38 +235,6 @@ module _ ## Properties -### The embedding of the metric abelian group into the metric abelian group of the metric quotient of its Cauchy pseudocompletion is an isometry - -```agda -module _ - {l1 l2 : Level} - (G : Metric-Ab l1 l2) - where - - isometry-in-approx-metric-quotient-cauchy-pseudocompletion-Metric-Ab : - isometry-Pseudometric-Space - ( cauchy-pseudocompletion-Metric-Ab G) - ( pseudometric-space-Metric-Ab - ( metric-ab-metric-quotient-cauchy-pseudocompletion-Metric-Ab G)) - isometry-in-approx-metric-quotient-cauchy-pseudocompletion-Metric-Ab = - isometry-unit-metric-quotient-Pseudometric-Space - ( cauchy-pseudocompletion-Metric-Ab G) - - isometry-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab : - isometry-Metric-Space - ( metric-space-Metric-Ab G) - ( metric-quotient-cauchy-pseudocompletion-Metric-Ab G) - isometry-in-metric-quotient-cauchy-pseudocompletion-Metric-Ab = - comp-isometry-Pseudometric-Space - ( pseudometric-space-Metric-Ab G) - ( cauchy-pseudocompletion-Metric-Ab G) - ( pseudometric-Metric-Space - ( metric-quotient-cauchy-pseudocompletion-Metric-Ab G)) - ( isometry-in-approx-metric-quotient-cauchy-pseudocompletion-Metric-Ab) - ( isometry-unit-cauchy-pseudocompletion-Metric-Space - ( metric-space-Metric-Ab G)) -``` - ### The embedding of the metric abelian group into the metric abelian group of the metric quotient of its Cauchy pseudocompletion is an Abelian group homomorphism ```agda From 18294cf3a3341b826715f780c358ffd842ff44bb Mon Sep 17 00:00:00 2001 From: Louis Wasserman Date: Sat, 13 Jun 2026 18:51:46 -0700 Subject: [PATCH 22/26] Pull in changes from further along --- ...ompletions-of-pseudometric-spaces.lagda.md | 2 +- ...uchy-approximations-metric-spaces.lagda.md | 134 ++++++++++++++++++ 2 files changed, 135 insertions(+), 1 deletion(-) diff --git a/src/metric-spaces/cauchy-pseudocompletions-of-pseudometric-spaces.lagda.md b/src/metric-spaces/cauchy-pseudocompletions-of-pseudometric-spaces.lagda.md index 205625ab962..9e9c8c5750e 100644 --- a/src/metric-spaces/cauchy-pseudocompletions-of-pseudometric-spaces.lagda.md +++ b/src/metric-spaces/cauchy-pseudocompletions-of-pseudometric-spaces.lagda.md @@ -433,7 +433,7 @@ module _ {l1 l2 : Level} (M : Pseudometric-Space l1 l2) (u v : cauchy-approximation-Pseudometric-Space M) (x : type-Pseudometric-Space M) - where + where abstract has-same-limit-sim-cauchy-approximation-Pseudometric-Space : sim-Pseudometric-Space diff --git a/src/metric-spaces/limits-of-cauchy-approximations-metric-spaces.lagda.md b/src/metric-spaces/limits-of-cauchy-approximations-metric-spaces.lagda.md index 6a2459d92bd..524cf3c7a21 100644 --- a/src/metric-spaces/limits-of-cauchy-approximations-metric-spaces.lagda.md +++ b/src/metric-spaces/limits-of-cauchy-approximations-metric-spaces.lagda.md @@ -17,6 +17,8 @@ open import foundation.universe-levels open import metric-spaces.cauchy-approximations-metric-spaces open import metric-spaces.cauchy-pseudocompletions-of-metric-spaces +open import metric-spaces.cauchy-pseudocompletions-of-pseudometric-spaces +open import metric-spaces.isometries-pseudometric-spaces open import metric-spaces.limits-of-cauchy-approximations-pseudometric-spaces open import metric-spaces.metric-spaces open import metric-spaces.short-maps-metric-spaces @@ -183,6 +185,66 @@ module _ ( λ d → H d α β) ``` +### Cauchy approximations with the same limit are similar in the Cauchy pseudocompletion + +```agda +module _ + {l1 l2 : Level} (M : Metric-Space l1 l2) + (u v : cauchy-approximation-Metric-Space M) + (x : type-Metric-Space M) + (is-limit-u-x : is-limit-cauchy-approximation-Metric-Space M u x) + (is-limit-v-x : is-limit-cauchy-approximation-Metric-Space M v x) + where abstract + + sim-is-limit-cauchy-approximation-Metric-Space : + sim-cauchy-pseudocompletion-Metric-Space M u v + sim-is-limit-cauchy-approximation-Metric-Space = + transitive-sim-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Space M) + ( u) + ( const-cauchy-approximation-Metric-Space M x) + ( v) + ( symmetric-sim-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Space M) + ( v) + ( const-cauchy-approximation-Metric-Space M x) + ( sim-const-is-limit-cauchy-approximation-Metric-Space M + ( v) + ( x) + ( is-limit-v-x))) + ( sim-const-is-limit-cauchy-approximation-Metric-Space M u x is-limit-u-x) +``` + +### If two Cauchy approximations are similar and have limits, the limits are equal + +```agda +module _ + {l1 l2 : Level} + (M : Metric-Space l1 l2) + (u v : cauchy-approximation-Metric-Space M) + (u~v : sim-cauchy-pseudocompletion-Metric-Space M u v) + (x y : type-Metric-Space M) + (is-lim-u-x : is-limit-cauchy-approximation-Metric-Space M u x) + (is-lim-v-y : is-limit-cauchy-approximation-Metric-Space M v y) + where abstract + + eq-limit-sim-cauchy-pseudocompletion-Metric-Space : x = y + eq-limit-sim-cauchy-pseudocompletion-Metric-Space = + all-eq-is-limit-cauchy-approximation-Metric-Space + ( M) + ( v) + ( x) + ( y) + ( has-same-limit-sim-cauchy-approximation-Pseudometric-Space + ( pseudometric-Metric-Space M) + ( u) + ( v) + ( x) + ( u~v) + ( is-lim-u-x)) + ( is-lim-v-y) +``` + ### Homotopic Cauchy approximations have the same limits ```agda @@ -205,6 +267,78 @@ module _ ( f~g) ``` +### If two Cauchy approximations have limits, they are in a `d`-neighborhood in the Cauchy pseudocompletion if and only if their limits are in a `d`-neighborhood + +```agda +module _ + {l1 l2 : Level} + (X : Metric-Space l1 l2) + (d : ℚ⁺) + (f g : cauchy-approximation-Metric-Space X) + (x y : type-Metric-Space X) + (is-lim-f-x : is-limit-cauchy-approximation-Metric-Space X f x) + (is-lim-g-y : is-limit-cauchy-approximation-Metric-Space X g y) + where abstract + + preserves-neighborhoods-limits-cauchy-approximation-Metric-Space : + neighborhood-cauchy-pseudocompletion-Metric-Space X d f g → + neighborhood-Metric-Space X d x y + preserves-neighborhoods-limits-cauchy-approximation-Metric-Space Ndfg = + reflects-neighborhoods-map-isometry-Pseudometric-Space + ( pseudometric-Metric-Space X) + ( cauchy-pseudocompletion-Metric-Space X) + ( isometry-unit-cauchy-pseudocompletion-Metric-Space X) + ( d) + ( x) + ( y) + ( preserves-neighborhoods-sim-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Space X) + { x = f} + { x' = const-cauchy-approximation-Metric-Space X x} + { y = g} + { y' = const-cauchy-approximation-Metric-Space X y} + ( sim-const-is-limit-cauchy-approximation-Metric-Space X f x is-lim-f-x) + ( sim-const-is-limit-cauchy-approximation-Metric-Space X g y is-lim-g-y) + ( d) + ( Ndfg)) + + reflects-neighborhoods-limits-cauchy-approximation-Metric-Space : + neighborhood-Metric-Space X d x y → + neighborhood-cauchy-pseudocompletion-Metric-Space X d f g + reflects-neighborhoods-limits-cauchy-approximation-Metric-Space Ndxy = + preserves-neighborhoods-sim-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Space X) + { x = const-cauchy-approximation-Metric-Space X x} + { x' = f} + { y = const-cauchy-approximation-Metric-Space X y} + { y' = g} + ( symmetric-sim-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Space X) + ( f) + ( const-cauchy-approximation-Metric-Space X x) + ( sim-const-is-limit-cauchy-approximation-Metric-Space X + ( f) + ( x) + ( is-lim-f-x))) + ( symmetric-sim-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Space X) + ( g) + ( const-cauchy-approximation-Metric-Space X y) + ( sim-const-is-limit-cauchy-approximation-Metric-Space X + ( g) + ( y) + ( is-lim-g-y))) + ( d) + ( preserves-neighborhoods-map-isometry-Pseudometric-Space + ( pseudometric-Metric-Space X) + ( cauchy-pseudocompletion-Metric-Space X) + ( isometry-unit-cauchy-pseudocompletion-Metric-Space X) + ( d) + ( x) + ( y) + ( Ndxy)) +``` + ## See also - [Convergent cauchy approximations](metric-spaces.convergent-cauchy-approximations-metric-spaces.md) From e3b2cb5edb27561034b7b977e73f5b217ec19061 Mon Sep 17 00:00:00 2001 From: Louis Wasserman Date: Sun, 14 Jun 2026 11:13:01 -0700 Subject: [PATCH 23/26] Remove redundant logic --- src/metric-spaces.lagda.md | 4 - ...imations-isometries-metric-spaces.lagda.md | 82 ------------ ...ns-isometries-pseudometric-spaces.lagda.md | 102 -------------- ...imations-short-maps-metric-spaces.lagda.md | 59 --------- ...ns-short-maps-pseudometric-spaces.lagda.md | 92 ------------- ...uchy-approximations-metric-spaces.lagda.md | 124 +++++++++++------- .../metric-space-of-rational-numbers.lagda.md | 31 ++++- ...y-of-elements-pseudometric-spaces.lagda.md | 22 ++++ 8 files changed, 120 insertions(+), 396 deletions(-) delete mode 100644 src/metric-spaces/action-on-cauchy-approximations-isometries-metric-spaces.lagda.md delete mode 100644 src/metric-spaces/action-on-cauchy-approximations-isometries-pseudometric-spaces.lagda.md delete mode 100644 src/metric-spaces/action-on-cauchy-approximations-short-maps-metric-spaces.lagda.md delete mode 100644 src/metric-spaces/action-on-cauchy-approximations-short-maps-pseudometric-spaces.lagda.md diff --git a/src/metric-spaces.lagda.md b/src/metric-spaces.lagda.md index bd25a981e3e..89f28adc578 100644 --- a/src/metric-spaces.lagda.md +++ b/src/metric-spaces.lagda.md @@ -62,10 +62,6 @@ metric space, `N d₂ x y` [or](foundation.disjunction.md) module metric-spaces where open import metric-spaces.accumulation-points-subsets-located-metric-spaces public -open import metric-spaces.action-on-cauchy-approximations-isometries-metric-spaces public -open import metric-spaces.action-on-cauchy-approximations-isometries-pseudometric-spaces public -open import metric-spaces.action-on-cauchy-approximations-short-maps-metric-spaces public -open import metric-spaces.action-on-cauchy-approximations-short-maps-pseudometric-spaces public open import metric-spaces.action-on-cauchy-sequences-short-maps-metric-spaces public open import metric-spaces.action-on-cauchy-sequences-uniformly-continuous-maps-metric-spaces public open import metric-spaces.action-on-convergent-sequences-modulated-uniformly-continuous-maps-metric-spaces public diff --git a/src/metric-spaces/action-on-cauchy-approximations-isometries-metric-spaces.lagda.md b/src/metric-spaces/action-on-cauchy-approximations-isometries-metric-spaces.lagda.md deleted file mode 100644 index 1937d76ea20..00000000000 --- a/src/metric-spaces/action-on-cauchy-approximations-isometries-metric-spaces.lagda.md +++ /dev/null @@ -1,82 +0,0 @@ -# The action on Cauchy approximations of isometries on metric spaces - -```agda -module metric-spaces.action-on-cauchy-approximations-isometries-metric-spaces where -``` - -
Imports - -```agda -open import foundation.functoriality-set-quotients -open import foundation.universe-levels - -open import metric-spaces.action-on-cauchy-approximations-isometries-pseudometric-spaces -open import metric-spaces.cauchy-approximations-metric-spaces -open import metric-spaces.cauchy-pseudocompletions-of-metric-spaces -open import metric-spaces.isometries-metric-spaces -open import metric-spaces.isometries-pseudometric-spaces -open import metric-spaces.metric-spaces -``` - -
- -## Idea - -The action of [isometries](metric-spaces.isometries-metric-spaces.md) on -[metric spaces](metric-spaces.metric-spaces.md) preserves -[Cauchy approximations](metric-spaces.cauchy-approximations-metric-spaces.md). - -## Definition - -```agda -module _ - {l1 l2 l3 l4 : Level} - (X : Metric-Space l1 l2) - (Y : Metric-Space l3 l4) - (f : isometry-Metric-Space X Y) - where - - map-isometry-cauchy-approximation-Metric-Space : - cauchy-approximation-Metric-Space X → - cauchy-approximation-Metric-Space Y - map-isometry-cauchy-approximation-Metric-Space = - map-isometry-cauchy-approximation-Pseudometric-Space - ( pseudometric-Metric-Space X) - ( pseudometric-Metric-Space Y) - ( f) -``` - -## Properties - -### An isometry on metric spaces induces an isometry on the Cauchy pseudocompletions of the metric spaces - -```agda -module _ - {l1 l2 l3 l4 : Level} - (X : Metric-Space l1 l2) - (Y : Metric-Space l3 l4) - (f : isometry-Metric-Space X Y) - where - - abstract - is-isometry-cauchy-pseudocompletion-isometry-Metric-Space : - is-isometry-Pseudometric-Space - ( cauchy-pseudocompletion-Metric-Space X) - ( cauchy-pseudocompletion-Metric-Space Y) - ( map-isometry-cauchy-approximation-Metric-Space X Y f) - is-isometry-cauchy-pseudocompletion-isometry-Metric-Space = - is-isometry-cauchy-pseudocompletion-isometry-Pseudometric-Space - ( pseudometric-Metric-Space X) - ( pseudometric-Metric-Space Y) - ( f) - - isometry-cauchy-pseudocompletion-isometry-Metric-Space : - isometry-Pseudometric-Space - ( cauchy-pseudocompletion-Metric-Space X) - ( cauchy-pseudocompletion-Metric-Space Y) - isometry-cauchy-pseudocompletion-isometry-Metric-Space = - isometry-cauchy-pseudocompletion-isometry-Pseudometric-Space - ( pseudometric-Metric-Space X) - ( pseudometric-Metric-Space Y) - ( f) -``` diff --git a/src/metric-spaces/action-on-cauchy-approximations-isometries-pseudometric-spaces.lagda.md b/src/metric-spaces/action-on-cauchy-approximations-isometries-pseudometric-spaces.lagda.md deleted file mode 100644 index 16d2b0789ef..00000000000 --- a/src/metric-spaces/action-on-cauchy-approximations-isometries-pseudometric-spaces.lagda.md +++ /dev/null @@ -1,102 +0,0 @@ -# The action on Cauchy approximations of isometries in pseudometric spaces - -```agda -module metric-spaces.action-on-cauchy-approximations-isometries-pseudometric-spaces where -``` - -
Imports - -```agda -open import elementary-number-theory.addition-positive-rational-numbers - -open import foundation.dependent-pair-types -open import foundation.universe-levels - -open import metric-spaces.action-on-cauchy-approximations-short-maps-pseudometric-spaces -open import metric-spaces.cauchy-approximations-pseudometric-spaces -open import metric-spaces.cauchy-pseudocompletions-of-pseudometric-spaces -open import metric-spaces.isometries-pseudometric-spaces -open import metric-spaces.pseudometric-spaces -``` - -
- -## Idea - -[Isometries](metric-spaces.isometries-pseudometric-spaces.md) on -[pseudometric spaces](metric-spaces.pseudometric-spaces.md) induce isometries on -the -[Cauchy pseudocompletion](metric-spaces.cauchy-pseudocompletions-of-pseudometric-spaces.md) -of the pseudometric spaces. - -## Definition - -```agda -module _ - {l1 l2 l3 l4 : Level} - (X : Pseudometric-Space l1 l2) - (Y : Pseudometric-Space l3 l4) - (f : isometry-Pseudometric-Space X Y) - where - - map-isometry-cauchy-approximation-Pseudometric-Space : - cauchy-approximation-Pseudometric-Space X → - cauchy-approximation-Pseudometric-Space Y - map-isometry-cauchy-approximation-Pseudometric-Space = - map-short-map-cauchy-approximation-Pseudometric-Space - ( X) - ( Y) - ( short-map-isometry-Pseudometric-Space X Y f) -``` - -## Properties - -### Mapping an isometry on Cauchy approximations in a pseudometric space is an isometry in the Cauchy pseudocompletion - -```agda -module _ - {l1 l2 l3 l4 : Level} - (X : Pseudometric-Space l1 l2) - (Y : Pseudometric-Space l3 l4) - (f : isometry-Pseudometric-Space X Y) - where - - abstract - is-isometry-cauchy-pseudocompletion-isometry-Pseudometric-Space : - is-isometry-Pseudometric-Space - ( cauchy-pseudocompletion-Pseudometric-Space X) - ( cauchy-pseudocompletion-Pseudometric-Space Y) - ( map-isometry-cauchy-approximation-Pseudometric-Space X Y f) - pr1 - ( is-isometry-cauchy-pseudocompletion-isometry-Pseudometric-Space - d (x , is-approx-x) (y , is-approx-y)) - Ndxy δ ε = - preserves-neighborhoods-map-isometry-Pseudometric-Space - ( X) - ( Y) - ( f) - ( δ +ℚ⁺ ε +ℚ⁺ d) - ( x δ) - ( y ε) - ( Ndxy δ ε) - pr2 - ( is-isometry-cauchy-pseudocompletion-isometry-Pseudometric-Space - d (x , is-approx-x) (y , is-approx-y)) - Ndfxfy δ ε = - reflects-neighborhoods-map-isometry-Pseudometric-Space - ( X) - ( Y) - ( f) - ( δ +ℚ⁺ ε +ℚ⁺ d) - ( x δ) - ( y ε) - ( Ndfxfy δ ε) - - isometry-cauchy-pseudocompletion-isometry-Pseudometric-Space : - isometry-Pseudometric-Space - ( cauchy-pseudocompletion-Pseudometric-Space X) - ( cauchy-pseudocompletion-Pseudometric-Space Y) - isometry-cauchy-pseudocompletion-isometry-Pseudometric-Space = - ( map-isometry-cauchy-approximation-Pseudometric-Space X Y f , - is-isometry-cauchy-pseudocompletion-isometry-Pseudometric-Space) -``` diff --git a/src/metric-spaces/action-on-cauchy-approximations-short-maps-metric-spaces.lagda.md b/src/metric-spaces/action-on-cauchy-approximations-short-maps-metric-spaces.lagda.md deleted file mode 100644 index 0af182cc02c..00000000000 --- a/src/metric-spaces/action-on-cauchy-approximations-short-maps-metric-spaces.lagda.md +++ /dev/null @@ -1,59 +0,0 @@ -# The action on Cauchy approximations of short maps on metric spaces - -```agda -module metric-spaces.action-on-cauchy-approximations-short-maps-metric-spaces where -``` - -
Imports - -```agda -open import foundation.universe-levels - -open import metric-spaces.action-on-cauchy-approximations-short-maps-pseudometric-spaces -open import metric-spaces.cauchy-approximations-metric-spaces -open import metric-spaces.cauchy-pseudocompletions-of-metric-spaces -open import metric-spaces.metric-spaces -open import metric-spaces.short-maps-metric-spaces -open import metric-spaces.short-maps-pseudometric-spaces -``` - -
- -## Idea - -The action of [short maps](metric-spaces.short-maps-metric-spaces.md) on -[Cauchy approximations](metric-spaces.cauchy-approximations-metric-spaces.md) in -[metric spaces](metric-spaces.metric-spaces.md) is itself a -[short map](metric-spaces.short-maps-pseudometric-spaces.md) on the -[Cauchy pseudocompletions](metric-spaces.cauchy-pseudocompletions-of-metric-spaces.md) -of the metric spaces. - -## Definition - -```agda -module _ - {l1 l2 l3 l4 : Level} - (X : Metric-Space l1 l2) - (Y : Metric-Space l3 l4) - (f : short-map-Metric-Space X Y) - where - - short-map-cauchy-pseudocompletion-short-map-Metric-Space : - short-map-Pseudometric-Space - ( cauchy-pseudocompletion-Metric-Space X) - ( cauchy-pseudocompletion-Metric-Space Y) - short-map-cauchy-pseudocompletion-short-map-Metric-Space = - short-map-cauchy-pseudocompletion-short-map-Pseudometric-Space - ( pseudometric-Metric-Space X) - ( pseudometric-Metric-Space Y) - ( f) - - map-short-map-cauchy-approximation-Metric-Space : - cauchy-approximation-Metric-Space X → - cauchy-approximation-Metric-Space Y - map-short-map-cauchy-approximation-Metric-Space = - map-short-map-cauchy-approximation-Pseudometric-Space - ( pseudometric-Metric-Space X) - ( pseudometric-Metric-Space Y) - ( f) -``` diff --git a/src/metric-spaces/action-on-cauchy-approximations-short-maps-pseudometric-spaces.lagda.md b/src/metric-spaces/action-on-cauchy-approximations-short-maps-pseudometric-spaces.lagda.md deleted file mode 100644 index 281e54b3bd9..00000000000 --- a/src/metric-spaces/action-on-cauchy-approximations-short-maps-pseudometric-spaces.lagda.md +++ /dev/null @@ -1,92 +0,0 @@ -# The action on Cauchy approximations of short maps in pseudometric spaces - -```agda -module metric-spaces.action-on-cauchy-approximations-short-maps-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.dependent-pair-types -open import foundation.universe-levels - -open import metric-spaces.cauchy-approximations-pseudometric-spaces -open import metric-spaces.cauchy-pseudocompletions-of-pseudometric-spaces -open import metric-spaces.pseudometric-spaces -open import metric-spaces.short-maps-pseudometric-spaces -``` - -
- -## Idea - -The action of [short maps](metric-spaces.short-maps-pseudometric-spaces.md) on -[pseudometric spaces](metric-spaces.pseudometric-spaces.md) preserves -[Cauchy approximations](metric-spaces.cauchy-approximations-pseudometric-spaces.md). - -## Definition - -```agda -module _ - {l1 l2 l3 l4 : Level} - (X : Pseudometric-Space l1 l2) - (Y : Pseudometric-Space l3 l4) - (f@(map-f , is-short-f) : short-map-Pseudometric-Space X Y) - (x@(map-x , is-approx-x) : cauchy-approximation-Pseudometric-Space X) - where - - map-cauchy-approximation-map-short-map-cauchy-approximation-Pseudometric-Space : - ℚ⁺ → type-Pseudometric-Space Y - map-cauchy-approximation-map-short-map-cauchy-approximation-Pseudometric-Space - ε = - map-f (map-x ε) - - abstract - is-cauchy-approximation-map-short-map-cauchy-approximation-Pseudometric-Space : - is-cauchy-approximation-Pseudometric-Space - ( Y) - ( map-cauchy-approximation-map-short-map-cauchy-approximation-Pseudometric-Space) - is-cauchy-approximation-map-short-map-cauchy-approximation-Pseudometric-Space - δ ε = - is-short-f (δ +ℚ⁺ ε) (map-x δ) (map-x ε) (is-approx-x δ ε) - - map-short-map-cauchy-approximation-Pseudometric-Space : - cauchy-approximation-Pseudometric-Space Y - map-short-map-cauchy-approximation-Pseudometric-Space = - ( map-cauchy-approximation-map-short-map-cauchy-approximation-Pseudometric-Space , - is-cauchy-approximation-map-short-map-cauchy-approximation-Pseudometric-Space) -``` - -## Properties - -### The induced action of a short map on Cauchy approximations is short in the Cauchy pseudocompletion of a pseudometric space - -```agda -module _ - {l1 l2 l3 l4 : Level} - (X : Pseudometric-Space l1 l2) - (Y : Pseudometric-Space l3 l4) - (f@(map-f , is-short-f) : short-map-Pseudometric-Space X Y) - where - - abstract - is-short-map-cauchy-pseudocompletion-short-map-Pseudometric-Space : - is-short-map-Pseudometric-Space - ( cauchy-pseudocompletion-Pseudometric-Space X) - ( cauchy-pseudocompletion-Pseudometric-Space Y) - ( map-short-map-cauchy-approximation-Pseudometric-Space X Y f) - is-short-map-cauchy-pseudocompletion-short-map-Pseudometric-Space - d (x , _) (y , _) Ndxy δ ε = - is-short-f (δ +ℚ⁺ ε +ℚ⁺ d) (x δ) (y ε) (Ndxy δ ε) - - short-map-cauchy-pseudocompletion-short-map-Pseudometric-Space : - short-map-Pseudometric-Space - ( cauchy-pseudocompletion-Pseudometric-Space X) - ( cauchy-pseudocompletion-Pseudometric-Space Y) - short-map-cauchy-pseudocompletion-short-map-Pseudometric-Space = - ( map-short-map-cauchy-approximation-Pseudometric-Space X Y f , - is-short-map-cauchy-pseudocompletion-short-map-Pseudometric-Space) -``` diff --git a/src/metric-spaces/limits-of-cauchy-approximations-metric-spaces.lagda.md b/src/metric-spaces/limits-of-cauchy-approximations-metric-spaces.lagda.md index 524cf3c7a21..d7627035b9f 100644 --- a/src/metric-spaces/limits-of-cauchy-approximations-metric-spaces.lagda.md +++ b/src/metric-spaces/limits-of-cauchy-approximations-metric-spaces.lagda.md @@ -10,8 +10,10 @@ module metric-spaces.limits-of-cauchy-approximations-metric-spaces where open import elementary-number-theory.addition-positive-rational-numbers open import elementary-number-theory.positive-rational-numbers +open import foundation.dependent-pair-types open import foundation.function-types open import foundation.identity-types +open import foundation.logical-equivalences open import foundation.propositions open import foundation.universe-levels @@ -245,6 +247,33 @@ module _ ( is-lim-v-y) ``` +### Cauchy approximations with limits are similar if and only if the limits are equal + +```agda +module _ + {l1 l2 : Level} + (M : Metric-Space l1 l2) + (u v : cauchy-approximation-Metric-Space M) + {x y : type-Metric-Space M} + (is-lim-u-x : is-limit-cauchy-approximation-Metric-Space M u x) + (is-lim-v-y : is-limit-cauchy-approximation-Metric-Space M v y) + where + + eq-limit-iff-sim-cauchy-pseudocompletion-Metric-Space : + sim-cauchy-pseudocompletion-Metric-Space M u v ↔ (x = y) + pr1 eq-limit-iff-sim-cauchy-pseudocompletion-Metric-Space u~v = + eq-limit-sim-cauchy-pseudocompletion-Metric-Space M + ( u) + ( v) + ( u~v) + ( x) + ( y) + ( is-lim-u-x) + ( is-lim-v-y) + pr2 eq-limit-iff-sim-cauchy-pseudocompletion-Metric-Space refl = + sim-is-limit-cauchy-approximation-Metric-Space M u v x is-lim-u-x is-lim-v-y +``` + ### Homotopic Cauchy approximations have the same limits ```agda @@ -278,65 +307,58 @@ module _ (x y : type-Metric-Space X) (is-lim-f-x : is-limit-cauchy-approximation-Metric-Space X f x) (is-lim-g-y : is-limit-cauchy-approximation-Metric-Space X g y) - where abstract + where + + abstract + same-neighborhoods-limits-cauchy-pseudocompletion-Metric-Space : + neighborhood-cauchy-pseudocompletion-Metric-Space X d f g ↔ + neighborhood-Metric-Space X d x y + same-neighborhoods-limits-cauchy-pseudocompletion-Metric-Space = + logical-equivalence-reasoning + neighborhood-cauchy-pseudocompletion-Metric-Space X d f g + ↔ neighborhood-cauchy-pseudocompletion-Metric-Space X + ( d) + ( const-cauchy-approximation-Metric-Space X x) + ( const-cauchy-approximation-Metric-Space X y) + by + preserves-and-reflects-neighborhoods-sim-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Space X) + { x = f} + { x' = const-cauchy-approximation-Metric-Space X x} + { y = g} + { y' = const-cauchy-approximation-Metric-Space X y} + ( sim-const-is-limit-cauchy-approximation-Metric-Space X + ( f) + ( x) + ( is-lim-f-x)) + ( sim-const-is-limit-cauchy-approximation-Metric-Space + ( X) + ( g) + ( y) + ( is-lim-g-y)) + ( d) + ↔ neighborhood-Metric-Space X d x y + by + inv-iff + ( is-isometry-map-unit-cauchy-pseudocompletion-Metric-Space + ( X) + ( d) + ( x) + ( y)) preserves-neighborhoods-limits-cauchy-approximation-Metric-Space : neighborhood-cauchy-pseudocompletion-Metric-Space X d f g → neighborhood-Metric-Space X d x y - preserves-neighborhoods-limits-cauchy-approximation-Metric-Space Ndfg = - reflects-neighborhoods-map-isometry-Pseudometric-Space - ( pseudometric-Metric-Space X) - ( cauchy-pseudocompletion-Metric-Space X) - ( isometry-unit-cauchy-pseudocompletion-Metric-Space X) - ( d) - ( x) - ( y) - ( preserves-neighborhoods-sim-Pseudometric-Space - ( cauchy-pseudocompletion-Metric-Space X) - { x = f} - { x' = const-cauchy-approximation-Metric-Space X x} - { y = g} - { y' = const-cauchy-approximation-Metric-Space X y} - ( sim-const-is-limit-cauchy-approximation-Metric-Space X f x is-lim-f-x) - ( sim-const-is-limit-cauchy-approximation-Metric-Space X g y is-lim-g-y) - ( d) - ( Ndfg)) + preserves-neighborhoods-limits-cauchy-approximation-Metric-Space = + forward-implication + ( same-neighborhoods-limits-cauchy-pseudocompletion-Metric-Space) reflects-neighborhoods-limits-cauchy-approximation-Metric-Space : neighborhood-Metric-Space X d x y → neighborhood-cauchy-pseudocompletion-Metric-Space X d f g - reflects-neighborhoods-limits-cauchy-approximation-Metric-Space Ndxy = - preserves-neighborhoods-sim-Pseudometric-Space - ( cauchy-pseudocompletion-Metric-Space X) - { x = const-cauchy-approximation-Metric-Space X x} - { x' = f} - { y = const-cauchy-approximation-Metric-Space X y} - { y' = g} - ( symmetric-sim-Pseudometric-Space - ( cauchy-pseudocompletion-Metric-Space X) - ( f) - ( const-cauchy-approximation-Metric-Space X x) - ( sim-const-is-limit-cauchy-approximation-Metric-Space X - ( f) - ( x) - ( is-lim-f-x))) - ( symmetric-sim-Pseudometric-Space - ( cauchy-pseudocompletion-Metric-Space X) - ( g) - ( const-cauchy-approximation-Metric-Space X y) - ( sim-const-is-limit-cauchy-approximation-Metric-Space X - ( g) - ( y) - ( is-lim-g-y))) - ( d) - ( preserves-neighborhoods-map-isometry-Pseudometric-Space - ( pseudometric-Metric-Space X) - ( cauchy-pseudocompletion-Metric-Space X) - ( isometry-unit-cauchy-pseudocompletion-Metric-Space X) - ( d) - ( x) - ( y) - ( Ndxy)) + reflects-neighborhoods-limits-cauchy-approximation-Metric-Space = + backward-implication + ( same-neighborhoods-limits-cauchy-pseudocompletion-Metric-Space) ``` ## See also diff --git a/src/metric-spaces/metric-space-of-rational-numbers.lagda.md b/src/metric-spaces/metric-space-of-rational-numbers.lagda.md index be3f658b930..304b77c7d64 100644 --- a/src/metric-spaces/metric-space-of-rational-numbers.lagda.md +++ b/src/metric-spaces/metric-space-of-rational-numbers.lagda.md @@ -169,15 +169,17 @@ abstract ( associative-add-ℚ y (rational-ℚ⁺ ε) (rational-ℚ⁺ δ)) ( pr2 (H δ))) -pseudometric-space-ℚ : Pseudometric-Space lzero lzero -pr1 pseudometric-space-ℚ = ℚ -pr2 pseudometric-space-ℚ = +pseudometric-structure-ℚ : Pseudometric-Structure lzero ℚ +pseudometric-structure-ℚ = ( neighborhood-prop-ℚ , is-reflexive-neighborhood-ℚ , is-symmetric-neighborhood-ℚ , is-triangular-neighborhood-ℚ , is-saturated-neighborhood-ℚ) +pseudometric-space-ℚ : Pseudometric-Space lzero lzero +pseudometric-space-ℚ = (ℚ , pseudometric-structure-ℚ) + abstract is-tight-pseudometric-space-ℚ : is-tight-Pseudometric-Space pseudometric-space-ℚ @@ -306,6 +308,16 @@ module _ where abstract + is-short-map-left-add-ℚ : + is-short-map-Metric-Space + ( metric-space-ℚ) + ( metric-space-ℚ) + ( add-ℚ x) + is-short-map-left-add-ℚ d y z = + map-product + ( preserves-lower-neighborhood-add-ℚ x y z d) + ( preserves-lower-neighborhood-add-ℚ x z y d) + is-isometry-left-add-ℚ : is-isometry-Metric-Space ( metric-space-ℚ) @@ -313,9 +325,7 @@ module _ ( add-ℚ x) is-isometry-left-add-ℚ d y z = pair - ( map-product - ( preserves-lower-neighborhood-add-ℚ x y z d) - ( preserves-lower-neighborhood-add-ℚ x z y d)) + ( is-short-map-left-add-ℚ d y z) ( map-product ( reflects-lower-neighborhood-add-ℚ x y z d) ( reflects-lower-neighborhood-add-ℚ x z y d)) @@ -372,6 +382,15 @@ abstract ↔ neighborhood-ℚ d (neg-ℚ x) (neg-ℚ y) by leq-dist-iff-neighborhood-ℚ _ _ _ + is-short-map-neg-ℚ : + is-short-map-Metric-Space metric-space-ℚ metric-space-ℚ neg-ℚ + is-short-map-neg-ℚ = + is-short-map-is-isometry-Metric-Space + ( metric-space-ℚ) + ( metric-space-ℚ) + ( neg-ℚ) + ( is-isometry-neg-ℚ) + is-uniformly-continuous-map-neg-ℚ : is-uniformly-continuous-map-Metric-Space ( metric-space-ℚ) diff --git a/src/metric-spaces/similarity-of-elements-pseudometric-spaces.lagda.md b/src/metric-spaces/similarity-of-elements-pseudometric-spaces.lagda.md index ae932073c8d..296228f80c3 100644 --- a/src/metric-spaces/similarity-of-elements-pseudometric-spaces.lagda.md +++ b/src/metric-spaces/similarity-of-elements-pseudometric-spaces.lagda.md @@ -269,6 +269,18 @@ module _ backward-implication ( same-neighbors d _) ( refl-sim-Pseudometric-Space A _ d)) + + preserves-and-reflects-neighborhoods-sim-Pseudometric-Space : + {x x' y y' : type-Pseudometric-Space A} → + sim-Pseudometric-Space A x x' → + sim-Pseudometric-Space A y y' → + (d : ℚ⁺) → + neighborhood-Pseudometric-Space A d x y ↔ + neighborhood-Pseudometric-Space A d x' y' + preserves-and-reflects-neighborhoods-sim-Pseudometric-Space + {x} {x'} {y} {y'} x~x' y~y' d = + ( preserves-neighborhoods-sim-Pseudometric-Space x~x' y~y' d , + reflects-neighborhoods-sim-Pseudometric-Space x~x' y~y' d) ``` ### Similar elements are elements similar w.r.t the underlying rational neighborhood relation @@ -362,4 +374,14 @@ module _ ( sim-Pseudometric-Space A x y) reflects-sim-map-isometry-Pseudometric-Space x y fx~fy d = reflects-neighborhoods-map-isometry-Pseudometric-Space A B f d x y (fx~fy d) + + iff-sim-map-isometry-Pseudometric-Space : + ( x y : type-Pseudometric-Space A) → + ( sim-Pseudometric-Space A x y) ↔ + ( sim-Pseudometric-Space B + ( map-isometry-Pseudometric-Space A B f x) + ( map-isometry-Pseudometric-Space A B f y)) + iff-sim-map-isometry-Pseudometric-Space x y = + ( preserves-sim-map-isometry-Pseudometric-Space x y , + reflects-sim-map-isometry-Pseudometric-Space x y) ``` From 53ada379e2adb19e90604648990dc9424076fd9a Mon Sep 17 00:00:00 2001 From: Louis Wasserman Date: Sun, 14 Jun 2026 11:51:13 -0700 Subject: [PATCH 24/26] Fixes --- ...s-maps-into-metric-abelian-groups.lagda.md | 28 ++++++------ ...roximations-metric-abelian-groups.lagda.md | 30 +++++++------ ...dditive-group-of-rational-numbers.lagda.md | 4 +- ...-groups-normed-real-vector-spaces.lagda.md | 4 +- .../normed-real-vector-spaces.lagda.md | 25 +++++++++++ .../isometry-addition-real-numbers.lagda.md | 45 ++++++++++++------- .../isometry-negation-real-numbers.lagda.md | 22 ++------- ...ic-additive-group-of-real-numbers.lagda.md | 4 +- 8 files changed, 94 insertions(+), 68 deletions(-) diff --git a/src/analysis/metric-abelian-groups-of-uniformly-continuous-maps-into-metric-abelian-groups.lagda.md b/src/analysis/metric-abelian-groups-of-uniformly-continuous-maps-into-metric-abelian-groups.lagda.md index ecce1868350..f54b856bfe8 100644 --- a/src/analysis/metric-abelian-groups-of-uniformly-continuous-maps-into-metric-abelian-groups.lagda.md +++ b/src/analysis/metric-abelian-groups-of-uniformly-continuous-maps-into-metric-abelian-groups.lagda.md @@ -18,11 +18,11 @@ open import group-theory.function-abelian-groups open import group-theory.subgroups-abelian-groups open import metric-spaces.cartesian-products-metric-spaces -open import metric-spaces.isometries-metric-spaces open import metric-spaces.maps-metric-spaces open import metric-spaces.metric-space-of-uniformly-continuous-maps-metric-spaces open import metric-spaces.metric-spaces open import metric-spaces.pseudometric-spaces +open import metric-spaces.short-maps-metric-spaces open import metric-spaces.uniformly-continuous-maps-metric-spaces ``` @@ -154,26 +154,24 @@ module _ add-Ab ab-uniformly-continuous-map-Metric-Ab abstract - is-isometry-neg-uniformly-continuous-map-Metric-Ab : - is-isometry-Metric-Space + is-short-map-neg-uniformly-continuous-map-Metric-Ab : + is-short-map-Metric-Space ( metric-space-uniformly-continuous-map-Metric-Ab) ( metric-space-uniformly-continuous-map-Metric-Ab) ( neg-uniformly-continuous-map-Metric-Ab) - is-isometry-neg-uniformly-continuous-map-Metric-Ab - d f@(map-f , _) g@(map-g , _) = - iff-Π-iff-family - ( λ x → is-isometry-neg-Metric-Ab G d (map-f x) (map-g x)) + is-short-map-neg-uniformly-continuous-map-Metric-Ab + d f@(map-f , _) g@(map-g , _) Ndfg x = + is-short-map-neg-Metric-Ab G d (map-f x) (map-g x) (Ndfg x) - is-isometry-add-uniformly-continuous-map-Metric-Ab : + is-short-map-add-uniformly-continuous-map-Metric-Ab : (f : type-uniformly-continuous-map-Metric-Ab) → - is-isometry-Metric-Space + is-short-map-Metric-Space ( metric-space-uniformly-continuous-map-Metric-Ab) ( metric-space-uniformly-continuous-map-Metric-Ab) ( add-uniformly-continuous-map-Metric-Ab f) - is-isometry-add-uniformly-continuous-map-Metric-Ab - (map-f , _) d (map-g , _) (map-h , _) = - iff-Π-iff-family - ( λ x → is-isometry-add-Metric-Ab G (map-f x) d (map-g x) (map-h x)) + is-short-map-add-uniformly-continuous-map-Metric-Ab + (map-f , _) d (map-g , _) (map-h , _) Ndgh x = + is-short-map-add-Metric-Ab G (map-f x) d (map-g x) (map-h x) (Ndgh x) metric-ab-uniformly-continuous-map-Metric-Ab : Metric-Ab (l1 ⊔ l2 ⊔ l3 ⊔ l4) (l1 ⊔ l4) @@ -182,6 +180,6 @@ module _ pseudometric-structure-uniformly-continuous-map-Metric-Ab , is-extensional-pseudometric-Metric-Space ( metric-space-uniformly-continuous-map-Metric-Ab) , - is-isometry-neg-uniformly-continuous-map-Metric-Ab , - is-isometry-add-uniformly-continuous-map-Metric-Ab) + is-short-map-neg-uniformly-continuous-map-Metric-Ab , + is-short-map-add-uniformly-continuous-map-Metric-Ab) ``` diff --git a/src/analysis/negation-cauchy-approximations-metric-abelian-groups.lagda.md b/src/analysis/negation-cauchy-approximations-metric-abelian-groups.lagda.md index 6d7634281e3..51c27be6649 100644 --- a/src/analysis/negation-cauchy-approximations-metric-abelian-groups.lagda.md +++ b/src/analysis/negation-cauchy-approximations-metric-abelian-groups.lagda.md @@ -18,7 +18,7 @@ open import foundation.identity-types open import foundation.subtypes open import foundation.universe-levels -open import metric-spaces.action-on-cauchy-approximations-isometries-metric-spaces +open import metric-spaces.functoriality-isometries-cauchy-pseudocompletions-of-metric-spaces open import metric-spaces.isometries-pseudometric-spaces ``` @@ -43,7 +43,7 @@ module _ neg-cauchy-approximation-Metric-Ab : cauchy-approximation-Metric-Ab G → cauchy-approximation-Metric-Ab G neg-cauchy-approximation-Metric-Ab = - map-isometry-cauchy-approximation-Metric-Space + map-isometry-cauchy-pseudocompletion-Metric-Space ( metric-space-Metric-Ab G) ( metric-space-Metric-Ab G) ( isometry-neg-Metric-Ab G) @@ -59,6 +59,16 @@ module _ (G : Metric-Ab l1 l2) where + isometry-neg-cauchy-pseudocompletion-Metric-Ab : + isometry-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Ab G) + ( cauchy-pseudocompletion-Metric-Ab G) + isometry-neg-cauchy-pseudocompletion-Metric-Ab = + isometry-cauchy-pseudocompletion-Metric-Space + ( metric-space-Metric-Ab G) + ( metric-space-Metric-Ab G) + ( isometry-neg-Metric-Ab G) + abstract is-isometry-neg-cauchy-pseudocompletion-Metric-Ab : is-isometry-Pseudometric-Space @@ -66,18 +76,10 @@ module _ ( cauchy-pseudocompletion-Metric-Ab G) ( neg-cauchy-approximation-Metric-Ab G) is-isometry-neg-cauchy-pseudocompletion-Metric-Ab = - is-isometry-cauchy-pseudocompletion-isometry-Metric-Space - ( metric-space-Metric-Ab G) - ( metric-space-Metric-Ab G) - ( isometry-neg-Metric-Ab G) - - isometry-neg-cauchy-pseudocompletion-Metric-Ab : - isometry-Pseudometric-Space - ( cauchy-pseudocompletion-Metric-Ab G) - ( cauchy-pseudocompletion-Metric-Ab G) - isometry-neg-cauchy-pseudocompletion-Metric-Ab = - ( neg-cauchy-approximation-Metric-Ab G , - is-isometry-neg-cauchy-pseudocompletion-Metric-Ab) + is-isometry-map-isometry-Pseudometric-Space + ( cauchy-pseudocompletion-Metric-Ab G) + ( cauchy-pseudocompletion-Metric-Ab G) + ( isometry-neg-cauchy-pseudocompletion-Metric-Ab) ``` ### Inverse laws of addition of Cauchy approximations diff --git a/src/elementary-number-theory/metric-additive-group-of-rational-numbers.lagda.md b/src/elementary-number-theory/metric-additive-group-of-rational-numbers.lagda.md index 38d71c14497..aa78014a8b5 100644 --- a/src/elementary-number-theory/metric-additive-group-of-rational-numbers.lagda.md +++ b/src/elementary-number-theory/metric-additive-group-of-rational-numbers.lagda.md @@ -34,6 +34,6 @@ metric-ab-add-ℚ = ( abelian-group-add-ℚ , pseudometric-structure-Metric-Space metric-space-ℚ , is-extensional-pseudometric-space-ℚ , - is-isometry-neg-ℚ , - is-isometry-left-add-ℚ) + is-short-map-neg-ℚ , + is-short-map-left-add-ℚ) ``` diff --git a/src/functional-analysis/metric-abelian-groups-normed-real-vector-spaces.lagda.md b/src/functional-analysis/metric-abelian-groups-normed-real-vector-spaces.lagda.md index afd9de40317..9e452b93110 100644 --- a/src/functional-analysis/metric-abelian-groups-normed-real-vector-spaces.lagda.md +++ b/src/functional-analysis/metric-abelian-groups-normed-real-vector-spaces.lagda.md @@ -69,8 +69,8 @@ module _ pseudometric-structure-metric-ab-Normed-ℝ-Vector-Space , is-extensional-pseudometric-Metric-Space ( metric-space-Normed-ℝ-Vector-Space V) , - is-isometry-neg-Normed-ℝ-Vector-Space V , - is-isometry-left-add-Normed-ℝ-Vector-Space V) + is-short-map-neg-Normed-ℝ-Vector-Space V , + is-short-map-left-add-Normed-ℝ-Vector-Space V) ``` ## Properties diff --git a/src/linear-algebra/normed-real-vector-spaces.lagda.md b/src/linear-algebra/normed-real-vector-spaces.lagda.md index 53a58db9b70..29c56236d5b 100644 --- a/src/linear-algebra/normed-real-vector-spaces.lagda.md +++ b/src/linear-algebra/normed-real-vector-spaces.lagda.md @@ -31,6 +31,7 @@ open import metric-spaces.located-metric-spaces open import metric-spaces.metric-spaces open import metric-spaces.metrics open import metric-spaces.metrics-of-metric-spaces +open import metric-spaces.short-maps-metric-spaces open import real-numbers.absolute-value-real-numbers open import real-numbers.addition-real-numbers @@ -363,6 +364,18 @@ module _ ( _)) = dist-Normed-ℝ-Vector-Space V x y by symmetric-dist-Normed-ℝ-Vector-Space V y x))) + + is-short-map-neg-Normed-ℝ-Vector-Space : + is-short-map-Metric-Space + ( metric-space-Normed-ℝ-Vector-Space V) + ( metric-space-Normed-ℝ-Vector-Space V) + ( neg-Normed-ℝ-Vector-Space V) + is-short-map-neg-Normed-ℝ-Vector-Space = + is-short-map-is-isometry-Metric-Space + ( metric-space-Normed-ℝ-Vector-Space V) + ( metric-space-Normed-ℝ-Vector-Space V) + ( neg-Normed-ℝ-Vector-Space V) + ( is-isometry-neg-Normed-ℝ-Vector-Space) ``` ### Left addition is an isometry in the metric space of a normed vector space @@ -403,6 +416,18 @@ module _ ( u) ( v) ( w))))) + + is-short-map-left-add-Normed-ℝ-Vector-Space : + is-short-map-Metric-Space + ( metric-space-Normed-ℝ-Vector-Space V) + ( metric-space-Normed-ℝ-Vector-Space V) + ( add-Normed-ℝ-Vector-Space V u) + is-short-map-left-add-Normed-ℝ-Vector-Space = + is-short-map-is-isometry-Metric-Space + ( metric-space-Normed-ℝ-Vector-Space V) + ( metric-space-Normed-ℝ-Vector-Space V) + ( add-Normed-ℝ-Vector-Space V u) + ( is-isometry-left-add-Normed-ℝ-Vector-Space) ``` ### The norm of the zero vector is zero diff --git a/src/real-numbers/isometry-addition-real-numbers.lagda.md b/src/real-numbers/isometry-addition-real-numbers.lagda.md index 55b9f3b3e51..be0a83e6e90 100644 --- a/src/real-numbers/isometry-addition-real-numbers.lagda.md +++ b/src/real-numbers/isometry-addition-real-numbers.lagda.md @@ -15,6 +15,7 @@ open import foundation.transport-along-identifications open import foundation.universe-levels open import metric-spaces.cartesian-products-metric-spaces +open import metric-spaces.expansive-maps-metric-spaces open import metric-spaces.isometries-metric-spaces open import metric-spaces.metric-space-of-isometries-metric-spaces open import metric-spaces.modulated-uniformly-continuous-maps-metric-spaces @@ -51,27 +52,41 @@ module _ where abstract + is-short-map-left-add-ℝ : + is-short-map-Metric-Space + ( metric-space-ℝ l2) + ( metric-space-ℝ (l1 ⊔ l2)) + ( add-ℝ x) + is-short-map-left-add-ℝ d y z Nyz = + neighborhood-real-bound-each-leq-ℝ + ( d) + ( add-ℝ x y) + ( add-ℝ x z) + ( preserves-lower-neighborhood-leq-left-add-ℝ d x y z + ( left-leq-real-bound-neighborhood-ℝ d y z Nyz)) + ( preserves-lower-neighborhood-leq-left-add-ℝ d x z y + ( right-leq-real-bound-neighborhood-ℝ d y z Nyz)) + + is-expansive-map-left-add-ℝ : + is-expansive-map-Metric-Space + ( metric-space-ℝ l2) + ( metric-space-ℝ (l1 ⊔ l2)) + ( add-ℝ x) + is-expansive-map-left-add-ℝ d y z Nxyz = + neighborhood-real-bound-each-leq-ℝ d y z + ( reflects-lower-neighborhood-leq-left-add-ℝ d x y z + ( left-leq-real-bound-neighborhood-ℝ d (x +ℝ y) (x +ℝ z) Nxyz)) + ( reflects-lower-neighborhood-leq-left-add-ℝ d x z y + ( right-leq-real-bound-neighborhood-ℝ d (x +ℝ y) (x +ℝ z) Nxyz)) + is-isometry-left-add-ℝ : is-isometry-Metric-Space ( metric-space-ℝ l2) ( metric-space-ℝ (l1 ⊔ l2)) ( add-ℝ x) is-isometry-left-add-ℝ d y z = - ( λ Nyz → - neighborhood-real-bound-each-leq-ℝ - ( d) - ( add-ℝ x y) - ( add-ℝ x z) - ( preserves-lower-neighborhood-leq-left-add-ℝ d x y z - ( left-leq-real-bound-neighborhood-ℝ d y z Nyz)) - ( preserves-lower-neighborhood-leq-left-add-ℝ d x z y - ( right-leq-real-bound-neighborhood-ℝ d y z Nyz))) , - ( λ Nxyz → - neighborhood-real-bound-each-leq-ℝ d y z - ( reflects-lower-neighborhood-leq-left-add-ℝ d x y z - ( left-leq-real-bound-neighborhood-ℝ d (x +ℝ y) (x +ℝ z) Nxyz)) - ( reflects-lower-neighborhood-leq-left-add-ℝ d x z y - ( right-leq-real-bound-neighborhood-ℝ d (x +ℝ y) (x +ℝ z) Nxyz))) + ( is-short-map-left-add-ℝ d y z , + is-expansive-map-left-add-ℝ d y z) is-isometry-right-add-ℝ : is-isometry-Metric-Space diff --git a/src/real-numbers/isometry-negation-real-numbers.lagda.md b/src/real-numbers/isometry-negation-real-numbers.lagda.md index c12aba0caf9..022ff28dd7c 100644 --- a/src/real-numbers/isometry-negation-real-numbers.lagda.md +++ b/src/real-numbers/isometry-negation-real-numbers.lagda.md @@ -74,10 +74,10 @@ module _ where abstract - neg-neighborhood-ℝ : (d : ℚ⁺) (x y : ℝ l1) → + is-short-map-neg-ℝ : (d : ℚ⁺) (x y : ℝ l1) → neighborhood-ℝ l1 d x y → neighborhood-ℝ l1 d (neg-ℝ x) (neg-ℝ y) - neg-neighborhood-ℝ d x y H = + is-short-map-neg-ℝ d x y H = neighborhood-real-bound-each-leq-ℝ ( d) ( neg-ℝ x) @@ -108,12 +108,12 @@ module _ ( metric-space-ℝ l1) ( neg-ℝ) is-isometry-neg-ℝ d x y = - ( neg-neighborhood-ℝ d x y) , + ( is-short-map-neg-ℝ d x y) , ( ( binary-tr ( neighborhood-ℝ l1 d) ( neg-neg-ℝ x) ( neg-neg-ℝ y)) ∘ - ( neg-neighborhood-ℝ + ( is-short-map-neg-ℝ ( d) ( neg-ℝ x) ( neg-ℝ y))) @@ -128,20 +128,6 @@ module _ ### Negation on the real numbers is short ```agda -abstract - is-short-map-neg-ℝ : - {l : Level} → - is-short-map-Metric-Space - ( metric-space-ℝ l) - ( metric-space-ℝ l) - ( neg-ℝ) - is-short-map-neg-ℝ = - is-short-map-is-isometry-Metric-Space - ( metric-space-ℝ _) - ( metric-space-ℝ _) - ( neg-ℝ) - ( is-isometry-neg-ℝ) - short-map-neg-ℝ : {l : Level} → short-map-Metric-Space diff --git a/src/real-numbers/metric-additive-group-of-real-numbers.lagda.md b/src/real-numbers/metric-additive-group-of-real-numbers.lagda.md index db74d26fd06..1040e36dc20 100644 --- a/src/real-numbers/metric-additive-group-of-real-numbers.lagda.md +++ b/src/real-numbers/metric-additive-group-of-real-numbers.lagda.md @@ -41,8 +41,8 @@ metric-ab-add-ℝ l = ( ab-add-ℝ l , structure-Pseudometric-Space (pseudometric-space-ℝ l) , is-extensional-pseudometric-space-ℝ , - is-isometry-neg-ℝ , - is-isometry-left-add-ℝ) + is-short-map-neg-ℝ , + is-short-map-left-add-ℝ) complete-metric-ab-add-ℝ : (l : Level) → Complete-Metric-Ab (lsuc l) l complete-metric-ab-add-ℝ l = From 0eebabac4e9fbc20ff446f512a5037a53c652a02 Mon Sep 17 00:00:00 2001 From: Louis Wasserman Date: Sun, 14 Jun 2026 11:52:59 -0700 Subject: [PATCH 25/26] Fix to use functoriality --- ...ts-cauchy-pseudocompletions-metric-abelian-groups.lagda.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/analysis/metric-abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md b/src/analysis/metric-abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md index 30c1bf7a15a..9dc04d2eae3 100644 --- a/src/analysis/metric-abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md +++ b/src/analysis/metric-abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md @@ -29,7 +29,7 @@ open import foundation.universe-levels open import group-theory.abelian-groups open import group-theory.homomorphisms-abelian-groups -open import metric-spaces.action-on-cauchy-approximations-isometries-metric-spaces +open import metric-spaces.functoriality-isometries-cauchy-pseudocompletions-of-metric-spaces open import metric-spaces.cauchy-pseudocompletions-of-metric-spaces open import metric-spaces.isometries-metric-spaces open import metric-spaces.isometries-pseudometric-spaces @@ -106,7 +106,7 @@ module _ ( metric-quotient-cauchy-pseudocompletion-Metric-Ab G)) ( isometry-unit-metric-quotient-Pseudometric-Space ( cauchy-pseudocompletion-Metric-Ab G)) - ( isometry-cauchy-pseudocompletion-isometry-Metric-Space + ( isometry-cauchy-pseudocompletion-Metric-Space ( metric-space-Metric-Ab G) ( metric-space-Metric-Ab G) ( isometry-neg-Metric-Ab G))) From 6ddf61a8d9e231a750cc469e402853463862067c Mon Sep 17 00:00:00 2001 From: Louis Wasserman Date: Sun, 14 Jun 2026 11:55:54 -0700 Subject: [PATCH 26/26] make pre-commit --- ...ents-cauchy-pseudocompletions-metric-abelian-groups.lagda.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/analysis/metric-abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md b/src/analysis/metric-abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md index 9dc04d2eae3..5a56b5722ef 100644 --- a/src/analysis/metric-abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md +++ b/src/analysis/metric-abelian-groups-metric-quotients-cauchy-pseudocompletions-metric-abelian-groups.lagda.md @@ -29,8 +29,8 @@ open import foundation.universe-levels open import group-theory.abelian-groups open import group-theory.homomorphisms-abelian-groups -open import metric-spaces.functoriality-isometries-cauchy-pseudocompletions-of-metric-spaces open import metric-spaces.cauchy-pseudocompletions-of-metric-spaces +open import metric-spaces.functoriality-isometries-cauchy-pseudocompletions-of-metric-spaces open import metric-spaces.isometries-metric-spaces open import metric-spaces.isometries-pseudometric-spaces open import metric-spaces.metric-spaces