Skip to content

Refactor metric spaces #1450

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 77 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
0d29fa3
rational neighborhood relations
malarbol May 18, 2025
7f3d019
typos
malarbol May 18, 2025
a4dffeb
Premetric-Space-WIP
malarbol May 19, 2025
14c53ee
similarity premetric spaces
malarbol May 19, 2025
0cbf3b1
Merge branch 'master' into refactor-metric-spaces
malarbol May 27, 2025
4b22733
expand definition
malarbol May 19, 2025
8fcaa63
fix link
malarbol May 27, 2025
49fbebb
fix import order
malarbol May 27, 2025
0b2214a
refactor metric spaces (WIP)
malarbol May 28, 2025
5354a1f
fix WIP link
malarbol May 28, 2025
98fcead
fix name and pre-commit
malarbol May 28, 2025
f355e5e
fix typos/headers
malarbol May 28, 2025
229c422
elements of premetric spaces with the same neighbors
malarbol Jun 14, 2025
fc21d4c
refactor metric spaces using same-neighbors similarity relation
malarbol Jun 14, 2025
4c4e176
Merge branch 'master' into refactor-metric-spaces
malarbol Jun 14, 2025
033e3e3
typo
malarbol Jun 14, 2025
2fcb409
header upper bound dist rational neighborhood relation
malarbol Jun 14, 2025
be3f1d6
Identity principle for rational neighborhood relations
malarbol Jun 14, 2025
855b5a5
fix link
malarbol Jun 14, 2025
576fa9d
format header
malarbol Jun 15, 2025
536daaa
refactor definitions
malarbol Jun 16, 2025
dda0228
typo
malarbol Jun 17, 2025
8c00159
Merge branch 'master' into refactor-metric-spaces
malarbol Jun 17, 2025
83c2ad8
typo
malarbol Jun 18, 2025
b12efcd
fix headers
malarbol Jun 18, 2025
446e4e8
missing definition
malarbol Jun 18, 2025
ababea6
rename premetric spaces -> pseudometric spaces
malarbol Jun 21, 2025
bd5508c
add NB saturation axiom metric spaces
malarbol Jun 21, 2025
ba08195
fix link (WIP)
malarbol Jun 21, 2025
9834b6a
Merge branch 'master' into refactor-metric-spaces
malarbol Jun 22, 2025
bea79bc
typo
malarbol Jun 23, 2025
916e789
poset of rational neighborhood relations
malarbol Jun 23, 2025
5b5b41d
preimage rational neighborhoods
malarbol Jun 23, 2025
a505922
Merge branch 'master' into refactor-metric-spaces
malarbol Jun 25, 2025
3806625
WIP morphisms metric spaces
malarbol Jun 25, 2025
9193c4e
WIP continuous functions metric spaces
malarbol Jun 26, 2025
399b782
WIP uniformly continuous functions metric spaces
malarbol Jun 26, 2025
252ef65
isometry => short => uniformnly continuous
malarbol Jun 26, 2025
e626020
typo
malarbol Jun 26, 2025
d44c3d2
WIP Cauchy approximations
malarbol Jun 27, 2025
043129d
refactor limits of Cauchy approximations
malarbol Jun 27, 2025
7709ca2
WIP complete metric spaces
malarbol Jun 27, 2025
a2f81ad
WIP dependent products of metric spaces
malarbol Jun 27, 2025
69621ff
WIP metric space of rational numbers
malarbol Jun 28, 2025
3000f7e
WIP subspaces metric spaces
malarbol Jun 28, 2025
c7b7bfa
re-order arguments Metric-Space
malarbol Jul 8, 2025
ffe633d
equality metric spaces (WIP)
malarbol Jul 8, 2025
bfbe449
refactor-ageddon
malarbol Jul 9, 2025
fdcbf68
refactor real metric spaces
malarbol Jul 9, 2025
bf654f1
locally constant maps and discrete metric spaces
malarbol Jul 10, 2025
2050c7b
disjoint sums of metric spaces
malarbol Jul 10, 2025
d19e390
fix links
malarbol Jul 10, 2025
d9e39e2
Merge branch 'master' into refactor-metric-spaces-next
malarbol Jul 16, 2025
e5d8d06
self-review metric-spaces
malarbol Jul 16, 2025
7a149d1
cleanup
malarbol Jul 16, 2025
2830502
Swapping the arguments of a Cauchy approximation of Cauchy approximat…
malarbol Jul 16, 2025
00561b5
canonical isometry from a metric space into its metric space of cauch…
malarbol Jul 16, 2025
cb16a0c
typo
malarbol Jul 16, 2025
1467a15
more cleanup
malarbol Jul 18, 2025
a8b06dc
typo
malarbol Jul 18, 2025
72e45e0
Merge branch 'master' into refactor-metric-spaces-next
malarbol Jul 25, 2025
51ebc9e
fix header
malarbol Jul 25, 2025
f5f28f1
typo
malarbol Jul 25, 2025
87ff21c
ref binary-relations in headers
malarbol Jul 25, 2025
5d0e7af
typo
malarbol Jul 25, 2025
59d3580
rephrase ~at all points~ -> everywhere
malarbol Jul 25, 2025
3c9fb4e
abstract+lossy
malarbol Jul 25, 2025
dd8f2ef
add saturation of neighborhood relations ideas
malarbol Jul 25, 2025
16afded
a characterization complete metric spaces
malarbol Jul 25, 2025
c8b3168
Merge branch 'master' into refactor-metric-spaces-next
malarbol Jul 25, 2025
5e3715d
reference dist-Q in Idea header of metric-space-Q
malarbol Jul 25, 2025
c43683f
Cauchy approximations and limits in pseudometric spaces
malarbol Jul 27, 2025
88602a8
Merge branch 'master' into refactor-metric-spaces-next
malarbol Jul 27, 2025
c45af4a
fix link
malarbol Jul 27, 2025
fa7b585
Merge branch 'master' into refactor-metric-spaces-next
malarbol Aug 5, 2025
b5a51cd
Merge branch 'master' into refactor-metric-spaces-next
malarbol Aug 7, 2025
7f6a7cb
isometries of pseudometric spaces
malarbol Aug 7, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/literature/100-theorems.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ open import elementary-number-theory.fundamental-theorem-of-arithmetic using

