Skip to content
Merged
Show file tree
Hide file tree
Changes from 132 commits
Commits
Show all changes
134 commits
Select commit Hold shift + click to select a range
54da061
Reorganize signed arithmetic on rational numbers
lowasser Oct 10, 2025
124c9f6
make pre-commit
lowasser Oct 10, 2025
7603bbe
Merge branch 'master' into shake-out-signed-rational
lowasser Oct 11, 2025
80ed53f
Merge branch 'master' into shake-out-signed-rational
lowasser Oct 12, 2025
9dc460a
Update
lowasser Oct 12, 2025
fac3bc7
Merge remote-tracking branch 'origin/shake-out-signed-rational' into …
lowasser Oct 12, 2025
0f28ea3
Merge branch 'master' into shake-out-signed-rational
lowasser Oct 12, 2025
e7c6423
Progress
lowasser Oct 14, 2025
79e3441
Merge branch 'master' into shake-out-signed-rational
lowasser Oct 14, 2025
9963c47
Updates
lowasser Oct 14, 2025
617ae3a
Merge remote-tracking branch 'origin/shake-out-signed-rational' into …
lowasser Oct 14, 2025
41e9741
Merge branch 'master' into shake-out-signed-rational
lowasser Oct 14, 2025
d9d056a
Merge branch 'shake-out-signed-rational' into powers-q
lowasser Oct 14, 2025
817f878
More properties
lowasser Oct 14, 2025
984d8d4
Back out integer powers
lowasser Oct 14, 2025
a69f766
Fixes
lowasser Oct 15, 2025
a3a1866
Merge branch 'master' into shake-out-signed-rational
lowasser Oct 15, 2025
ea3fa12
Fix merge
lowasser Oct 15, 2025
5b44912
Merge branch 'shake-out-signed-rational' into powers-q
lowasser Oct 15, 2025
c7176d6
make pre-commit
lowasser Oct 15, 2025
e8b468a
Merge branch 'master' into shake-out-signed-rational
lowasser Oct 15, 2025
df308e2
Fix merge
lowasser Oct 15, 2025
607eba5
Apply suggestions from code review
lowasser Oct 17, 2025
daa9fc0
Respond to review comments
lowasser Oct 17, 2025
a172df5
Merge branch 'master' into shake-out-signed-rational
lowasser Oct 17, 2025
fbfc0e0
Merge branch 'shake-out-signed-rational' into powers-q
lowasser Oct 17, 2025
e3af1cf
Merge branch 'shake-out-signed-rational' into powers-q
lowasser Oct 17, 2025
0905e0f
Progress
lowasser Oct 17, 2025
0651841
Clarify concept disambiguation
lowasser Oct 17, 2025
d3ffdcf
Merge branch 'powers-q' into powers-all-q
lowasser Oct 17, 2025
e0a24b8
Progress
lowasser Oct 17, 2025
c5b3be8
Further clarify doc
lowasser Oct 17, 2025
139c496
Merge branch 'powers-q' into powers-all-q
lowasser Oct 17, 2025
a8c35cd
Progress
lowasser Oct 17, 2025
cf5019c
Merge branch 'master' into powers-q
lowasser Oct 17, 2025
3793aca
Merge branch 'powers-q' into powers-all-q
lowasser Oct 17, 2025
906c3fb
Progress
lowasser Oct 17, 2025
0bf288f
Merge branch 'master' into powers-all-q
lowasser Oct 17, 2025
92b42a5
Correct superscripts
lowasser Oct 17, 2025
978b504
Progress
lowasser Oct 17, 2025
930459d
Merge branch 'powers-all-q' into geo-seq-ring
lowasser Oct 17, 2025
e332e19
Sums of geometric series for rational numbers
lowasser Oct 17, 2025
0c8244b
Merge branch 'master' into geo-seq-ring
lowasser Nov 5, 2025
3c95dda
Fix build
lowasser Nov 5, 2025
02238ca
Fix link
lowasser Nov 5, 2025
178803c
Merge branch 'master' into geo-seq-real
lowasser Nov 6, 2025
764f62e
If |q|<1 , q^n approaches 0
lowasser Nov 6, 2025
e80b404
Merge branch 'master' into geo-seq-ring
lowasser Nov 6, 2025
7d6ca7d
Merge remote-tracking branch 'origin/geo-seq-ring' into geo-seq-ring
lowasser Nov 6, 2025
3b396c3
Merge branch 'geo-seq-ring' into geo-seq-rat
lowasser Nov 6, 2025
3c8f1ad
The sum of geometric series of rational numbers
lowasser Nov 6, 2025
2b7d4a2
Define real powers
lowasser Nov 6, 2025
d2bfcb7
Powers of real numbers
lowasser Nov 7, 2025
3754e35
Merge branch 'master' into power-real
lowasser Nov 7, 2025
a0e010c
Apply suggestions from code review
lowasser Nov 7, 2025
9c28f09
Merge remote-tracking branch 'origin/geo-seq-ring' into geo-seq-ring
lowasser Nov 7, 2025
dc3c1b3
Apply suggestions from code review
lowasser Nov 7, 2025
ad32a6f
Merge remote-tracking branch 'origin/geo-seq-ring' into geo-seq-ring
lowasser Nov 7, 2025
b61e819
Update
lowasser Nov 7, 2025
af95bc8
Merge branch 'master' into geo-seq-ring
lowasser Nov 7, 2025
66ebb46
Fixes
lowasser Nov 7, 2025
6c1ede5
Merge remote-tracking branch 'origin/geo-seq-ring' into geo-seq-ring
lowasser Nov 7, 2025
d91ca39
Merge branch 'geo-seq-ring' into geo-seq-rat
lowasser Nov 7, 2025
dd29175
Merge branch 'master' into geo-seq-rat
lowasser Nov 7, 2025
6969f98
Merge
lowasser Nov 7, 2025
966d80d
Progress
lowasser Nov 7, 2025
0befcc5
Merge branch 'geo-seq-rat' into power-real
lowasser Nov 7, 2025
2882532
Progress
lowasser Nov 7, 2025
380382b
Progress
lowasser Nov 7, 2025
b5a27af
Progress
lowasser Nov 7, 2025
5545c34
Progress
lowasser Nov 7, 2025
007d587
Progress
lowasser Nov 7, 2025
6241f8c
Progress
lowasser Nov 8, 2025
13ddd47
Mark more things abstract opaque
lowasser Nov 8, 2025
04ccb85
Fix indent
lowasser Nov 8, 2025
1d65b0a
Fix title
lowasser Nov 8, 2025
84dec2a
Fix
lowasser Nov 8, 2025
315b668
Apply suggestions from code review
lowasser Nov 8, 2025
ed77ccd
Apply suggestions from code review
lowasser Nov 8, 2025
a6f215d
Merge branch 'cleanup-reals' into power-small-real
lowasser Nov 8, 2025
cbda75f
Geometric series in the reals
lowasser Nov 8, 2025
866db9d
Merge branch 'master' into power-real
lowasser Nov 8, 2025
eac6aa2
Fix link
lowasser Nov 8, 2025
6fd2d52
Correct spelling
lowasser Nov 8, 2025
7d10f9c
Update src/real-numbers/powers-real-numbers.lagda.md
fredrik-bakke Nov 8, 2025
43ad559
Fix
lowasser Nov 8, 2025
1f00414
Merge remote-tracking branch 'origin/power-real' into power-small-real
lowasser Nov 8, 2025
343a4ac
Merge branch 'master' into power-small-real
lowasser Nov 8, 2025
76b2d96
Fix
lowasser Nov 8, 2025
37b06ff
Merge branch 'master' into geo-seq-rat
fredrik-bakke Nov 8, 2025
2be3628
Merge branch 'geo-seq-rat' into power-small-real
lowasser Nov 8, 2025
e609a5c
Merge branch 'master' into cleanup-reals
lowasser Nov 8, 2025
e9a1277
Merge branch 'cleanup-reals' into power-small-real
lowasser Nov 8, 2025
41992ba
Pull changes
lowasser Nov 8, 2025
80ae32b
Progress
lowasser Nov 8, 2025
b0404c0
Progress
lowasser Nov 8, 2025
8a4a028
Merge branch 'cleanup-reals' into apartness-metric
lowasser Nov 8, 2025
4a86b5d
Merge branch 'power-small-real' into apartness-metric
lowasser Nov 8, 2025
53d3a16
Progress
lowasser Nov 8, 2025
139c5ac
Update src/real-numbers/dedekind-real-numbers.lagda.md
lowasser Nov 8, 2025
d9aeb7f
Apply suggestions from code review
lowasser Nov 8, 2025
defa213
Update src/real-numbers/strict-inequalities-addition-real-numbers.lag…
lowasser Nov 8, 2025
fa31c52
Update src/real-numbers/strict-inequalities-addition-real-numbers.lag…
lowasser Nov 8, 2025
45757e8
Update src/real-numbers/saturation-inequality-nonnegative-real-number…
lowasser Nov 8, 2025
70cef9b
Rename files
lowasser Nov 8, 2025
542ccde
Merge branch 'cleanup-reals' into power-small-real
lowasser Nov 8, 2025
293343c
Merge branch 'power-small-real' into apartness-metric
lowasser Nov 8, 2025
a85cdcb
Fix
lowasser Nov 8, 2025
1d5f0a2
Fix
lowasser Nov 8, 2025
399e3c3
Fix build
lowasser Nov 8, 2025
8569df8
chore: optimize imports `real-numbers`
fredrik-bakke Nov 9, 2025
f11b6e2
fix
fredrik-bakke Nov 9, 2025
2c0bdbc
chore: optimize imports rational numbers
fredrik-bakke Nov 9, 2025
6f84e68
Merge branch 'master' into cleanup-reals
fredrik-bakke Nov 9, 2025
19429e5
Merge remote-tracking branch 'origin/cleanup-reals' into power-small-…
lowasser Nov 9, 2025
908914f
Fixes
lowasser Nov 9, 2025
39c6414
Merge branch 'master' into power-small-real
lowasser Nov 9, 2025
7542dd2
Fix build
lowasser Nov 9, 2025
d22a00b
Merge branch 'power-small-real' into apartness-metric
lowasser Nov 9, 2025
1b16862
Merge branch 'master' into power-small-real
lowasser Nov 10, 2025
0bb5730
Update src/commutative-algebra/geometric-sequences-commutative-rings.…
lowasser Nov 10, 2025
62bf2b6
Respond to review comment
lowasser Nov 10, 2025
8367ef1
Merge remote-tracking branch 'origin/power-small-real' into power-sma…
lowasser Nov 10, 2025
855c5bb
Fix arithmetic op names
lowasser Nov 10, 2025
51dbac7
Merge branch 'power-small-real' into apartness-metric
lowasser Nov 10, 2025
9309668
Apply suggestions from code review
lowasser Nov 10, 2025
d1447a8
Respond to comments
lowasser Nov 10, 2025
fb3dec5
plural `preserves-limits`
fredrik-bakke Nov 10, 2025
b314743
Merge branch 'power-small-real' into apartness-metric
lowasser Nov 11, 2025
ace1e87
Merge branch 'master' into apartness-metric
lowasser Nov 11, 2025
6b6689a
Correct merge
lowasser Nov 11, 2025
cac562e
Fix merge
lowasser Nov 11, 2025
8ac326c
Apply suggestions from code review
lowasser Nov 11, 2025
6875f83
Merge branch 'master' into apartness-metric
fredrik-bakke Nov 11, 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
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,16 @@ module _
eq-add-split-ℚ⁺

