Skip to content

Commit 9998d39

Browse files
authored
Lemmas metric spaces (#1618)
This PR introduces a few lemmas on (pseudo)metric spaces. - any complete metric space is a retract of its metric space of Cauchy approximations; - constant Cauchy approximations are convergent; - any metric space is a retract of its convergent Cauchy approximations; - short maps from a pseudometric space to a metric space reflect similarity.
1 parent ed04911 commit 9998d39

8 files changed

+356
-82
lines changed

src/metric-spaces/cauchy-sequences-complete-metric-spaces.lagda.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,8 @@ module _
9090
( metric-space-Complete-Metric-Space M)
9191
( x)
9292
has-limit-cauchy-sequence-Complete-Metric-Space =
93-
limit-cauchy-sequence-Complete-Metric-Space ,
94-
is-limit-limit-cauchy-sequence-Complete-Metric-Space
93+
( limit-cauchy-sequence-Complete-Metric-Space ,
94+
is-limit-limit-cauchy-sequence-Complete-Metric-Space)
9595
```
9696

9797
### If every Cauchy sequence has a limit in a metric space, the metric space is complete
@@ -123,5 +123,5 @@ module _
123123
complete-metric-space-cauchy-sequences-have-limits-Metric-Space :
124124
Complete-Metric-Space l1 l2
125125
complete-metric-space-cauchy-sequences-have-limits-Metric-Space =
126-
M , is-complete-metric-space-cauchy-sequences-have-limits-Metric-Space
126+
( M , is-complete-metric-space-cauchy-sequences-have-limits-Metric-Space)
127127
```

src/metric-spaces/complete-metric-spaces.lagda.md

Lines changed: 57 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,12 @@ open import elementary-number-theory.positive-rational-numbers
1212
open import foundation.binary-relations
1313
open import foundation.dependent-pair-types
1414
open import foundation.equivalences
15+
open import foundation.function-types
16+
open import foundation.homotopies
1517
open import foundation.identity-types
1618
open import foundation.propositions
1719
open import foundation.retractions
20+
open import foundation.retracts-of-types
1821
open import foundation.sections
1922
open import foundation.subtypes
2023
open import foundation.universe-levels
@@ -23,6 +26,7 @@ open import metric-spaces.cauchy-approximations-metric-spaces
2326
open import metric-spaces.convergent-cauchy-approximations-metric-spaces
2427
open import metric-spaces.limits-of-cauchy-approximations-metric-spaces
2528
open import metric-spaces.metric-spaces
29+
open import metric-spaces.pseudometric-spaces
2630
```
2731

2832
</details>
@@ -80,6 +84,10 @@ module _
8084
metric-space-Complete-Metric-Space : Metric-Space l1 l2
8185
metric-space-Complete-Metric-Space = pr1 A
8286
87+
pseudometric-space-Complete-Metric-Space : Pseudometric-Space l1 l2
88+
pseudometric-space-Complete-Metric-Space =
89+
pseudometric-Metric-Space metric-space-Complete-Metric-Space
90+
8391
type-Complete-Metric-Space : UU l1
8492
type-Complete-Metric-Space =
8593
type-Metric-Space metric-space-Complete-Metric-Space
@@ -122,13 +130,13 @@ module _
122130
( metric-space-Complete-Metric-Space A))
123131
( refl)
124132
125-
is-retraction-convergent-cauchy-approximation-Metric-Space :
133+
is-retraction-convergent-cauchy-approximation-Complete-Metric-Space :
126134
is-retraction
127135
( convergent-cauchy-approximation-Complete-Metric-Space)
128136
( inclusion-subtype
129137
( is-convergent-prop-cauchy-approximation-Metric-Space
130138
( metric-space-Complete-Metric-Space A)))
131-
is-retraction-convergent-cauchy-approximation-Metric-Space u = refl
139+
is-retraction-convergent-cauchy-approximation-Complete-Metric-Space u = refl
132140
133141
is-equiv-convergent-cauchy-approximation-Complete-Metric-Space :
134142
is-equiv convergent-cauchy-approximation-Complete-Metric-Space
@@ -141,7 +149,7 @@ module _
141149
( inclusion-subtype
142150
( is-convergent-prop-cauchy-approximation-Metric-Space
143151
( metric-space-Complete-Metric-Space A))) ,
144-
( is-retraction-convergent-cauchy-approximation-Metric-Space)
152+
( is-retraction-convergent-cauchy-approximation-Complete-Metric-Space)
145153
```
146154

147155
### The limit of a Cauchy approximation in a complete metric space
@@ -172,6 +180,52 @@ module _
172180
( convergent-cauchy-approximation-Complete-Metric-Space A u)
173181
```
174182

183+
### Any complete metric space is a retract of its type of Cauchy approximations
184+
185+
```agda
186+
module _
187+
{l1 l2 : Level} (A : Complete-Metric-Space l1 l2)
188+
where
189+
190+
abstract
191+
is-retraction-limit-cauchy-approximation-Complete-Metric-Space :
192+
( limit-cauchy-approximation-Complete-Metric-Space A ∘
193+
const-cauchy-approximation-Metric-Space
194+
( metric-space-Complete-Metric-Space A)) ~
195+
( id)
196+
is-retraction-limit-cauchy-approximation-Complete-Metric-Space x =
197+
all-eq-is-limit-cauchy-approximation-Metric-Space
198+
( metric-space-Complete-Metric-Space A)
199+
( const-cauchy-approximation-Metric-Space
200+
( metric-space-Complete-Metric-Space A)
201+
( x))
202+
( limit-cauchy-approximation-Complete-Metric-Space
203+
( A)
204+
( const-cauchy-approximation-Metric-Space
205+
( metric-space-Complete-Metric-Space A)
206+
( x)))
207+
( x)
208+
( is-limit-limit-cauchy-approximation-Complete-Metric-Space
209+
( A)
210+
( const-cauchy-approximation-Metric-Space
211+
( metric-space-Complete-Metric-Space A)
212+
( x)))
213+
( is-limit-const-cauchy-approximation-Metric-Space
214+
( metric-space-Complete-Metric-Space A)
215+
( x))
216+
217+
retract-limit-cauchy-approximation-Complete-Metric-Space :
218+
retract
219+
( cauchy-approximation-Metric-Space
220+
( metric-space-Complete-Metric-Space A))
221+
( type-Complete-Metric-Space A)
222+
retract-limit-cauchy-approximation-Complete-Metric-Space =
223+
( ( const-cauchy-approximation-Metric-Space
224+
( metric-space-Complete-Metric-Space A)) ,
225+
( limit-cauchy-approximation-Complete-Metric-Space A) ,
226+
( is-retraction-limit-cauchy-approximation-Complete-Metric-Space))
227+
```
228+
175229
### Saturation of the limit
176230

177231
```agda

src/metric-spaces/convergent-cauchy-approximations-metric-spaces.lagda.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,10 @@ open import elementary-number-theory.positive-rational-numbers
1212
1313
open import foundation.dependent-pair-types
1414
open import foundation.function-types
15+
open import foundation.homotopies
1516
open import foundation.identity-types
1617
open import foundation.propositions
18+
open import foundation.retracts-of-types
1719
open import foundation.subtypes
1820
open import foundation.transport-along-identifications
1921
open import foundation.universe-levels
@@ -141,3 +143,51 @@ module _
141143
( limit-convergent-cauchy-approximation-Metric-Space)
142144
is-limit-limit-convergent-cauchy-approximation-Metric-Space = pr2 (pr2 f)
143145
```
146+
147+
## Properties
148+
149+
### Constant Cauchy approximations are convergent
150+
151+
```agda
152+
module _
153+
{l1 l2 : Level} (A : Metric-Space l1 l2)
154+
(x : type-Metric-Space A)
155+
where
156+
157+
is-convergent-const-cauchy-approximation-Metric-Space :
158+
is-convergent-cauchy-approximation-Metric-Space
159+
( A)
160+
( const-cauchy-approximation-Metric-Space A x)
161+
is-convergent-const-cauchy-approximation-Metric-Space =
162+
( x , is-limit-const-cauchy-approximation-Metric-Space A x)
163+
164+
convergent-const-cauchy-approximation-Metric-Space :
165+
convergent-cauchy-approximation-Metric-Space A
166+
convergent-const-cauchy-approximation-Metric-Space =
167+
( const-cauchy-approximation-Metric-Space A x ,
168+
is-convergent-const-cauchy-approximation-Metric-Space)
169+
```
170+
171+
### Any metric space is a retract of its type of convergent Cauchy approximations
172+
173+
```agda
174+
module _
175+
{l1 l2 : Level} (A : Metric-Space l1 l2)
176+
where
177+
178+
abstract
179+
is-retraction-convergent-cauchy-approximation-Metric-Space :
180+
( limit-convergent-cauchy-approximation-Metric-Space A ∘
181+
convergent-const-cauchy-approximation-Metric-Space A) ~
182+
( id)
183+
is-retraction-convergent-cauchy-approximation-Metric-Space x = refl
184+
185+
retract-convergent-cauchy-approximation-Metric-Space :
186+
retract
187+
( convergent-cauchy-approximation-Metric-Space A)
188+
( type-Metric-Space A)
189+
retract-convergent-cauchy-approximation-Metric-Space =
190+
( convergent-const-cauchy-approximation-Metric-Space A ,
191+
limit-convergent-cauchy-approximation-Metric-Space A ,
192+
is-retraction-convergent-cauchy-approximation-Metric-Space)
193+
```

src/metric-spaces/limits-of-cauchy-approximations-metric-spaces.lagda.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,25 @@ module _
123123
( all-sim-is-limit-cauchy-approximation-Metric-Space lim-x lim-y)
124124
```
125125

126+
### The value of a constant Cauchy approximation is its limit
127+
128+
```agda
129+
module _
130+
{l1 l2 : Level} (A : Metric-Space l1 l2)
131+
(x : type-Metric-Space A)
132+
where
133+
134+
is-limit-const-cauchy-approximation-Metric-Space :
135+
is-limit-cauchy-approximation-Metric-Space
136+
( A)
137+
( const-cauchy-approximation-Metric-Space A x)
138+
( x)
139+
is-limit-const-cauchy-approximation-Metric-Space =
140+
is-limit-const-cauchy-approximation-Pseudometric-Space
141+
( pseudometric-Metric-Space A)
142+
( x)
143+
```
144+
126145
## See also
127146

128147
- [Convergent cauchy approximations](metric-spaces.convergent-cauchy-approximations-metric-spaces.md)

src/metric-spaces/limits-of-cauchy-approximations-pseudometric-spaces.lagda.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,23 @@ module _
145145
( Nxy)
146146
```
147147

148+
### The value of a constant Cauchy approximation is its limit
149+
150+
```agda
151+
module _
152+
{l1 l2 : Level} (A : Pseudometric-Space l1 l2)
153+
(x : type-Pseudometric-Space A)
154+
where
155+
156+
is-limit-const-cauchy-approximation-Pseudometric-Space :
157+
is-limit-cauchy-approximation-Pseudometric-Space
158+
( A)
159+
( const-cauchy-approximation-Pseudometric-Space A x)
160+
( x)
161+
is-limit-const-cauchy-approximation-Pseudometric-Space ε δ =
162+
refl-neighborhood-Pseudometric-Space A _ x
163+
```
164+
148165
## References
149166

150167
Our definition of limit of Cauchy approximation follows Definition 11.2.10 of

src/metric-spaces/metric-spaces.lagda.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ open import foundation.function-types
2121
open import foundation.functoriality-dependent-pair-types
2222
open import foundation.identity-types
2323
open import foundation.propositions
24+
open import foundation.reflecting-maps-equivalence-relations
2425
open import foundation.sets
2526
open import foundation.subtypes
2627
open import foundation.transport-along-identifications
@@ -34,6 +35,7 @@ open import metric-spaces.pseudometric-spaces
3435
open import metric-spaces.rational-neighborhood-relations
3536
open import metric-spaces.reflexive-rational-neighborhood-relations
3637
open import metric-spaces.saturated-rational-neighborhood-relations
38+
open import metric-spaces.short-functions-pseudometric-spaces
3739
open import metric-spaces.similarity-of-elements-pseudometric-spaces
3840
open import metric-spaces.symmetric-rational-neighborhood-relations
3941
open import metric-spaces.triangular-rational-neighborhood-relations
@@ -340,6 +342,63 @@ module _
340342
map-inv-equiv (equiv-sim-eq-Metric-Space x y)
341343
```
342344

345+
### Short maps from a pseudometric space to a metric space reflect similarity
346+
347+
```agda
348+
module _
349+
{l1 l2 l1' l2' : Level}
350+
(A : Pseudometric-Space l1 l2)
351+
(B : Metric-Space l1' l2')
352+
(f : short-function-Pseudometric-Space A (pseudometric-Metric-Space B))
353+
where
354+
355+
abstract
356+
reflects-sim-map-short-function-metric-space-Pseudometric-Space :
357+
{x y : type-Pseudometric-Space A} →
358+
sim-Pseudometric-Space A x y →
359+
map-short-function-Pseudometric-Space
360+
( A)
361+
( pseudometric-Metric-Space B)
362+
( f)
363+
( x) =
364+
map-short-function-Pseudometric-Space
365+
( A)
366+
( pseudometric-Metric-Space B)
367+
( f)
368+
( y)
369+
reflects-sim-map-short-function-metric-space-Pseudometric-Space
370+
{x} {y} x~y =
371+
eq-sim-Metric-Space B
372+
( map-short-function-Pseudometric-Space
373+
( A)
374+
( pseudometric-Metric-Space B)
375+
( f)
376+
( x))
377+
( map-short-function-Pseudometric-Space
378+
( A)
379+
( pseudometric-Metric-Space B)
380+
( f)
381+
( y))
382+
( preserves-sim-map-short-function-Pseudometric-Space
383+
( A)
384+
( pseudometric-Metric-Space B)
385+
( f)
386+
( x)
387+
( y)
388+
( x~y))
389+
390+
reflecting-map-short-function-metric-space-Pseudometric-Space :
391+
reflecting-map-equivalence-relation
392+
( equivalence-relation-sim-Pseudometric-Space A)
393+
( type-Metric-Space B)
394+
reflecting-map-short-function-metric-space-Pseudometric-Space =
395+
( ( map-short-function-Pseudometric-Space
396+
( A)
397+
( pseudometric-Metric-Space B)
398+
( f)) ,
399+
( reflects-sim-map-short-function-metric-space-Pseudometric-Space))
400+
```
401+
343402
## See also
344403

345404
- Metric spaces that _are_ defined by a distance function are defined in

src/metric-spaces/precategory-of-metric-spaces-and-short-functions.lagda.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,13 +232,21 @@ module _
232232
{l1 l2 : Level}
233233
(A B : Metric-Space l1 l2)
234234
where
235+
235236
equiv-isometric-equiv-iso-short-function-Metric-Space' :
236237
iso-Precategory precategory-short-function-Metric-Space A B ≃
237238
isometric-equiv-Metric-Space' A B
238239
equiv-isometric-equiv-iso-short-function-Metric-Space' =
239240
( equiv-tot
240241
( equiv-is-isometric-equiv-is-iso-short-function-Metric-Space A B)) ∘e
241242
( associative-Σ)
243+
244+
map-equiv-isometric-equiv-iso-short-function-Metric-Space' :
245+
iso-Precategory precategory-short-function-Metric-Space A B →
246+
isometric-equiv-Metric-Space' A B
247+
map-equiv-isometric-equiv-iso-short-function-Metric-Space' =
248+
map-equiv
249+
( equiv-isometric-equiv-iso-short-function-Metric-Space')
242250
```
243251

244252
## See also

0 commit comments

Comments
 (0)