Skip to content

Commit 8b6b9e9

Browse files
authored
The short map from a convergent Cauchy approximation in a saturated metric space to its limit (#1402)
The map from a convergent Cauchy approximation in a saturated metric space to its limit is short. As a consequence, the metric space of Cauchy approximations in a saturated complete metric space is saturated and complete.
1 parent 30ba73e commit 8b6b9e9

17 files changed

+1095
-146
lines changed

src/elementary-number-theory/positive-rational-numbers.lagda.md

Lines changed: 57 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -329,6 +329,9 @@ semigroup-add-ℚ⁺ =
329329
add-ℚ⁺ : ℚ⁺ → ℚ⁺ → ℚ⁺
330330
add-ℚ⁺ = mul-Subsemigroup semigroup-add-ℚ subsemigroup-add-ℚ⁺
331331
332+
add-ℚ⁺' : ℚ⁺ → ℚ⁺ → ℚ⁺
333+
add-ℚ⁺' x y = add-ℚ⁺ y x
334+
332335
infixl 35 _+ℚ⁺_
333336
_+ℚ⁺_ = add-ℚ⁺
334337
```
@@ -676,15 +679,7 @@ module _
676679
where
677680
678681
le-diff-ℚ⁺ : ℚ⁺
679-
pr1 le-diff-ℚ⁺ = (rational-ℚ⁺ y) -ℚ (rational-ℚ⁺ x)
680-
pr2 le-diff-ℚ⁺ =
681-
is-positive-le-zero-ℚ
682-
( (rational-ℚ⁺ y) -ℚ (rational-ℚ⁺ x))
683-
( backward-implication
684-
( iff-translate-diff-le-zero-ℚ
685-
( rational-ℚ⁺ x)
686-
( rational-ℚ⁺ y))
687-
( ( H)))
682+
le-diff-ℚ⁺ = positive-diff-le-ℚ (rational-ℚ⁺ x) (rational-ℚ⁺ y) H
688683
689684
left-diff-law-add-ℚ⁺ : le-diff-ℚ⁺ +ℚ⁺ x = y
690685
left-diff-law-add-ℚ⁺ =
@@ -705,6 +700,13 @@ module _
705700
( rational-ℚ⁺ x)
706701
( rational-ℚ⁺ le-diff-ℚ⁺))) ∙
707702
( left-diff-law-add-ℚ⁺)
703+
704+
le-le-diff-ℚ⁺ : le-ℚ⁺ le-diff-ℚ⁺ y
705+
le-le-diff-ℚ⁺ =
706+
tr
707+
( le-ℚ⁺ le-diff-ℚ⁺)
708+
( left-diff-law-add-ℚ⁺)
709+
( le-left-add-ℚ⁺ le-diff-ℚ⁺ x)
708710
```
709711

710712
### Multiplication by a positive rational number preserves strict inequality
@@ -905,37 +907,55 @@ module _
905907
### Any positive rational number `p` has a `q` with `q + q < p`
906908

907909
```agda
908-
abstract
909-
bound-double-le-ℚ⁺ :
910-
(p : ℚ⁺) →
911-
Σ ℚ⁺ (λ q → le-ℚ⁺ (q +ℚ⁺ q) p)
912-
bound-double-le-ℚ⁺ p = dependent-pair-result
913-
where
914-
q : ℚ⁺
915-
q = left-summand-split-ℚ⁺ p
916-
r : ℚ⁺
917-
r = right-summand-split-ℚ⁺ p
918-
s : ℚ⁺
919-
s = mediant-zero-min-ℚ⁺ q r
920-
-- Inlining this blows up compile times for some unclear reason.
921-
dependent-pair-result : Σ ℚ⁺ (λ x → le-ℚ⁺ (x +ℚ⁺ x) p)
922-
dependent-pair-result =
923-
s ,
910+
module _
911+
(p : ℚ⁺)
912+
where
913+
914+
modulus-le-double-le-ℚ⁺ : ℚ⁺
915+
modulus-le-double-le-ℚ⁺ =
916+
mediant-zero-min-ℚ⁺
917+
( left-summand-split-ℚ⁺ p)
918+
( right-summand-split-ℚ⁺ p)
919+
920+
abstract
921+
le-double-le-modulus-le-double-le-ℚ⁺ :
922+
le-ℚ⁺
923+
( modulus-le-double-le-ℚ⁺ +ℚ⁺ modulus-le-double-le-ℚ⁺)
924+
( p)
925+
le-double-le-modulus-le-double-le-ℚ⁺ =
924926
tr
925-
( le-ℚ⁺ (s +ℚ⁺ s))
927+
( le-ℚ⁺ (modulus-le-double-le-ℚ⁺ +ℚ⁺ modulus-le-double-le-ℚ⁺))
926928
( eq-add-split-ℚ⁺ p)
927929
( preserves-le-add-ℚ
928-
{ rational-ℚ⁺ s}
929-
{ rational-ℚ⁺ q}
930-
{ rational-ℚ⁺ s}
931-
{ rational-ℚ⁺ r}
932-
( le-left-mediant-zero-min-ℚ⁺ q r)
933-
( le-right-mediant-zero-min-ℚ⁺ q r))
934-
935-
double-le-ℚ⁺ :
936-
(p : ℚ⁺) →
937-
exists ℚ⁺ (λ q → le-prop-ℚ⁺ (q +ℚ⁺ q) p)
938-
double-le-ℚ⁺ p = unit-trunc-Prop (bound-double-le-ℚ⁺ p)
930+
{ rational-ℚ⁺ (modulus-le-double-le-ℚ⁺)}
931+
{ rational-ℚ⁺ (left-summand-split-ℚ⁺ p)}
932+
{ rational-ℚ⁺ (modulus-le-double-le-ℚ⁺)}
933+
{ rational-ℚ⁺ (right-summand-split-ℚ⁺ p)}
934+
( le-left-mediant-zero-min-ℚ⁺
935+
( left-summand-split-ℚ⁺ p)
936+
( right-summand-split-ℚ⁺ p))
937+
( le-right-mediant-zero-min-ℚ⁺
938+
( left-summand-split-ℚ⁺ p)
939+
( right-summand-split-ℚ⁺ p)))
940+
941+
le-modulus-le-double-le-ℚ⁺ : le-ℚ⁺ modulus-le-double-le-ℚ⁺ p
942+
le-modulus-le-double-le-ℚ⁺ =
943+
transitive-le-ℚ⁺
944+
( modulus-le-double-le-ℚ⁺)
945+
( left-summand-split-ℚ⁺ p)
946+
( p)
947+
( le-mediant-zero-ℚ⁺ p)
948+
( le-left-mediant-zero-min-ℚ⁺
949+
( left-summand-split-ℚ⁺ p)
950+
( right-summand-split-ℚ⁺ p))
951+
952+
bound-double-le-ℚ⁺ :
953+
Σ ℚ⁺ (λ q → le-ℚ⁺ (q +ℚ⁺ q) p)
954+
bound-double-le-ℚ⁺ =
955+
( modulus-le-double-le-ℚ⁺ , le-double-le-modulus-le-double-le-ℚ⁺)
956+
957+
double-le-ℚ⁺ : exists ℚ⁺ (λ q → le-prop-ℚ⁺ (q +ℚ⁺ q) p)
958+
double-le-ℚ⁺ = unit-trunc-Prop bound-double-le-ℚ⁺
939959
```
940960

941961
### Addition with a positive rational number is an increasing map

src/metric-spaces.lagda.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,10 @@ open import metric-spaces.isometric-equivalences-premetric-spaces public
6969
open import metric-spaces.isometries-metric-spaces public
7070
open import metric-spaces.isometries-premetric-spaces public
7171
open import metric-spaces.limits-of-cauchy-approximations-in-premetric-spaces public
72-
open import metric-spaces.metric-space-of-cauchy-approximations-in-a-metric-space public
73-
open import metric-spaces.metric-space-of-convergent-cauchy-approximations-in-a-metric-space public
72+
open import metric-spaces.metric-space-of-cauchy-approximations-complete-metric-spaces public
73+
open import metric-spaces.metric-space-of-cauchy-approximations-metric-spaces public
74+
open import metric-spaces.metric-space-of-cauchy-approximations-saturated-complete-metric-spaces public
75+
open import metric-spaces.metric-space-of-convergent-cauchy-approximations-metric-spaces public
7476
open import metric-spaces.metric-space-of-rational-numbers public
7577
open import metric-spaces.metric-space-of-rational-numbers-with-open-neighborhoods public
7678
open import metric-spaces.metric-spaces public
@@ -85,6 +87,7 @@ open import metric-spaces.premetric-structures public
8587
open import metric-spaces.pseudometric-spaces public
8688
open import metric-spaces.pseudometric-structures public
8789
open import metric-spaces.reflexive-premetric-structures public
90+
open import metric-spaces.saturated-complete-metric-spaces public
8891
open import metric-spaces.saturated-metric-spaces public
8992
open import metric-spaces.short-functions-metric-spaces public
9093
open import metric-spaces.short-functions-premetric-spaces public

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

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ open import foundation.universe-levels
2121
open import metric-spaces.cauchy-approximations-premetric-spaces
2222
open import metric-spaces.limits-of-cauchy-approximations-in-premetric-spaces
2323
open import metric-spaces.metric-spaces
24+
open import metric-spaces.short-functions-metric-spaces
2425
```
2526

2627
</details>
@@ -77,3 +78,24 @@ module _
7778
( map-cauchy-approximation-Metric-Space δ)
7879
is-cauchy-approximation-map-cauchy-approximation-Metric-Space = pr2 f
7980
```
81+
82+
## Properties
83+
84+
### Short maps between metric spaces preserve Cauchy approximations
85+
86+
```agda
87+
module _
88+
{l1 l2 l1' l2' : Level}
89+
(A : Metric-Space l1 l2) (B : Metric-Space l1' l2')
90+
(f : short-function-Metric-Space A B)
91+
where
92+
93+
map-short-function-cauchy-approximation-Metric-Space :
94+
cauchy-approximation-Metric-Space A →
95+
cauchy-approximation-Metric-Space B
96+
map-short-function-cauchy-approximation-Metric-Space =
97+
map-short-function-cauchy-approximation-Premetric-Space
98+
( premetric-Metric-Space A)
99+
( premetric-Metric-Space B)
100+
( f)
101+
```

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

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,11 @@ module metric-spaces.complete-metric-spaces where
1010
open import elementary-number-theory.positive-rational-numbers
1111
1212
open import foundation.dependent-pair-types
13+
open import foundation.equivalences
14+
open import foundation.identity-types
1315
open import foundation.propositions
16+
open import foundation.retractions
17+
open import foundation.sections
1418
open import foundation.subtypes
1519
open import foundation.universe-levels
1620
@@ -83,6 +87,84 @@ module _
8387
is-complete-metric-space-Complete-Metric-Space = pr2 A
8488
```
8589

90+
### The equivalence between Cauchy approximations and convergent Cauchy approximations in a complete metric space
91+
92+
```agda
93+
module _
94+
{l1 l2 : Level}
95+
(A : Complete-Metric-Space l1 l2)
96+
where
97+
98+
convergent-cauchy-approximation-Complete-Metric-Space :
99+
cauchy-approximation-Metric-Space
100+
( metric-space-Complete-Metric-Space A) →
101+
convergent-cauchy-approximation-Metric-Space
102+
( metric-space-Complete-Metric-Space A)
103+
convergent-cauchy-approximation-Complete-Metric-Space u =
104+
( u , is-complete-metric-space-Complete-Metric-Space A u)
105+
106+
is-section-convergent-cauchy-approximation-Complete-Metric-Space :
107+
is-section
108+
( convergent-cauchy-approximation-Complete-Metric-Space)
109+
( inclusion-subtype
110+
( is-convergent-prop-cauchy-approximation-Metric-Space
111+
( metric-space-Complete-Metric-Space A)))
112+
is-section-convergent-cauchy-approximation-Complete-Metric-Space u =
113+
eq-type-subtype
114+
( is-convergent-prop-cauchy-approximation-Metric-Space
115+
( metric-space-Complete-Metric-Space A))
116+
( refl)
117+
118+
is-retraction-convergent-cauchy-approximation-Metric-Space :
119+
is-retraction
120+
( convergent-cauchy-approximation-Complete-Metric-Space)
121+
( inclusion-subtype
122+
( is-convergent-prop-cauchy-approximation-Metric-Space
123+
( metric-space-Complete-Metric-Space A)))
124+
is-retraction-convergent-cauchy-approximation-Metric-Space u = refl
125+
126+
is-equiv-convergent-cauchy-approximation-Complete-Metric-Space :
127+
is-equiv convergent-cauchy-approximation-Complete-Metric-Space
128+
pr1 is-equiv-convergent-cauchy-approximation-Complete-Metric-Space =
129+
( inclusion-subtype
130+
( is-convergent-prop-cauchy-approximation-Metric-Space
131+
( metric-space-Complete-Metric-Space A))) ,
132+
( is-section-convergent-cauchy-approximation-Complete-Metric-Space)
133+
pr2 is-equiv-convergent-cauchy-approximation-Complete-Metric-Space =
134+
( inclusion-subtype
135+
( is-convergent-prop-cauchy-approximation-Metric-Space
136+
( metric-space-Complete-Metric-Space A))) ,
137+
( is-retraction-convergent-cauchy-approximation-Metric-Space)
138+
```
139+
140+
### The limit of a Cauchy approximation in a complete metric space
141+
142+
```agda
143+
module _
144+
{ l1 l2 : Level}
145+
( A : Complete-Metric-Space l1 l2)
146+
( u : cauchy-approximation-Metric-Space
147+
( metric-space-Complete-Metric-Space A))
148+
where
149+
150+
limit-cauchy-approximation-Complete-Metric-Space :
151+
type-Complete-Metric-Space A
152+
limit-cauchy-approximation-Complete-Metric-Space =
153+
limit-convergent-cauchy-approximation-Metric-Space
154+
( metric-space-Complete-Metric-Space A)
155+
( convergent-cauchy-approximation-Complete-Metric-Space A u)
156+
157+
is-limit-limit-cauchy-approximation-Complete-Metric-Space :
158+
is-limit-cauchy-approximation-Metric-Space
159+
( metric-space-Complete-Metric-Space A)
160+
( u)
161+
( limit-cauchy-approximation-Complete-Metric-Space)
162+
is-limit-limit-cauchy-approximation-Complete-Metric-Space =
163+
is-limit-limit-convergent-cauchy-approximation-Metric-Space
164+
( metric-space-Complete-Metric-Space A)
165+
( convergent-cauchy-approximation-Complete-Metric-Space A u)
166+
```
167+
86168
## External links
87169

88170
- [Complete metric space](https://en.wikipedia.org/wiki/Complete_metric_space)

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

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ in a [metric space](metric-spaces.metric-spaces.md) is
2828
{{#concept "convergent" Disambiguation="Cauchy approximation in a metric space" agda=is-convergent-cauchy-approximation-Metric-Space}}
2929
if it has a
3030
[limit](metric-spaces.limits-of-cauchy-approximations-in-premetric-spaces.md).
31-
Because limits of cauchy approximations in metric spaces are unique, this is a
31+
Because limits of Cauchy approximations in metric spaces are unique, this is a
3232
[subtype](foundation.subtypes.md) of the type of Cauchy approximations.
3333

3434
## Definitions
@@ -41,12 +41,17 @@ module _
4141
(f : cauchy-approximation-Metric-Space A)
4242
where
4343
44+
is-limit-cauchy-approximation-Metric-Space :
45+
type-Metric-Space A → UU l2
46+
is-limit-cauchy-approximation-Metric-Space =
47+
is-limit-cauchy-approximation-Premetric-Space
48+
( premetric-Metric-Space A)
49+
( f)
50+
4451
is-convergent-cauchy-approximation-Metric-Space : UU (l1 ⊔ l2)
4552
is-convergent-cauchy-approximation-Metric-Space =
4653
Σ ( type-Metric-Space A)
47-
( is-limit-cauchy-approximation-Premetric-Space
48-
( premetric-Metric-Space A)
49-
( f))
54+
( is-limit-cauchy-approximation-Metric-Space)
5055
5156
abstract
5257
is-prop-is-convergent-cauchy-approximation-Metric-Space :
@@ -73,7 +78,7 @@ module _
7378
is-prop-is-convergent-cauchy-approximation-Metric-Space
7479
```
7580

76-
### The type of convergent cauchy approximations in a metric space
81+
### The type of convergent Cauchy approximations in a metric space
7782

7883
```agda
7984
module _

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

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ open import metric-spaces.monotonic-premetric-structures
2020
open import metric-spaces.premetric-structures
2121
open import metric-spaces.pseudometric-structures
2222
open import metric-spaces.reflexive-premetric-structures
23+
open import metric-spaces.saturated-metric-spaces
2324
open import metric-spaces.short-functions-metric-spaces
2425
open import metric-spaces.symmetric-premetric-structures
2526
open import metric-spaces.triangular-premetric-structures
@@ -127,4 +128,24 @@ module _
127128
( P a)
128129
( λ f → f a)
129130
is-short-ev-Π-Metric-Space ε x y H = H a
131+
132+
short-ev-Π-Metric-Space :
133+
short-function-Metric-Space
134+
( Π-Metric-Space A P)
135+
( P a)
136+
short-ev-Π-Metric-Space = (λ f → f a) , (is-short-ev-Π-Metric-Space)
137+
```
138+
139+
### Dependent products of saturated metric spaces are saturated
140+
141+
```agda
142+
module _
143+
{l l1 l2 : Level} (A : UU l) (P : A → Metric-Space l1 l2)
144+
(Π-saturated : (a : A) → is-saturated-Metric-Space (P a))
145+
where
146+
147+
is-saturated-Π-is-saturated-Metric-Space :
148+
is-saturated-Metric-Space (Π-Metric-Space A P)
149+
is-saturated-Π-is-saturated-Metric-Space ε x y H a =
150+
Π-saturated a ε (x a) (y a) (λ d → H d a)
130151
```

0 commit comments

Comments
 (0)