abstract
le-left-summand-split-ℚ⁺ : le-ℚ⁺ left-summand-split-ℚ⁺ x
le-left-summand-split-ℚ⁺ = le-mediant-zero-ℚ⁺ x

le-right-summand-split-ℚ⁺ : le-ℚ⁺ right-summand-split-ℚ⁺ x
le-right-summand-split-ℚ⁺ =
tr
( le-ℚ⁺ right-summand-split-ℚ⁺)
( eq-add-split-ℚ⁺)
( le-right-add-ℚ⁺ left-summand-split-ℚ⁺ right-summand-split-ℚ⁺)

le-add-split-ℚ⁺ :
(p q r s : ℚ) →
le-ℚ p (q +ℚ rational-ℚ⁺ left-summand-split-ℚ⁺) →
Expand Down
1 change: 1 addition & 0 deletions src/metric-spaces.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ metric space, `N d₂ x y` [or](foundation.disjunction.md)
```agda
module metric-spaces where

open import metric-spaces.apartness-located-metric-spaces public
open import metric-spaces.approximations-located-metric-spaces public
open import metric-spaces.approximations-metric-spaces public
open import metric-spaces.bounded-distance-decompositions-of-metric-spaces public
Expand Down
170 changes: 170 additions & 0 deletions src/metric-spaces/apartness-located-metric-spaces.lagda.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
# Apartness in located metric spaces

```agda
module metric-spaces.apartness-located-metric-spaces where
```

<details><summary>Imports</summary>

```agda
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 foundation.apartness-relations
open import foundation.binary-relations
open import foundation.dependent-pair-types
open import foundation.disjunction
open import foundation.empty-types
open import foundation.existential-quantification
open import foundation.negation
open import foundation.propositional-truncations
open import foundation.transport-along-identifications
open import foundation.universe-levels

