Skip to content
Merged
Show file tree
Hide file tree
Changes from 207 commits
Commits
Show all changes
221 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
c33f1fb
Progress
lowasser Oct 20, 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
a1a0871
Merge branch 'master' into mul-inv-complex
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
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
124a228
Merge branch 'master' into vector-spaces
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
e18af12
Merge branch 'master' into vector-spaces
fredrik-bakke Nov 21, 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
1 change: 1 addition & 0 deletions src/commutative-algebra.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ open import commutative-algebra.function-commutative-semirings public
open import commutative-algebra.geometric-sequences-commutative-rings public
open import commutative-algebra.geometric-sequences-commutative-semirings public
open import commutative-algebra.groups-of-units-commutative-rings public
open import commutative-algebra.heyting-fields public
open import commutative-algebra.homomorphisms-commutative-rings public
open import commutative-algebra.homomorphisms-commutative-semirings public
open import commutative-algebra.ideals-commutative-rings public
Expand Down
112 changes: 112 additions & 0 deletions src/commutative-algebra/heyting-fields.lagda.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
# Heyting fields

```agda
module commutative-algebra.heyting-fields where
```

<details><summary>Imports</summary>

```agda
open import commutative-algebra.commutative-rings
open import commutative-algebra.invertible-elements-commutative-rings
open import commutative-algebra.local-commutative-rings
open import commutative-algebra.trivial-commutative-rings

open import foundation.conjunction
open import foundation.dependent-pair-types
open import foundation.negation
open import foundation.propositions
open import foundation.sets
open import foundation.subtypes
open import foundation.universe-levels

open import ring-theory.rings
```

</details>

## Idea