```agda
open import real-numbers.metric-space-of-real-numbers using
( is-triangular-premetric-leq-ℝ)
( is-triangular-neighborhood-ℝ)
open import real-numbers.distance-real-numbers using
( triangle-inequality-dist-ℝ)
```
Expand Down
48 changes: 19 additions & 29 deletions src/metric-spaces.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,71 +48,61 @@ module metric-spaces where
open import metric-spaces.category-of-metric-spaces-and-isometries public
open import metric-spaces.category-of-metric-spaces-and-short-functions public
open import metric-spaces.cauchy-approximations-metric-spaces public
open import metric-spaces.cauchy-approximations-premetric-spaces public
open import metric-spaces.cauchy-approximations-pseudometric-spaces public
open import metric-spaces.cauchy-sequences-complete-metric-spaces public
open import metric-spaces.cauchy-sequences-metric-spaces public
open import metric-spaces.closed-premetric-structures public
open import metric-spaces.complete-metric-spaces public
open import metric-spaces.continuous-functions-metric-spaces public
open import metric-spaces.continuous-functions-premetric-spaces public
open import metric-spaces.convergent-cauchy-approximations-metric-spaces public
open import metric-spaces.convergent-sequences-metric-spaces public
open import metric-spaces.dependent-products-metric-spaces public
open import metric-spaces.discrete-premetric-structures public
open import metric-spaces.discrete-metric-spaces public
open import metric-spaces.disjoint-sums-metric-spaces public
open import metric-spaces.elements-at-bounded-distance-metric-spaces public
open import metric-spaces.equality-of-metric-spaces public
open import metric-spaces.equality-of-premetric-spaces public
open import metric-spaces.extensional-premetric-structures public
open import metric-spaces.extensional-pseudometric-spaces public
open import metric-spaces.functions-metric-spaces public
open import metric-spaces.functions-pseudometric-spaces public
open import metric-spaces.functor-category-set-functions-isometry-metric-spaces public
open import metric-spaces.functor-category-short-isometry-metric-spaces public
open import metric-spaces.induced-premetric-structures-on-preimages public
open import metric-spaces.isometric-equivalences-premetric-spaces public
open import metric-spaces.isometries-metric-spaces public
open import metric-spaces.isometries-premetric-spaces public
open import metric-spaces.limits-of-cauchy-approximations-premetric-spaces public
open import metric-spaces.isometries-pseudometric-spaces public
open import metric-spaces.limits-of-cauchy-approximations-metric-spaces public
open import metric-spaces.limits-of-cauchy-approximations-pseudometric-spaces public
open import metric-spaces.limits-of-functions-metric-spaces public
open import metric-spaces.limits-of-sequences-metric-spaces public
open import metric-spaces.limits-of-sequences-premetric-spaces public
open import metric-spaces.limits-of-sequences-pseudometric-spaces public
open import metric-spaces.lipschitz-functions-metric-spaces public
open import metric-spaces.locally-constant-functions-metric-spaces public
open import metric-spaces.metric-space-of-cauchy-approximations-complete-metric-spaces public
open import metric-spaces.metric-space-of-cauchy-approximations-metric-spaces public
open import metric-spaces.metric-space-of-cauchy-approximations-saturated-complete-metric-spaces public
open import metric-spaces.metric-space-of-convergent-cauchy-approximations-metric-spaces public
open import metric-spaces.metric-space-of-convergent-sequences-metric-spaces public
open import metric-spaces.metric-space-of-functions-metric-spaces public
open import metric-spaces.metric-space-of-isometries-metric-spaces public
open import metric-spaces.metric-space-of-lipschitz-functions-metric-spaces public
open import metric-spaces.metric-space-of-rational-numbers public
open import metric-spaces.metric-space-of-rational-numbers-with-open-neighborhoods public
open import metric-spaces.metric-space-of-short-functions-metric-spaces public
open import metric-spaces.metric-spaces public
open import metric-spaces.metric-structures public
open import metric-spaces.monotonic-premetric-structures public
open import metric-spaces.ordering-premetric-structures public
open import metric-spaces.monotonic-rational-neighborhoods public
open import metric-spaces.ordering-rational-neighborhoods public
open import metric-spaces.precategory-of-metric-spaces-and-functions public
open import metric-spaces.precategory-of-metric-spaces-and-isometries public
open import metric-spaces.precategory-of-metric-spaces-and-short-functions public
open import metric-spaces.premetric-spaces public
open import metric-spaces.premetric-structures public
open import metric-spaces.preimage-rational-neighborhoods public
open import metric-spaces.pseudometric-spaces public
open import metric-spaces.pseudometric-structures public
open import metric-spaces.rational-approximations-of-zero public
open import metric-spaces.rational-cauchy-approximations public
open import metric-spaces.rational-neighborhoods public
open import metric-spaces.rational-sequences-approximating-zero public
open import metric-spaces.reflexive-premetric-structures public
open import metric-spaces.saturated-complete-metric-spaces public
open import metric-spaces.saturated-metric-spaces public
open import metric-spaces.reflexive-rational-neighborhoods public
open import metric-spaces.saturated-rational-neighborhoods public
open import metric-spaces.sequences-metric-spaces public
open import metric-spaces.sequences-premetric-spaces public
open import metric-spaces.sequences-pseudometric-spaces public
open import metric-spaces.short-functions-metric-spaces public
open import metric-spaces.short-functions-premetric-spaces public
open import metric-spaces.similarity-of-elements-pseudometric-spaces public
open import metric-spaces.subspaces-metric-spaces public
open import metric-spaces.symmetric-premetric-structures public
open import metric-spaces.triangular-premetric-structures public
open import metric-spaces.symmetric-rational-neighborhoods public
open import metric-spaces.triangular-rational-neighborhoods public
open import metric-spaces.uniformly-continuous-functions-metric-spaces public
open import metric-spaces.uniformly-continuous-functions-premetric-spaces public
```

## References
Expand Down
97 changes: 81 additions & 16 deletions src/metric-spaces/cauchy-approximations-metric-spaces.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,16 @@ module metric-spaces.cauchy-approximations-metric-spaces where
```agda
open import elementary-number-theory.positive-rational-numbers