open import logic.functoriality-existential-quantification

open import metric-spaces.located-metric-spaces
```

</details>

## Idea

A [located metric space](metric-spaces.located-metric-spaces.md) `M` induces an
[apartness relation](foundation.apartness-relations.md) `#` such that `x # y` if
there [exists](foundation.existential-quantification.md) an `ε : ℚ⁺` such that
`x` and `y` are [not](foundation.negation.md) in an `ε`-neighborhood of each
other.

## Definition

```agda
module _
{l1 l2 : Level} (M : Located-Metric-Space l1 l2)
where

apart-prop-Located-Metric-Space :
Relation-Prop l2 (type-Located-Metric-Space M)
apart-prop-Located-Metric-Space x y =
∃ ℚ⁺ (λ ε ¬' (neighborhood-prop-Located-Metric-Space M ε x y))

apart-Located-Metric-Space : Relation l2 (type-Located-Metric-Space M)
apart-Located-Metric-Space =
type-Relation-Prop apart-prop-Located-Metric-Space
```

## Properties

### The apartness relation of a located metric space is antireflexive

```agda
module _
{l1 l2 : Level} (M : Located-Metric-Space l1 l2)
where

abstract
is-antireflexive-apart-Located-Metric-Space :
is-antireflexive (apart-prop-Located-Metric-Space M)
is-antireflexive-apart-Located-Metric-Space x =
elim-exists
( empty-Prop)
( λ ε ¬Nεxx ¬Nεxx (refl-neighborhood-Located-Metric-Space M ε x))
```