A
{{#concept "Heyting field" WDID=Q5749811 WD="Heyting field" Agda=Heyting-Field}}
is a [local commutative ring](commutative-algebra.local-commutative-rings.md)
with the properties:

- it is [nontrivial](commutative-algebra.trivial-commutative-rings.md): 01
- any
[non](foundation.negation.md)-[invertible](commutative-algebra.invertible-elements-commutative-rings.md)
elements are [equal](foundation.identity-types.md) to zero

## Definition

```agda
is-heyting-field-prop-Local-Commutative-Ring :
{l : Level} Local-Commutative-Ring l Prop l
is-heyting-field-prop-Local-Commutative-Ring R =
( is-nontrivial-commutative-ring-Prop
( commutative-ring-Local-Commutative-Ring R)) ∧
( Π-Prop
( type-Local-Commutative-Ring R)
( λ x
hom-Prop
( ¬'
( is-invertible-element-prop-Commutative-Ring
( commutative-ring-Local-Commutative-Ring R)
( x)))
( is-zero-prop-Local-Commutative-Ring R x)))

is-heyting-field-Local-Commutative-Ring :
{l : Level} Local-Commutative-Ring l UU l
is-heyting-field-Local-Commutative-Ring R =
type-Prop (is-heyting-field-prop-Local-Commutative-Ring R)

Heyting-Field : (l : Level) UU (lsuc l)
Heyting-Field l =
type-subtype (is-heyting-field-prop-Local-Commutative-Ring {l})
```

## Properties

```agda
module _
{l : Level}
(F : Heyting-Field l)
where

local-commutative-ring-Heyting-Field : Local-Commutative-Ring l
local-commutative-ring-Heyting-Field = pr1 F

commutative-ring-Heyting-Field : Commutative-Ring l
commutative-ring-Heyting-Field =
commutative-ring-Local-Commutative-Ring local-commutative-ring-Heyting-Field

ring-Heyting-Field : Ring l
ring-Heyting-Field = ring-Commutative-Ring commutative-ring-Heyting-Field

type-Heyting-Field : UU l
type-Heyting-Field = type-Ring ring-Heyting-Field

set-Heyting-Field : Set l
set-Heyting-Field = set-Ring ring-Heyting-Field

zero-Heyting-Field : type-Heyting-Field
zero-Heyting-Field = zero-Ring ring-Heyting-Field

one-Heyting-Field : type-Heyting-Field
one-Heyting-Field = one-Ring ring-Heyting-Field

add-Heyting-Field :
type-Heyting-Field type-Heyting-Field type-Heyting-Field
add-Heyting-Field = add-Ring ring-Heyting-Field

mul-Heyting-Field :
type-Heyting-Field type-Heyting-Field type-Heyting-Field
mul-Heyting-Field = mul-Ring ring-Heyting-Field

neg-Heyting-Field : type-Heyting-Field type-Heyting-Field
neg-Heyting-Field = neg-Ring ring-Heyting-Field
```

## External links

- [Heyting field](https://ncatlab.org/nlab/show/Heyting+field) at $n$Lab
39 changes: 35 additions & 4 deletions src/commutative-algebra/local-commutative-rings.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,12 @@ open import ring-theory.rings

## Idea

A **local ring** is a ring such that whenever a sum of elements is invertible,
then one of its summands is invertible. This implies that the noninvertible
elements form an ideal. However, the law of excluded middle is needed to show
that any ring of which the noninvertible elements form an ideal is a local ring.
A {{#concept "local commutative ring" Agda=Local-Commutative-Ring}} is a
[local](ring-theory.local-rings.md)
[commutative ring](commutative-algebra.commutative-rings.md).

A local commutative ring is one limited version of the classical notion of field
that applies usefully in constructive contexts.

## Definition

Expand Down Expand Up @@ -66,4 +68,33 @@ module _
is-local-commutative-ring-Local-Commutative-Ring :
is-local-Commutative-Ring commutative-ring-Local-Commutative-Ring
is-local-commutative-ring-Local-Commutative-Ring = pr2 A

zero-Local-Commutative-Ring : type-Local-Commutative-Ring
zero-Local-Commutative-Ring = zero-Ring ring-Local-Commutative-Ring

is-zero-prop-Local-Commutative-Ring : type-Local-Commutative-Ring → Prop l
is-zero-prop-Local-Commutative-Ring =
is-zero-ring-Prop ring-Local-Commutative-Ring

one-Local-Commutative-Ring : type-Local-Commutative-Ring
one-Local-Commutative-Ring = one-Ring ring-Local-Commutative-Ring

add-Local-Commutative-Ring :
type-Local-Commutative-Ring → type-Local-Commutative-Ring →
type-Local-Commutative-Ring
add-Local-Commutative-Ring = add-Ring ring-Local-Commutative-Ring

mul-Local-Commutative-Ring :
type-Local-Commutative-Ring → type-Local-Commutative-Ring →
type-Local-Commutative-Ring
mul-Local-Commutative-Ring = mul-Ring ring-Local-Commutative-Ring

neg-Local-Commutative-Ring :
type-Local-Commutative-Ring → type-Local-Commutative-Ring
neg-Local-Commutative-Ring = neg-Ring ring-Local-Commutative-Ring
```

## See also

- [Heyting fields](commutative-algebra.heyting-fields.md), a local commutative
ring with stronger constraints on invertibility
25 changes: 25 additions & 0 deletions src/foundation/large-apartness-relations.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ module foundation.large-apartness-relations where
<details><summary>Imports</summary>

```agda
open import foundation.apartness-relations
open import foundation.dependent-pair-types
open import foundation.function-types
open import foundation.functoriality-disjunction
open import foundation.identity-types
open import foundation.large-binary-relations
open import foundation.negated-equality
Expand Down Expand Up @@ -99,3 +103,24 @@ module _
nonequal-apart-Large-Apartness-Relation {a = a} p refl =
antirefl-Large-Apartness-Relation R a p
```

### Small apartness relations from large apartness relations

```agda
module _
{α : Level → Level} {β : Level → Level → Level}
{A : (l : Level) → UU (α l)} (R : Large-Apartness-Relation β A)
where

apartness-relation-Large-Apartness-Relation :
(l : Level) → Apartness-Relation (β l l) (A l)
apartness-relation-Large-Apartness-Relation l =
( apart-prop-Large-Apartness-Relation R ,
antirefl-Large-Apartness-Relation R ,
symmetric-Large-Apartness-Relation R ,
λ a b c a#b →
map-disjunction
( id)
( symmetric-Large-Apartness-Relation R c b)
( cotransitive-Large-Apartness-Relation R a b c a#b))
```
2 changes: 2 additions & 0 deletions src/linear-algebra.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ open import linear-algebra.matrices-on-rings public
open import linear-algebra.multiplication-matrices public
open import linear-algebra.preimages-of-left-module-structures-along-homomorphisms-of-rings public
open import linear-algebra.rational-modules public
open import linear-algebra.real-vector-spaces public
open import linear-algebra.right-modules-rings public
open import linear-algebra.scalar-multiplication-matrices public
open import linear-algebra.scalar-multiplication-tuples public
Expand All @@ -46,4 +47,5 @@ open import linear-algebra.tuples-on-euclidean-domains public
open import linear-algebra.tuples-on-monoids public
open import linear-algebra.tuples-on-rings public
open import linear-algebra.tuples-on-semirings public
open import linear-algebra.vector-spaces public
```
174 changes: 174 additions & 0 deletions src/linear-algebra/real-vector-spaces.lagda.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
# Real vector spaces

```agda
module linear-algebra.real-vector-spaces where
```

<details><summary>Imports</summary>

```agda
open import foundation.identity-types
open import foundation.sets
open import foundation.universe-levels

open import group-theory.abelian-groups

open import linear-algebra.vector-spaces

open import real-numbers.addition-real-numbers
open import real-numbers.dedekind-real-numbers
open import real-numbers.field-of-real-numbers
open import real-numbers.multiplication-real-numbers
open import real-numbers.negation-real-numbers
open import real-numbers.raising-universe-levels-real-numbers
open import real-numbers.rational-real-numbers
```

</details>

## Idea

A
{{#concept "real vector space" WD="real vector space" WDID=Q46996054 Agda=ℝ-Vector-Space}}
is a [vector space](linear-algebra.vector-spaces.md) over the
[Heyting field of real numbers](real-numbers.field-of-real-numbers.md).

## Definition

```agda
ℝ-Vector-Space : (l1 l2 : Level) → UU (lsuc l1 ⊔ lsuc l2)
ℝ-Vector-Space l1 l2 = Vector-Space l2 (heyting-field-ℝ l1)
```

## Properties

```agda
module _
{l1 l2 : Level} (V : ℝ-Vector-Space l1 l2)
where

ab-ℝ-Vector-Space : Ab l2
ab-ℝ-Vector-Space = ab-Vector-Space (heyting-field-ℝ l1) V

set-ℝ-Vector-Space : Set l2
set-ℝ-Vector-Space = set-Ab ab-ℝ-Vector-Space

type-ℝ-Vector-Space : UU l2
type-ℝ-Vector-Space = type-Ab ab-ℝ-Vector-Space

add-ℝ-Vector-Space :
type-ℝ-Vector-Space → type-ℝ-Vector-Space → type-ℝ-Vector-Space
add-ℝ-Vector-Space = add-Ab ab-ℝ-Vector-Space

zero-ℝ-Vector-Space : type-ℝ-Vector-Space
zero-ℝ-Vector-Space = zero-Ab ab-ℝ-Vector-Space

neg-ℝ-Vector-Space : type-ℝ-Vector-Space → type-ℝ-Vector-Space
neg-ℝ-Vector-Space = neg-Ab ab-ℝ-Vector-Space

mul-ℝ-Vector-Space : ℝ l1 → type-ℝ-Vector-Space → type-ℝ-Vector-Space
mul-ℝ-Vector-Space = mul-Vector-Space (heyting-field-ℝ l1) V

associative-add-ℝ-Vector-Space :
(v w x : type-ℝ-Vector-Space) →
add-ℝ-Vector-Space (add-ℝ-Vector-Space v w) x =
add-ℝ-Vector-Space v (add-ℝ-Vector-Space w x)
associative-add-ℝ-Vector-Space = associative-add-Ab ab-ℝ-Vector-Space

left-unit-law-add-ℝ-Vector-Space :
(v : type-ℝ-Vector-Space) → add-ℝ-Vector-Space zero-ℝ-Vector-Space v = v
left-unit-law-add-ℝ-Vector-Space = left-unit-law-add-Ab ab-ℝ-Vector-Space

right-unit-law-add-ℝ-Vector-Space :
(v : type-ℝ-Vector-Space) → add-ℝ-Vector-Space v zero-ℝ-Vector-Space = v
right-unit-law-add-ℝ-Vector-Space = right-unit-law-add-Ab ab-ℝ-Vector-Space

left-inverse-law-add-ℝ-Vector-Space :
(v : type-ℝ-Vector-Space) →
add-ℝ-Vector-Space (neg-ℝ-Vector-Space v) v = zero-ℝ-Vector-Space
left-inverse-law-add-ℝ-Vector-Space =
left-inverse-law-add-Ab ab-ℝ-Vector-Space

right-inverse-law-add-ℝ-Vector-Space :
(v : type-ℝ-Vector-Space) →
add-ℝ-Vector-Space v (neg-ℝ-Vector-Space v) = zero-ℝ-Vector-Space
right-inverse-law-add-ℝ-Vector-Space =
right-inverse-law-add-Ab ab-ℝ-Vector-Space

commutative-add-ℝ-Vector-Space :
(v w : type-ℝ-Vector-Space) →
add-ℝ-Vector-Space v w = add-ℝ-Vector-Space w v
commutative-add-ℝ-Vector-Space = commutative-add-Ab ab-ℝ-Vector-Space

left-unit-law-mul-ℝ-Vector-Space :
(v : type-ℝ-Vector-Space) →
mul-ℝ-Vector-Space (raise-ℝ l1 one-ℝ) v = v
left-unit-law-mul-ℝ-Vector-Space =
left-unit-law-mul-Vector-Space (heyting-field-ℝ l1) V

left-distributive-mul-add-ℝ-Vector-Space :
(r : ℝ l1) (v w : type-ℝ-Vector-Space) →
mul-ℝ-Vector-Space r (add-ℝ-Vector-Space v w) =
add-ℝ-Vector-Space (mul-ℝ-Vector-Space r v) (mul-ℝ-Vector-Space r w)
left-distributive-mul-add-ℝ-Vector-Space =
left-distributive-mul-add-Vector-Space (heyting-field-ℝ l1) V

right-distributive-mul-add-ℝ-Vector-Space :
(r s : ℝ l1) (v : type-ℝ-Vector-Space) →
mul-ℝ-Vector-Space (r +ℝ s) v =
add-ℝ-Vector-Space (mul-ℝ-Vector-Space r v) (mul-ℝ-Vector-Space s v)
right-distributive-mul-add-ℝ-Vector-Space =
right-distributive-mul-add-Vector-Space (heyting-field-ℝ l1) V

associative-mul-ℝ-Vector-Space :
(r s : ℝ l1) (v : type-ℝ-Vector-Space) →
mul-ℝ-Vector-Space (r *ℝ s) v =
mul-ℝ-Vector-Space r (mul-ℝ-Vector-Space s v)
associative-mul-ℝ-Vector-Space =
associative-mul-Vector-Space (heyting-field-ℝ l1) V

left-zero-law-mul-ℝ-Vector-Space :
(v : type-ℝ-Vector-Space) →
mul-ℝ-Vector-Space (raise-ℝ l1 zero-ℝ) v = zero-ℝ-Vector-Space
left-zero-law-mul-ℝ-Vector-Space =
left-zero-law-mul-Vector-Space (heyting-field-ℝ l1) V

right-zero-law-mul-ℝ-Vector-Space :
(r : ℝ l1) →
mul-ℝ-Vector-Space r zero-ℝ-Vector-Space = zero-ℝ-Vector-Space
right-zero-law-mul-ℝ-Vector-Space =
right-zero-law-mul-Vector-Space (heyting-field-ℝ l1) V

left-negative-law-mul-ℝ-Vector-Space :
(r : ℝ l1) (v : type-ℝ-Vector-Space) →
mul-ℝ-Vector-Space (neg-ℝ r) v =
neg-ℝ-Vector-Space (mul-ℝ-Vector-Space r v)
left-negative-law-mul-ℝ-Vector-Space =
left-negative-law-mul-Vector-Space (heyting-field-ℝ l1) V

right-negative-law-mul-ℝ-Vector-Space :
(r : ℝ l1) (v : type-ℝ-Vector-Space) →
mul-ℝ-Vector-Space r (neg-ℝ-Vector-Space v) =
neg-ℝ-Vector-Space (mul-ℝ-Vector-Space r v)
right-negative-law-mul-ℝ-Vector-Space =
right-negative-law-mul-Vector-Space (heyting-field-ℝ l1) V

mul-neg-one-ℝ-Vector-Space :
(v : type-ℝ-Vector-Space) →
mul-ℝ-Vector-Space (neg-ℝ (raise-ℝ l1 one-ℝ)) v = neg-ℝ-Vector-Space v
mul-neg-one-ℝ-Vector-Space =
mul-neg-one-Vector-Space (heyting-field-ℝ l1) V
```

### The real numbers are a real vector space

```agda
real-vector-space-ℝ : (l : Level) → ℝ-Vector-Space l (lsuc l)
real-vector-space-ℝ l =
vector-space-heyting-field-Heyting-Field
( heyting-field-ℝ l)
```

## See also

- [Vector spaces](linear-algebra.vector-spaces.md)
Loading