open import foundation.binary-relations
open import foundation.constant-maps
open import foundation.dependent-pair-types
open import foundation.function-extensionality
open import foundation.function-types
open import foundation.homotopies
open import foundation.identity-types
open import foundation.propositions
open import foundation.subtypes
open import foundation.transport-along-identifications
open import foundation.universe-levels

open import metric-spaces.cauchy-approximations-premetric-spaces
open import metric-spaces.limits-of-cauchy-approximations-premetric-spaces
open import metric-spaces.metric-spaces
open import metric-spaces.short-functions-metric-spaces
```
Expand All @@ -31,9 +29,11 @@ open import metric-spaces.short-functions-metric-spaces

A
{{#concept "Cauchy approximation" Disambiguation="in a metric space" Agda=is-cauchy-approximation-Metric-Space}}
in a [metric space](metric-spaces.metric-spaces.md) is a
[Cauchy approximation](metric-spaces.cauchy-approximations-premetric-spaces.md)
in the carrier [premetric space](metric-spaces.premetric-spaces.md).
in a [metric space](metric-spaces.metric-spaces.md) `A` is a map `f` from
[`ℚ⁺`](elementary-number-theory.positive-rational-numbers.md) to its carrier
type such that for all `(ε δ : ℚ⁺)`, `f ε` and `f δ` are in a
(`ε + δ`)-[neighborhood](metric-spaces.rational-neighborhoods.md), i.e. the
distance between `f ε` and `f δ` is bounded by `ε + δ`.

## Definitions

Expand All @@ -46,9 +46,14 @@ module _

is-cauchy-approximation-prop-Metric-Space :
(ℚ⁺ → type-Metric-Space A) → Prop l2
is-cauchy-approximation-prop-Metric-Space =
is-cauchy-approximation-prop-Premetric-Space
( premetric-Metric-Space A)
is-cauchy-approximation-prop-Metric-Space f =
Π-Prop
( ℚ⁺)
( λ ε →
Π-Prop
( ℚ⁺)
( λ δ →
neighborhood-prop-Metric-Space A (ε +ℚ⁺ δ) (f ε) (f δ)))

is-cauchy-approximation-Metric-Space :
(ℚ⁺ → type-Metric-Space A) → UU l2
Expand Down Expand Up @@ -93,10 +98,10 @@ module _
const-cauchy-approximation-Metric-Space :
cauchy-approximation-Metric-Space A
const-cauchy-approximation-Metric-Space =
(const ℚ⁺ x) , (λ ε δ → is-reflexive-structure-Metric-Space A (ε +ℚ⁺ δ) x)
(const ℚ⁺ x) , (λ ε δ → refl-neighborhood-Metric-Space A (ε +ℚ⁺ δ) x)
```