### The apartness relation of a located metric space is symmetric

```agda
module _
{l1 l2 : Level} (M : Located-Metric-Space l1 l2)
where

abstract
is-symmetric-apart-Located-Metric-Space :
is-symmetric (apart-Located-Metric-Space M)
is-symmetric-apart-Located-Metric-Space x y =
map-tot-exists
( λ ε ¬Nεxy Nεyx
¬Nεxy (symmetric-neighborhood-Located-Metric-Space M ε y x Nεyx))
```

### The apartness relation of a located metric space is cotransitive

```agda
module _
{l1 l2 : Level} (M : Located-Metric-Space l1 l2)
where

abstract
is-cotransitive-apart-Located-Metric-Space :
is-cotransitive (apart-prop-Located-Metric-Space M)
is-cotransitive-apart-Located-Metric-Space x y z x#y =
let
motive =
apart-prop-Located-Metric-Space M x z ∨
apart-prop-Located-Metric-Space M y z
open do-syntax-trunc-Prop motive
in do
(dxy , ¬Ndxy) x#y
let (δ , ε , δ+ε=dxy) = split-ℚ⁺ dxy
elim-disjunction
( motive)
( λ ¬Nδ'xz
inl-disjunction (intro-exists (mediant-zero-ℚ⁺ δ) ¬Nδ'xz))
( λ Nδxz
elim-disjunction
( motive)
( λ ¬Nε'yz
inr-disjunction (intro-exists (mediant-zero-ℚ⁺ ε) ¬Nε'yz))
( λ Nεyz
ex-falso
( ¬Ndxy
( tr
( λ d neighborhood-Located-Metric-Space M d x y)
( δ+ε=dxy)
( triangular-neighborhood-Located-Metric-Space M
( x)
( z)
( y)
( δ)
( ε)
( symmetric-neighborhood-Located-Metric-Space M
( ε)
( y)
( z)
( Nεyz))
( Nδxz)))))
( is-located-Located-Metric-Space M
( y)
( z)
( mediant-zero-ℚ⁺ ε)
( ε)
( le-mediant-zero-ℚ⁺ ε)))
( is-located-Located-Metric-Space M
( x)
( z)
( mediant-zero-ℚ⁺ δ)
( δ)
( le-mediant-zero-ℚ⁺ δ))
```

