Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
330 commits
Select commit Hold shift + click to select a range
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
76bec78
Progress
lowasser 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
423fdcc
Merge branch 'power-small-real' into derivative-v2
lowasser Nov 8, 2025
507c7fa
Progress
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
0d47a8a
Progress
lowasser Nov 8, 2025
89c04b3
Merge branch 'apartness-metric' into cluster-point-metric
lowasser Nov 8, 2025
7c13bf5
Merge branch 'proper-closed-intervals' into cluster-point-metric
lowasser Nov 8, 2025
6a0ce50
Every point in a proper closed interval is an accumulation point
lowasser Nov 9, 2025
3ed6bf1
Sequential accumulation points
lowasser Nov 9, 2025
74b1601
Prove equivalence between sequential and approximation versions
lowasser Nov 9, 2025
2bda7c6
Prove equivalence between sequential and approximation versions
lowasser Nov 9, 2025
719aff3
Fix link
lowasser Nov 9, 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
247204c
Merge branch 'apartness-metric' into cluster-point-metric
lowasser Nov 9, 2025
850d8e0
Merge branch 'cluster-point-metric' into mul-inv-complex
lowasser Nov 9, 2025
fc7be89
Multiplicative inverses of nonzero complex numbers
lowasser Nov 9, 2025
89adb08
Magnitudes multiply
lowasser Nov 10, 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
b016840
Vector spaces
lowasser Nov 11, 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
1d02a41
Progress
lowasser Nov 11, 2025
cac562e
Fix merge
lowasser Nov 11, 2025
453322e
Revert accident
lowasser Nov 11, 2025
23e4eab
Fix lefts and rights
lowasser Nov 11, 2025
16e5f5c
Progress
lowasser Nov 11, 2025
edc0b39
Merge branch 'mul-inv-complex' into vector-spaces
lowasser Nov 11, 2025
3a1716c
Merge branch 'apartness-metric' into cluster-point-metric
lowasser Nov 11, 2025
e1a2523
Merge branch 'cluster-point-metric' into vector-spaces
lowasser Nov 11, 2025
8ac326c
Apply suggestions from code review
lowasser Nov 11, 2025
68dbbeb
Merge branch 'apartness-metric' into cluster-point-metric
lowasser Nov 11, 2025
c9c052d
Merge branch 'cluster-point-metric' into mul-inv-complex
lowasser Nov 11, 2025
98a567d
Fix
lowasser Nov 11, 2025
6875f83
Merge branch 'master' into apartness-metric
fredrik-bakke Nov 11, 2025
104ce21
Merge branch 'apartness-metric' into cluster-point-metric
lowasser Nov 12, 2025
b8d27e2
Merge branch 'master' into cluster-point-metric
lowasser Nov 12, 2025
cea1591
Merge branch 'cluster-point-metric' into vector-spaces
lowasser Nov 12, 2025
4ac0fbf
Merge branch 'cluster-point-metric' into mul-inv-complex
lowasser Nov 12, 2025
53e7aeb
make pre-commit
lowasser Nov 12, 2025
e32bd41
make pre-commit
lowasser Nov 12, 2025
7300f31
Merge branch 'master' into cluster-point-metric
lowasser Nov 13, 2025
c90223c
Merge branch 'master' into cluster-point-metric
lowasser Nov 13, 2025
a1a6a8c
Update src/metric-spaces/cauchy-sequences-metric-spaces.lagda.md
lowasser Nov 13, 2025
1bcb06a
Update src/metric-spaces/accumulation-points-subsets-located-metric-s…
lowasser Nov 13, 2025
a9bacdd
Update src/real-numbers/binary-maximum-real-numbers.lagda.md
lowasser Nov 13, 2025
f5e8fba
Progress
lowasser Nov 13, 2025
eb7688e
Merge remote-tracking branch 'origin/cluster-point-metric' into clust…
lowasser Nov 13, 2025
510ac59
Merge branch 'master' into cluster-point-metric
lowasser Nov 13, 2025
08bb7e3
Fixes
lowasser Nov 13, 2025
db68b9d
Simplify
lowasser Nov 13, 2025
ec3033d
Merge branch 'cluster-point-metric' into mul-inv-complex
lowasser Nov 13, 2025
9a1d3a2
Merge branch 'cluster-point-metric' into vector-spaces
lowasser Nov 13, 2025
0ec089c
Merge branch 'mul-inv-complex' into vector-spaces
lowasser Nov 13, 2025
4a1d1c9
Fix braces
lowasser Nov 15, 2025
a15f079
Merge branch 'mul-inv-complex' into vector-spaces
lowasser Nov 15, 2025
ecfd72d
Update src/metric-spaces/accumulation-points-subsets-located-metric-s…
lowasser Nov 15, 2025
bf8f5c6
Merge remote-tracking branch 'origin/cluster-point-metric'
lowasser Nov 15, 2025
ff1dcee
Merge branch 'master' into mul-inv-complex
lowasser Nov 15, 2025
f0e48e4
Merge branch 'mul-inv-complex' into vector-spaces
lowasser Nov 15, 2025
1c59242
Fix imports
lowasser Nov 15, 2025
f09fd5f
The reals are a vector space over themselves
lowasser Nov 15, 2025
5ef21f2
Fix title in vector-spaces
lowasser Nov 15, 2025
de71c71
Add more cross links
lowasser Nov 16, 2025
ef5fb9d
Update src/complex-numbers/apartness-complex-numbers.lagda.md
lowasser Nov 16, 2025
f734c77
Update src/complex-numbers/magnitude-complex-numbers.lagda.md
lowasser Nov 16, 2025
b069ea8
Update src/complex-numbers/magnitude-complex-numbers.lagda.md
lowasser Nov 16, 2025
e090719
Update src/complex-numbers/magnitude-complex-numbers.lagda.md
lowasser Nov 16, 2025
6783b3d
Apply suggestions from code review
lowasser Nov 16, 2025
c02c593
Respond to review comments
lowasser Nov 16, 2025
7cb97fd
Merge branch 'master' into mul-inv-complex
lowasser Nov 16, 2025
b1f22ea
Merge branch 'mul-inv-complex' into vector-spaces
lowasser Nov 16, 2025
a7672ce
Use Heyting fields instead of local commutative rings to define vecto…
lowasser Nov 17, 2025
15d5d50
Add external link
lowasser Nov 17, 2025
ad8c577
Side note: apartness on R is tight
lowasser Nov 17, 2025
76a89f3
Make things abstract
lowasser Nov 17, 2025
82b9336
More docs
lowasser Nov 17, 2025
31f56e1
Fix naming
lowasser Nov 17, 2025
dc62250
Pythagorean theorem
lowasser Nov 12, 2025
fea53e5
make pre-commit
lowasser Nov 12, 2025
abee444
Refactor Pythagorean Theorem to its own file
lowasser Nov 14, 2025
ec04236
Move bibliography
lowasser Nov 14, 2025
d002cac
The reals are an inner product space over themselves under multiplica…
lowasser Nov 15, 2025
d04b863
Add more cross links
lowasser Nov 16, 2025
a48cf5a
make pre-commit
lowasser Nov 17, 2025
577af2a
make pre-commit
lowasser Nov 12, 2025
63b1f3e
Progress
lowasser Nov 12, 2025
82f0078
Progress
lowasser Nov 12, 2025
0b637c8
Progress
lowasser Nov 12, 2025
5c61143
Progress
lowasser Nov 12, 2025
0bc2dd6
The Cauchy-Schwarz Inequality
lowasser Nov 14, 2025
edb9f79
Add to 100 Theorems
lowasser Nov 14, 2025
5cc596e
Progress
lowasser Nov 14, 2025
72a9b34
Back out triangle inequality
lowasser Nov 14, 2025
8e9e998
make pre-commit
lowasser Nov 15, 2025
4bc4486
make pre-commit
lowasser Nov 15, 2025
488852e
Add more cross links
lowasser Nov 16, 2025
76be52f
Fix rebase
lowasser Nov 17, 2025
8360d20
make pre-commit
lowasser Nov 17, 2025
7af9519
Fix build
lowasser Nov 17, 2025
d59a718
Merge branch 'inner-product-spaces' into cauchy-schwarz
lowasser Nov 17, 2025
12da7ee
Correct parentheses
lowasser Nov 17, 2025
7a26343
Remove link from rebase
lowasser Nov 17, 2025
a33a18c
Merge branch 'inner-product-spaces' into cauchy-schwarz
lowasser Nov 17, 2025
124a228
Merge branch 'master' into vector-spaces
lowasser Nov 17, 2025
6720ded
Merge branch 'vector-spaces' into inner-product-spaces
lowasser Nov 17, 2025
c8b6579
Merge branch 'inner-product-spaces' into cauchy-schwarz
lowasser Nov 17, 2025
e5cc414
Merge branch 'master' into vector-spaces
lowasser Nov 17, 2025
afb9bfd
Update src/commutative-algebra/heyting-fields.lagda.md
lowasser Nov 17, 2025
98f0b57
Describe Heyting vs discrete fields
lowasser Nov 17, 2025
06a594a
Merge remote-tracking branch 'origin/vector-spaces' into vector-spaces
lowasser Nov 17, 2025
454ef06
Update src/foundation/large-apartness-relations.lagda.md
lowasser Nov 17, 2025
1a61315
Update src/commutative-algebra/local-commutative-rings.lagda.md
lowasser Nov 18, 2025
cbf5a30
Respond to review comments
lowasser Nov 18, 2025
41d90f5
Merge remote-tracking branch 'origin/vector-spaces' into vector-spaces
lowasser Nov 18, 2025
5ad66fa
make pre-commit
lowasser Nov 18, 2025
67a05af
Merge branch 'master' into vector-spaces
lowasser Nov 20, 2025
81d01f5
Update src/real-numbers/field-of-real-numbers.lagda.md
lowasser Nov 20, 2025
7c39b3b
Merge remote-tracking branch 'origin/vector-spaces' into vector-spaces
lowasser Nov 20, 2025
29100f7
Nonequality of 0 and 1 as its own lemma
lowasser Nov 20, 2025
3a31ee0
make pre-commit
lowasser Nov 21, 2025
3af6e3d
Merge branch 'master' into vector-spaces
lowasser Nov 21, 2025
4fec788
Merge branch 'vector-spaces' into inner-product-spaces
lowasser Nov 21, 2025
5aa2906
Revert added import
lowasser Nov 21, 2025
2018ded
Merge branch 'inner-product-spaces' into cauchy-schwarz
lowasser Nov 21, 2025
23aef87
Remove unused bibliography
lowasser Nov 21, 2025
a777de1
Respond to review comments
lowasser Nov 25, 2025
cff02cf
Respond to comments
lowasser Nov 25, 2025
dfcb4f2
Merge branch 'master' into inner-product-spaces
lowasser Nov 25, 2025
ee395e9
Merge branch 'inner-product-spaces' into cauchy-schwarz
lowasser Nov 25, 2025
dcc437f
Cleanup crediting and Wikipedia theorem pointer
lowasser Nov 25, 2025
73d4390
make pre-commit
lowasser Nov 26, 2025
854ae72
Update src/real-numbers/extensionality-multiplication-real-numbers.la…
lowasser Nov 26, 2025
1f481cb
Update src/linear-algebra/orthogonality-real-inner-product-spaces.lag…
lowasser Nov 26, 2025
d23060e
Update src/linear-algebra/orthogonality-bilinear-forms-real-vector-sp…
lowasser Nov 26, 2025
d167d1c
Respond to review comments
lowasser Nov 26, 2025
cfc9cb8
Fix build
lowasser Nov 26, 2025
2a0d451
Merge branch 'master' into inner-product-spaces
lowasser Nov 26, 2025
168c229
Merge branch 'master' into inner-product-spaces
lowasser Nov 26, 2025
3a00228
Merge branch 'inner-product-spaces' into cauchy-schwarz
lowasser Nov 26, 2025
98b321e
Progress
lowasser Nov 26, 2025
da9f770
Update src/literature/wikipedia-list-of-theorems.lagda.md
lowasser Nov 26, 2025
2df482f
Update src/real-numbers/addition-positive-and-negative-real-numbers.l…
lowasser Nov 26, 2025
1844a72
Update src/literature/100-theorems.lagda.md
lowasser Nov 26, 2025
c769cf7
Respond to comment
lowasser Nov 26, 2025
f758356
Merge remote-tracking branch 'origin/cauchy-schwarz' into cauchy-schwarz
lowasser Nov 26, 2025
b58edad
make pre-commit
lowasser Nov 26, 2025
3873312
Fix
lowasser Nov 26, 2025
c7f531b
Fix build
lowasser Nov 26, 2025
51fe86f
Merge branch 'master' into cauchy-schwarz
fredrik-bakke Nov 26, 2025
417ebb5
Update src/real-numbers/distance-real-numbers.lagda.md
lowasser Nov 26, 2025
aed38f4
Update src/real-numbers/multiplication-positive-and-negative-real-num…
lowasser Nov 26, 2025
a71e3fe
Update src/linear-algebra/cauchy-schwarz-inequality-real-inner-produc…
lowasser Nov 26, 2025
aa967e3
Merge branch 'master' into cauchy-schwarz
lowasser Nov 27, 2025
665e742
Progress
lowasser Nov 27, 2025
5dce16e
Progress
lowasser Nov 27, 2025
a21d993
Simplifications and make pre-commit
lowasser Nov 27, 2025
4378106
Merge remote-tracking branch 'origin/cauchy-schwarz' into cauchy-schwarz
lowasser Nov 27, 2025
f727cfc
Progress
lowasser Nov 27, 2025
92d128a
Merge branch 'master' into cauchy-schwarz
lowasser Nov 29, 2025
95a3208
Progress
lowasser Nov 29, 2025
baffcd8
Progress
lowasser Nov 29, 2025
9c518f4
Merge branch 'master' into powers-monotonic
lowasser Nov 29, 2025
adda0ca
Progress
lowasser Nov 30, 2025
f092587
Merge branch 'cauchy-schwarz' into powers-monotonic
lowasser Nov 30, 2025
9f63cc0
Progress
lowasser Nov 30, 2025
11b65a9
Add credit
lowasser Nov 30, 2025
282bef3
SIPCUB functions are automorphisms on R
lowasser Dec 1, 2025
1da7801
Progress
lowasser Dec 2, 2025
31a2eb3
Arbitrary nonzero roots of nonnegative real numbers
lowasser Dec 2, 2025
5b17286
Integer powers of positive reals
lowasser Dec 2, 2025
620cdd8
Fix link
lowasser Dec 2, 2025
0cb0431
Merge branch 'nonzero-roots-reals' into int-frac-power-positive-real
lowasser Dec 2, 2025
bc9f526
Progress
lowasser Dec 2, 2025
d13aedf
Fixes
lowasser Dec 2, 2025
eedf148
Merge branch 'nonzero-roots-reals' into int-frac-power-positive-real
lowasser Dec 2, 2025
6108b5d
Progress
lowasser Dec 2, 2025
0812f14
Progress
lowasser Dec 2, 2025
f88572f
Fix name
lowasser Dec 2, 2025
76835b3
Merge branch 'nonzero-roots-reals' into int-frac-power-positive-real
lowasser Dec 2, 2025
f3724fc
Progress
lowasser Dec 2, 2025
bd7cc82
Fix typo
lowasser Dec 2, 2025
462e440
Merge branch 'nonzero-roots-reals' into int-frac-power-positive-real
lowasser Dec 2, 2025
fe32a78
1/n powers
lowasser Dec 3, 2025
fbf1c18
Progress
lowasser Dec 3, 2025
6968254
Renaming
lowasser Dec 3, 2025
beb0291
Merge branch 'powers-monotonic' into odd-roots-reals
lowasser Dec 3, 2025
c56ac44
More properties of inverses of SIPCUB functions
lowasser Dec 3, 2025
b8534bc
Pointwise continuity of inverses
lowasser Dec 3, 2025
f8593ab
Merge branch 'odd-roots-reals' into nonzero-roots-reals
lowasser Dec 3, 2025
b478e40
Typos
lowasser Dec 3, 2025
5da37a6
x^-a = inv(x^a)
lowasser Dec 3, 2025
a72e0bc
Correct title
lowasser Dec 3, 2025
ca734bc
Finish proving Tarski's axioms about rational powers
lowasser Dec 3, 2025
69ce1de
More properties
lowasser Dec 3, 2025
9aaa2ce
Fix typo
lowasser Dec 3, 2025
49441c4
make pre-commit
lowasser Dec 3, 2025
f3963aa
Merge branch 'master' into int-frac-power-positive-real
lowasser Dec 3, 2025
d273107
Merge branch 'master' into powers-monotonic
lowasser Dec 3, 2025
91613c0
Merge branch 'powers-monotonic' into odd-roots-reals
lowasser Dec 3, 2025
9124543
Merge branch 'odd-roots-reals' into nonzero-roots-reals
lowasser Dec 3, 2025
4703c73
Merge branch 'nonzero-roots-reals' into int-frac-power-positive-real
lowasser Dec 3, 2025
c711519
make pre-commit
lowasser Dec 3, 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
5 changes: 5 additions & 0 deletions .vscode/agda.code-snippets
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,10 @@
"body": ["retract-reasoning ? retract-of ? by ?"],
"description": "Retract reasoning",
"prefix": ["retract-reasoning"]
},
"Inequality reasoning": {
"body": ["chain-of-inequalities ? ≤ ? by ?"],
"description": "Inequality reasoning",
"prefix": ["chain-of-inequalities"]
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ open import commutative-algebra.large-commutative-rings
open import elementary-number-theory.addition-natural-numbers
open import elementary-number-theory.multiplication-natural-numbers
open import elementary-number-theory.natural-numbers
open import elementary-number-theory.nonzero-natural-numbers

open import foundation.identity-types
open import foundation.universe-levels
Expand Down Expand Up @@ -97,6 +98,25 @@ module _
power-one-Large-Ring (large-ring-Large-Commutative-Ring R)
```

### `0ⁿ = 0` for nonzero `n`

```agda
module _
{α : Level → Level} {β : Level → Level → Level}
(R : Large-Commutative-Ring α β)
where

nonzero-power-zero-Large-Commutative-Ring :
(n : ℕ⁺) →
( power-Large-Commutative-Ring
( R)
( nat-nonzero-ℕ n)
( zero-Large-Commutative-Ring R) =
zero-Large-Commutative-Ring R)
nonzero-power-zero-Large-Commutative-Ring =
nonzero-power-zero-Large-Ring (large-ring-Large-Commutative-Ring R)
```

### `xⁿ⁺¹ = xⁿx`

```agda
Expand Down Expand Up @@ -188,3 +208,20 @@ module _
distributive-power-mul-Large-Commutative-Monoid
( multiplicative-large-commutative-monoid-Large-Commutative-Ring R)
```

### Iterated powers commute

```agda
module _
{α : Level → Level} {β : Level → Level → Level}
(R : Large-Commutative-Ring α β)
where

abstract
commute-power-Large-Commutative-Ring :
{l : Level} (m n : ℕ) (x : type-Large-Commutative-Ring R l) →
power-Large-Commutative-Ring R m (power-Large-Commutative-Ring R n x) =
power-Large-Commutative-Ring R n (power-Large-Commutative-Ring R m x)
commute-power-Large-Commutative-Ring =
commute-power-Large-Ring (large-ring-Large-Commutative-Ring R)
```
1 change: 1 addition & 0 deletions src/elementary-number-theory.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ open import elementary-number-theory.decidable-total-order-natural-numbers publi
open import elementary-number-theory.decidable-total-order-rational-numbers public
open import elementary-number-theory.decidable-total-order-standard-finite-types public
open import elementary-number-theory.decidable-types public
open import elementary-number-theory.diagonal-integer-fractions public
open import elementary-number-theory.difference-integers public
open import elementary-number-theory.difference-rational-numbers public
open import elementary-number-theory.dirichlet-convolution public
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ module elementary-number-theory.addition-positive-rational-numbers where
open import elementary-number-theory.addition-rational-numbers
open import elementary-number-theory.additive-group-of-rational-numbers
open import elementary-number-theory.difference-rational-numbers
open import elementary-number-theory.inequality-positive-rational-numbers
open import elementary-number-theory.inequality-rational-numbers
open import elementary-number-theory.minimum-positive-rational-numbers
open import elementary-number-theory.positive-integer-fractions
Expand Down Expand Up @@ -131,34 +132,51 @@ interchange-law-add-add-ℚ⁺ x y u v =
( rational-ℚ⁺ v))
```

### Addition with a positive rational number is a strictly increasing map

```agda
abstract
le-left-add-rational-ℚ⁺ : (x : ℚ) (d : ℚ⁺) → le-ℚ x ((rational-ℚ⁺ d) +ℚ x)
le-left-add-rational-ℚ⁺ x d =
concatenate-leq-le-ℚ
( x)
( zero-ℚ +ℚ x)
( (rational-ℚ⁺ d) +ℚ x)
( inv-tr (leq-ℚ x) (left-unit-law-add-ℚ x) (refl-leq-ℚ x))
( preserves-le-left-add-ℚ
( x)
( zero-ℚ)
( rational-ℚ⁺ d)
( le-zero-is-positive-ℚ (is-positive-rational-ℚ⁺ d)))

le-right-add-rational-ℚ⁺ : (x : ℚ) (d : ℚ⁺) → le-ℚ x (x +ℚ (rational-ℚ⁺ d))
le-right-add-rational-ℚ⁺ x d =
inv-tr
( le-ℚ x)
( commutative-add-ℚ x (rational-ℚ⁺ d))
( le-left-add-rational-ℚ⁺ x d)

leq-left-add-rational-ℚ⁺ : (x : ℚ) (d : ℚ⁺) → leq-ℚ x (rational-ℚ⁺ d +ℚ x)
leq-left-add-rational-ℚ⁺ x d = leq-le-ℚ (le-left-add-rational-ℚ⁺ x d)

leq-right-add-rational-ℚ⁺ : (x : ℚ) (d : ℚ⁺) → leq-ℚ x (x +ℚ rational-ℚ⁺ d)
leq-right-add-rational-ℚ⁺ x d = leq-le-ℚ (le-right-add-rational-ℚ⁺ x d)
```

### The sum of two positive rational numbers is greater than each of them

```agda
module _
(x y : ℚ⁺)
where

le-left-add-ℚ⁺ : le-ℚ⁺ x (x +ℚ⁺ y)
le-left-add-ℚ⁺ =
tr
( λ z → le-ℚ z ((rational-ℚ⁺ x) +ℚ (rational-ℚ⁺ y)))
( right-unit-law-add-ℚ (rational-ℚ⁺ x))
( preserves-le-right-add-ℚ
( rational-ℚ⁺ x)
( zero-ℚ)
( rational-ℚ⁺ y)
( le-zero-is-positive-ℚ (is-positive-rational-ℚ⁺ y)))

le-right-add-ℚ⁺ : le-ℚ⁺ y (x +ℚ⁺ y)
le-right-add-ℚ⁺ : le-ℚ⁺ x (x +ℚ⁺ y)
le-right-add-ℚ⁺ =
tr
( λ z → le-ℚ z ((rational-ℚ⁺ x) +ℚ (rational-ℚ⁺ y)))
( left-unit-law-add-ℚ (rational-ℚ⁺ y))
( preserves-le-left-add-ℚ
( rational-ℚ⁺ y)
( zero-ℚ)
( rational-ℚ⁺ x)
( le-zero-is-positive-ℚ (is-positive-rational-ℚ⁺ x)))
le-right-add-rational-ℚ⁺ (rational-ℚ⁺ x) y

le-left-add-ℚ⁺ : le-ℚ⁺ y (x +ℚ⁺ y)
le-left-add-ℚ⁺ =
le-left-add-rational-ℚ⁺ (rational-ℚ⁺ y) x
```

### The positive difference of strictly inequal positive rational numbers
Expand Down Expand Up @@ -196,7 +214,7 @@ module _
tr
( le-ℚ⁺ le-diff-ℚ⁺)
( left-diff-law-add-ℚ⁺)
( le-left-add-ℚ⁺ le-diff-ℚ⁺ x)
( le-right-add-ℚ⁺ le-diff-ℚ⁺ x)
```

### Any positive rational number can be expressed as the sum of two positive rational numbers
Expand Down Expand Up @@ -229,12 +247,18 @@ module _
le-left-summand-split-ℚ⁺ : le-ℚ⁺ left-summand-split-ℚ⁺ x
le-left-summand-split-ℚ⁺ = le-mediant-zero-ℚ⁺ x

leq-left-summand-split-ℚ⁺ : leq-ℚ⁺ left-summand-split-ℚ⁺ x
leq-left-summand-split-ℚ⁺ = leq-le-ℚ le-left-summand-split-ℚ⁺

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-left-add-ℚ⁺ left-summand-split-ℚ⁺ right-summand-split-ℚ⁺)

leq-right-summand-split-ℚ⁺ : leq-ℚ⁺ right-summand-split-ℚ⁺ x
leq-right-summand-split-ℚ⁺ = leq-le-ℚ le-right-summand-split-ℚ⁺

le-add-split-ℚ⁺ :
(p q r s : ℚ) →
Expand All @@ -259,37 +283,6 @@ module _
( r<s+right))
```

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

```agda
abstract
le-left-add-rational-ℚ⁺ : (x : ℚ) (d : ℚ⁺) → le-ℚ x ((rational-ℚ⁺ d) +ℚ x)
le-left-add-rational-ℚ⁺ x d =
concatenate-leq-le-ℚ
( x)
( zero-ℚ +ℚ x)
( (rational-ℚ⁺ d) +ℚ x)
( inv-tr (leq-ℚ x) (left-unit-law-add-ℚ x) (refl-leq-ℚ x))
( preserves-le-left-add-ℚ
( x)
( zero-ℚ)
( rational-ℚ⁺ d)
( le-zero-is-positive-ℚ (is-positive-rational-ℚ⁺ d)))

le-right-add-rational-ℚ⁺ : (x : ℚ) (d : ℚ⁺) → le-ℚ x (x +ℚ (rational-ℚ⁺ d))
le-right-add-rational-ℚ⁺ x d =
inv-tr
( le-ℚ x)
( commutative-add-ℚ x (rational-ℚ⁺ d))
( le-left-add-rational-ℚ⁺ x d)

leq-left-add-rational-ℚ⁺ : (x : ℚ) (d : ℚ⁺) → leq-ℚ x (rational-ℚ⁺ d +ℚ x)
leq-left-add-rational-ℚ⁺ x d = leq-le-ℚ (le-left-add-rational-ℚ⁺ x d)

leq-right-add-rational-ℚ⁺ : (x : ℚ) (d : ℚ⁺) → leq-ℚ x (x +ℚ rational-ℚ⁺ d)
leq-right-add-rational-ℚ⁺ x d = leq-le-ℚ (le-right-add-rational-ℚ⁺ x d)
```

### Subtraction by a positive rational number is a strictly deflationary map

```agda
Expand Down
105 changes: 105 additions & 0 deletions src/elementary-number-theory/diagonal-integer-fractions.lagda.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
# Diagonal integer fractions

```agda
{-# OPTIONS --lossy-unification #-}

module elementary-number-theory.diagonal-integer-fractions where
```

<details><summary>Imports</summary>

```agda
open import elementary-number-theory.integer-fractions
open import elementary-number-theory.integers
open import elementary-number-theory.multiplication-integer-fractions
open import elementary-number-theory.multiplication-integers
open import elementary-number-theory.positive-integers

open import foundation.dependent-pair-types
open import foundation.identity-types
open import foundation.propositions
open import foundation.sets
open import foundation.transport-along-identifications
open import foundation.universe-levels
```

</details>

## Idea

{{#concept "Diagonal integer fractions" Agda=diagonal-fraction-ℤ}} are
[integer fractions](elementary-number-theory.integer-fractions.md) of the form
`k/k`.

## Definition

```agda
is-diagonal-prop-fraction-ℤ : fraction-ℤ → Prop lzero
is-diagonal-prop-fraction-ℤ (p , q , _) = Id-Prop ℤ-Set p q

is-diagonal-fraction-ℤ : fraction-ℤ → UU lzero
is-diagonal-fraction-ℤ (p , q , _) = p = q

in-diagonal-fraction-ℤ : ℤ⁺ → fraction-ℤ
in-diagonal-fraction-ℤ k⁺@(k , _) = (k , k⁺)

is-diagonal-in-diagonal-fraction-ℤ :
(k : ℤ⁺) → is-diagonal-fraction-ℤ (in-diagonal-fraction-ℤ k)
is-diagonal-in-diagonal-fraction-ℤ _ = refl
```

## Properties

### A fraction is diagonal if and only if it is similar to 1

```agda
abstract
sim-one-is-diagonal-fraction-ℤ :
(p : fraction-ℤ) →
is-diagonal-fraction-ℤ p → sim-fraction-ℤ p one-fraction-ℤ
sim-one-is-diagonal-fraction-ℤ (p , _ , _) refl =
commutative-mul-ℤ p one-ℤ

is-diagonal-sim-one-fraction-ℤ :
(p : fraction-ℤ) →
sim-fraction-ℤ p one-fraction-ℤ →
is-diagonal-fraction-ℤ p
is-diagonal-sim-one-fraction-ℤ (p , q , _) p~q =
equational-reasoning
p
= p *ℤ one-ℤ
by inv (right-unit-law-mul-ℤ p)
= one-ℤ *ℤ q
by p~q
= q
by left-unit-law-mul-ℤ q
```

### Multiplying a fraction by a diagonal fraction results in a similar fraction

```agda
abstract
sim-right-mul-diagonal-fraction-ℤ :
(p q : fraction-ℤ) → is-diagonal-fraction-ℤ q →
sim-fraction-ℤ (p *fraction-ℤ q) p
sim-right-mul-diagonal-fraction-ℤ p (q , .q , pos-q) refl =
transitive-sim-fraction-ℤ
( p *fraction-ℤ (q , q , pos-q))
( p *fraction-ℤ one-fraction-ℤ)
( p)
( right-unit-law-mul-fraction-ℤ p)
( sim-fraction-mul-fraction-ℤ
( refl)
( sim-one-is-diagonal-fraction-ℤ _ refl))

sim-left-mul-diagonal-fraction-ℤ :
(p q : fraction-ℤ) → is-diagonal-fraction-ℤ p →
sim-fraction-ℤ (p *fraction-ℤ q) q
sim-left-mul-diagonal-fraction-ℤ p q H =
transitive-sim-fraction-ℤ
( p *fraction-ℤ q)
( q *fraction-ℤ p)
( q)
( sim-right-mul-diagonal-fraction-ℤ q p H)
( commutative-mul-fraction-ℤ p q)
```
Loading