### Short maps between metric spaces preserve Cauchy approximations
### Short maps between metric spaces are functorial on Cauchy approximations

```agda
module _
Expand All @@ -108,9 +113,69 @@ module _
map-short-function-cauchy-approximation-Metric-Space :
cauchy-approximation-Metric-Space A →
cauchy-approximation-Metric-Space B
map-short-function-cauchy-approximation-Metric-Space =
map-short-function-cauchy-approximation-Premetric-Space
( premetric-Metric-Space A)
( premetric-Metric-Space B)
map-short-function-cauchy-approximation-Metric-Space (u , H) =
( map-short-function-Metric-Space A B f ∘ u) ,
( λ ε δ →
is-short-map-short-function-Metric-Space
( A)
( B)
( f)
( ε +ℚ⁺ δ)
( u ε)
( u δ)
( H ε δ))

module _
{l1 l2 : Level}
(A : Metric-Space l1 l2)
where

eq-id-map-short-function-cauchy-approximation-Metric-Space :
map-short-function-cauchy-approximation-Metric-Space
( A)
( A)
( short-id-Metric-Space A) =
id
eq-id-map-short-function-cauchy-approximation-Metric-Space = refl

module _
{l1a l2a l1b l2b l1c l2c : Level}
(A : Metric-Space l1a l2a)
(B : Metric-Space l1b l2b)
(C : Metric-Space l1c l2c)
(g : short-function-Metric-Space B C)
(f : short-function-Metric-Space A B)
where

eq-comp-map-short-function-cauchy-approximation-Metric-Space :
( map-short-function-cauchy-approximation-Metric-Space B C g ∘
map-short-function-cauchy-approximation-Metric-Space A B f) =
( map-short-function-cauchy-approximation-Metric-Space A C
(comp-short-function-Metric-Space A B C g f))
eq-comp-map-short-function-cauchy-approximation-Metric-Space = refl
```

### Homotopic cauchy approximations are equal

```agda
module _
{ l1 l2 : Level} (A : Metric-Space l1 l2)
{ f g : cauchy-approximation-Metric-Space A}
( f~g :
map-cauchy-approximation-Metric-Space A f ~
map-cauchy-approximation-Metric-Space A g)
where

eq-htpy-cauchy-approximation-Metric-Space : f = g
eq-htpy-cauchy-approximation-Metric-Space =
eq-type-subtype
( is-cauchy-approximation-prop-Metric-Space A)
( eq-htpy f~g)
```

## References

Our definition of Cauchy approximation follows Definition 4.5.5 of
{{#cite Booij20PhD}} and Definition 11.2.10 of {{#cite UF13}}.

{{#bibliography}}
Loading