### The apartness relation on located metric spaces is an apartness relation

```agda
module _
{l1 l2 : Level} (M : Located-Metric-Space l1 l2)
where

is-apartness-relation-apart-Located-Metric-Space :
is-apartness-relation (apart-prop-Located-Metric-Space M)
is-apartness-relation-apart-Located-Metric-Space =
( is-antireflexive-apart-Located-Metric-Space M ,
is-symmetric-apart-Located-Metric-Space M ,
is-cotransitive-apart-Located-Metric-Space M)

apartness-relation-Located-Metric-Space :
Apartness-Relation l2 (type-Located-Metric-Space M)
apartness-relation-Located-Metric-Space =
( apart-prop-Located-Metric-Space M ,
is-apartness-relation-apart-Located-Metric-Space)
```
36 changes: 34 additions & 2 deletions src/metric-spaces/located-metric-spaces.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,14 @@ module metric-spaces.located-metric-spaces where
<details><summary>Imports</summary>

```agda
open import elementary-number-theory.addition-positive-rational-numbers
open import elementary-number-theory.inequality-rational-numbers
open import elementary-number-theory.positive-rational-numbers
open import elementary-number-theory.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-relations
open import foundation.coproduct-types
open import foundation.dependent-pair-types
open import foundation.disjunction
Expand Down Expand Up @@ -101,9 +103,39 @@ module _
type-Located-Metric-Space =
type-Metric-Space metric-space-Located-Metric-Space

is-located-metric-space-Located-Metric-Space :
neighborhood-prop-Located-Metric-Space :
ℚ⁺ → Relation-Prop l2 type-Located-Metric-Space
neighborhood-prop-Located-Metric-Space =
neighborhood-prop-Metric-Space metric-space-Located-Metric-Space

neighborhood-Located-Metric-Space : ℚ⁺ → Relation l2 type-Located-Metric-Space
neighborhood-Located-Metric-Space =
neighborhood-Metric-Space metric-space-Located-Metric-Space

refl-neighborhood-Located-Metric-Space :
(d : ℚ⁺) (x : type-Located-Metric-Space) →
neighborhood-Located-Metric-Space d x x
refl-neighborhood-Located-Metric-Space =
refl-neighborhood-Metric-Space metric-space-Located-Metric-Space

symmetric-neighborhood-Located-Metric-Space :
(d : ℚ⁺) (x y : type-Located-Metric-Space) →
neighborhood-Located-Metric-Space d x y →
neighborhood-Located-Metric-Space d y x
symmetric-neighborhood-Located-Metric-Space =
symmetric-neighborhood-Metric-Space metric-space-Located-Metric-Space

triangular-neighborhood-Located-Metric-Space :
(x y z : type-Located-Metric-Space) (d₁ d₂ : ℚ⁺) →
neighborhood-Located-Metric-Space d₂ y z →
neighborhood-Located-Metric-Space d₁ x y →
neighborhood-Located-Metric-Space (d₁ +ℚ⁺ d₂) x z
triangular-neighborhood-Located-Metric-Space =
triangular-neighborhood-Metric-Space metric-space-Located-Metric-Space

is-located-Located-Metric-Space :
is-located-Metric-Space metric-space-Located-Metric-Space
is-located-metric-space-Located-Metric-Space = pr2 X
is-located-Located-Metric-Space = pr2 X

set-Located-Metric-Space : Set l1
set-Located-Metric-Space = set-Metric-Space metric-space-Located-Metric-Space
Expand Down
35 changes: 35 additions & 0 deletions src/metric-spaces/metrics-of-metric-spaces.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ open import elementary-number-theory.positive-rational-numbers

open import foundation.dependent-pair-types
open import foundation.equivalences
open import foundation.functoriality-disjunction
open import foundation.identity-types
open import foundation.logical-equivalences
open import foundation.propositional-truncations
Expand All @@ -20,12 +21,15 @@ open import foundation.transport-along-identifications
open import foundation.universe-levels

open import metric-spaces.equality-of-metric-spaces
open import metric-spaces.located-metric-spaces
open import metric-spaces.metric-spaces
open import metric-spaces.metrics

open import real-numbers.addition-nonnegative-real-numbers
open import real-numbers.dedekind-real-numbers
open import real-numbers.inequality-nonnegative-real-numbers
open import real-numbers.nonnegative-real-numbers
open import real-numbers.rational-real-numbers
open import real-numbers.saturation-inequality-nonnegative-real-numbers
open import real-numbers.similarity-nonnegative-real-numbers
open import real-numbers.strict-inequalities-addition-and-subtraction-real-numbers
Expand Down Expand Up @@ -211,6 +215,37 @@ module _
isometric-equiv-metric-is-metric-of-Metric-Space = (id-equiv , is-metric-M-ρ)
```

### If `ρ` is a metric for a metric space `M`, then `M` is located

```agda
module _
{l1 l2 : Level} (M : Metric-Space l1 l2)
(ρ : distance-function l2 (set-Metric-Space M))
(is-metric-M-ρ : is-metric-of-Metric-Space M ρ)
where

abstract
is-located-is-metric-of-Metric-Space : is-located-Metric-Space M
is-located-is-metric-of-Metric-Space x y δ ε δ<ε =
map-disjunction
( λ δ<ρxy Nδxy →
not-le-leq-ℝ
( real-ℝ⁰⁺ (ρ x y))
( real-ℚ⁺ δ)
( forward-implication (is-metric-M-ρ δ x y) Nδxy)
( le-real-is-in-lower-cut-ℚ
( real-ℝ⁰⁺ (ρ x y))
( δ<ρxy)))
( λ ρxy<ε →
backward-implication
( is-metric-M-ρ ε x y)
( leq-le-ℝ
( le-real-is-in-upper-cut-ℚ
( real-ℝ⁰⁺ (ρ x y))
( ρxy<ε))))
( is-located-lower-upper-cut-ℝ (real-ℝ⁰⁺ (ρ x y)) δ<ε)
```

### If `ρ` is a metric for a metric space `M` at the appropriate universe level, then `M` is equal to the metric space induced by `ρ`

```agda
Expand Down
1 change: 1 addition & 0 deletions src/real-numbers.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ open import real-numbers.large-multiplicative-monoid-of-real-numbers public
open import real-numbers.large-ring-of-real-numbers public
open import real-numbers.limits-sequences-real-numbers public
open import real-numbers.lipschitz-continuity-multiplication-real-numbers public
open import real-numbers.located-metric-space-of-real-numbers public
open import real-numbers.lower-dedekind-real-numbers public
open import real-numbers.maximum-finite-families-real-numbers public
open import real-numbers.maximum-inhabited-finitely-enumerable-subsets-real-numbers public
Expand Down
30 changes: 30 additions & 0 deletions src/real-numbers/absolute-value-real-numbers.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,15 @@ open import metric-spaces.short-functions-metric-spaces
open import real-numbers.addition-real-numbers
open import real-numbers.binary-maximum-real-numbers
open import real-numbers.dedekind-real-numbers
open import real-numbers.difference-real-numbers
open import real-numbers.inequalities-addition-and-subtraction-real-numbers
open import real-numbers.inequality-real-numbers
open import real-numbers.isometry-negation-real-numbers
open import real-numbers.metric-space-of-real-numbers
open import real-numbers.multiplication-nonnegative-real-numbers
open import real-numbers.multiplication-real-numbers
open import real-numbers.negation-real-numbers
open import real-numbers.negative-real-numbers
open import real-numbers.nonnegative-real-numbers
open import real-numbers.positive-and-negative-real-numbers
open import real-numbers.positive-real-numbers
Expand All @@ -42,6 +44,7 @@ open import real-numbers.saturation-inequality-real-numbers
open import real-numbers.similarity-real-numbers
open import real-numbers.square-roots-nonnegative-real-numbers
open import real-numbers.squares-real-numbers
open import real-numbers.strict-inequality-real-numbers
```

</details>
Expand Down Expand Up @@ -132,11 +135,24 @@ abstract opaque
( x)
( 0≤x)
( tr (leq-ℝ (neg-ℝ x)) neg-zero-ℝ (neg-leq-ℝ 0≤x))))
```

### The absolute value of a positive real number is itself

```agda
abstract
abs-real-ℝ⁺ : {l : Level} (x : ℝ⁺ l) → abs-ℝ (real-ℝ⁺ x) = real-ℝ⁺ x
abs-real-ℝ⁺ x = abs-real-ℝ⁰⁺ (nonnegative-ℝ⁺ x)
```

### The absolute value of a negative real number is its negation

```agda
abstract
abs-real-ℝ⁻ : {l : Level} (x : ℝ⁻ l) → abs-ℝ (real-ℝ⁻ x) = neg-ℝ (real-ℝ⁻ x)
abs-real-ℝ⁻ x⁻@(x , _) = inv (abs-neg-ℝ x) ∙ abs-real-ℝ⁺ (neg-ℝ⁻ x⁻)
```

### `x` is between `-|x|` and `|x|`

```agda
Expand Down Expand Up @@ -402,3 +418,17 @@ abstract
= abs-ℝ x *ℝ abs-ℝ y
by inv (ap-mul-ℝ (eq-abs-sqrt-square-ℝ x) (eq-abs-sqrt-square-ℝ y))
```

### For any `ε : ℚ⁺`, `(abs-ℝ x - ε < x) ∨ (abs-ℝ x - ε < -x)`

```agda
abstract opaque
unfolding abs-ℝ

approximate-below-abs-ℝ :
{l : Level} (x : ℝ l) (ε : ℚ⁺) →
disjunction-type
( le-ℝ (abs-ℝ x -ℝ real-ℚ⁺ ε) x)
( le-ℝ (abs-ℝ x -ℝ real-ℚ⁺ ε) (neg-ℝ x))
approximate-below-abs-ℝ x = approximate-below-max-ℝ x (neg-ℝ x)
```
Loading
Loading