Skip to content

Commit e0cb7f6

Browse files
authored
Vector spaces (#1689)
Completes #1685 . Builds on #1684 and #1679.
1 parent dd13c17 commit e0cb7f6

19 files changed

+990
-28
lines changed

src/commutative-algebra.lagda.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ open import commutative-algebra.function-commutative-semirings public
2525
open import commutative-algebra.geometric-sequences-commutative-rings public
2626
open import commutative-algebra.geometric-sequences-commutative-semirings public
2727
open import commutative-algebra.groups-of-units-commutative-rings public
28+
open import commutative-algebra.heyting-fields public
2829
open import commutative-algebra.homomorphisms-commutative-rings public
2930
open import commutative-algebra.homomorphisms-commutative-semirings public
3031
open import commutative-algebra.ideals-commutative-rings public
Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
# Heyting fields
2+
3+
```agda
4+
module commutative-algebra.heyting-fields where
5+
```
6+
7+
<details><summary>Imports</summary>
8+
9+
```agda
10+
open import commutative-algebra.commutative-rings
11+
open import commutative-algebra.invertible-elements-commutative-rings
12+
open import commutative-algebra.local-commutative-rings
13+
open import commutative-algebra.trivial-commutative-rings
14+
15+
open import foundation.conjunction
16+
open import foundation.dependent-pair-types
17+
open import foundation.negation
18+
open import foundation.propositions
19+
open import foundation.sets
20+
open import foundation.subtypes
21+
open import foundation.universe-levels
22+
23+
open import ring-theory.rings
24+
```
25+
26+
</details>
27+
28+
## Idea
29+
30+
A
31+
{{#concept "Heyting field" WDID=Q5749811 WD="Heyting field" Agda=Heyting-Field}}
32+
is a [local commutative ring](commutative-algebra.local-commutative-rings.md)
33+
with the properties:
34+
35+
- it is [nontrivial](commutative-algebra.trivial-commutative-rings.md): 0 ≠ 1
36+
- any
37+
[non](foundation.negation.md)-[invertible](commutative-algebra.invertible-elements-commutative-rings.md)
38+
element is [equal](foundation.identity-types.md) to zero
39+
40+
Note that this is distinct from the classical notion of a field, called
41+
[discrete field](commutative-algebra.discrete-fields.md) in constructive
42+
contexts, which asserts that every element is
43+
[either](foundation.exclusive-disjunction.md) invertible or equal to zero. A
44+
Heyting field is a discrete field if and only if its equality relation is
45+
[decidable](foundation.decidable-equality.md), which would not include e.g. the
46+
[real numbers](real-numbers.dedekind-real-numbers.md).
47+
48+
## Definition
49+
50+
```agda
51+
is-heyting-field-prop-Local-Commutative-Ring :
52+
{l : Level} → Local-Commutative-Ring l → Prop l
53+
is-heyting-field-prop-Local-Commutative-Ring R =
54+
( is-nontrivial-commutative-ring-Prop
55+
( commutative-ring-Local-Commutative-Ring R)) ∧
56+
( Π-Prop
57+
( type-Local-Commutative-Ring R)
58+
( λ x →
59+
hom-Prop
60+
( ¬'
61+
( is-invertible-element-prop-Commutative-Ring
62+
( commutative-ring-Local-Commutative-Ring R)
63+
( x)))
64+
( is-zero-prop-Local-Commutative-Ring R x)))
65+
66+
is-heyting-field-Local-Commutative-Ring :
67+
{l : Level} → Local-Commutative-Ring l → UU l
68+
is-heyting-field-Local-Commutative-Ring R =
69+
type-Prop (is-heyting-field-prop-Local-Commutative-Ring R)
70+
71+
Heyting-Field : (l : Level) → UU (lsuc l)
72+
Heyting-Field l =
73+
type-subtype (is-heyting-field-prop-Local-Commutative-Ring {l})
74+
```
75+
76+
## Properties
77+
78+
```agda
79+
module _
80+
{l : Level}
81+
(F : Heyting-Field l)
82+
where
83+
84+
local-commutative-ring-Heyting-Field : Local-Commutative-Ring l
85+
local-commutative-ring-Heyting-Field = pr1 F
86+
87+
commutative-ring-Heyting-Field : Commutative-Ring l
88+
commutative-ring-Heyting-Field =
89+
commutative-ring-Local-Commutative-Ring local-commutative-ring-Heyting-Field
90+
91+
ring-Heyting-Field : Ring l
92+
ring-Heyting-Field = ring-Commutative-Ring commutative-ring-Heyting-Field
93+
94+
type-Heyting-Field : UU l
95+
type-Heyting-Field = type-Ring ring-Heyting-Field
96+
97+
set-Heyting-Field : Set l
98+
set-Heyting-Field = set-Ring ring-Heyting-Field
99+
100+
zero-Heyting-Field : type-Heyting-Field
101+
zero-Heyting-Field = zero-Ring ring-Heyting-Field
102+
103+
one-Heyting-Field : type-Heyting-Field
104+
one-Heyting-Field = one-Ring ring-Heyting-Field
105+
106+
add-Heyting-Field :
107+
type-Heyting-Field → type-Heyting-Field → type-Heyting-Field
108+
add-Heyting-Field = add-Ring ring-Heyting-Field
109+
110+
mul-Heyting-Field :
111+
type-Heyting-Field → type-Heyting-Field → type-Heyting-Field
112+
mul-Heyting-Field = mul-Ring ring-Heyting-Field
113+
114+
neg-Heyting-Field : type-Heyting-Field → type-Heyting-Field
115+
neg-Heyting-Field = neg-Ring ring-Heyting-Field
116+
```
117+
118+
## External links
119+
120+
- [Heyting field](https://ncatlab.org/nlab/show/Heyting+field) at $n$Lab

src/commutative-algebra/local-commutative-rings.lagda.md

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,9 @@ open import ring-theory.rings
2222

2323
## Idea
2424

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

3029
## Definition
3130

@@ -66,4 +65,33 @@ module _
6665
is-local-commutative-ring-Local-Commutative-Ring :
6766
is-local-Commutative-Ring commutative-ring-Local-Commutative-Ring
6867
is-local-commutative-ring-Local-Commutative-Ring = pr2 A
68+
69+
zero-Local-Commutative-Ring : type-Local-Commutative-Ring
70+
zero-Local-Commutative-Ring = zero-Ring ring-Local-Commutative-Ring
71+
72+
is-zero-prop-Local-Commutative-Ring : type-Local-Commutative-Ring → Prop l
73+
is-zero-prop-Local-Commutative-Ring =
74+
is-zero-ring-Prop ring-Local-Commutative-Ring
75+
76+
one-Local-Commutative-Ring : type-Local-Commutative-Ring
77+
one-Local-Commutative-Ring = one-Ring ring-Local-Commutative-Ring
78+
79+
add-Local-Commutative-Ring :
80+
type-Local-Commutative-Ring → type-Local-Commutative-Ring →
81+
type-Local-Commutative-Ring
82+
add-Local-Commutative-Ring = add-Ring ring-Local-Commutative-Ring
83+
84+
mul-Local-Commutative-Ring :
85+
type-Local-Commutative-Ring → type-Local-Commutative-Ring →
86+
type-Local-Commutative-Ring
87+
mul-Local-Commutative-Ring = mul-Ring ring-Local-Commutative-Ring
88+
89+
neg-Local-Commutative-Ring :
90+
type-Local-Commutative-Ring → type-Local-Commutative-Ring
91+
neg-Local-Commutative-Ring = neg-Ring ring-Local-Commutative-Ring
6992
```
93+
94+
## See also
95+
96+
- [Heyting fields](commutative-algebra.heyting-fields.md), a local commutative
97+
ring with stronger constraints on invertibility

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ open import foundation.equality-cartesian-product-types
2424
open import foundation.equality-dependent-pair-types
2525
open import foundation.identity-types
2626
open import foundation.logical-equivalences
27+
open import foundation.negated-equality
2728
open import foundation.negation
2829
open import foundation.propositions
2930
open import foundation.reflecting-maps-equivalence-relations
@@ -140,6 +141,9 @@ one-ℚ = rational-ℤ one-ℤ
140141
141142
is-one-ℚ : ℚ → UU lzero
142143
is-one-ℚ x = (x = one-ℚ)
144+
145+
neq-zero-one-ℚ : zero-ℚ ≠ one-ℚ
146+
neq-zero-one-ℚ ()
143147
```
144148

145149
### The negative of a rational number

src/foundation/large-apartness-relations.lagda.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ module foundation.large-apartness-relations where
77
<details><summary>Imports</summary>
88

99
```agda
10+
open import foundation.apartness-relations
11+
open import foundation.dependent-pair-types
12+
open import foundation.function-types
13+
open import foundation.functoriality-disjunction
1014
open import foundation.identity-types
1115
open import foundation.large-binary-relations
1216
open import foundation.negated-equality
@@ -99,3 +103,24 @@ module _
99103
nonequal-apart-Large-Apartness-Relation {a = a} p refl =
100104
antirefl-Large-Apartness-Relation R a p
101105
```
106+
107+
### Small apartness relations from large apartness relations
108+
109+
```agda
110+
module _
111+
{α : Level → Level} {β : Level → Level → Level}
112+
{A : (l : Level) → UU (α l)} (R : Large-Apartness-Relation β A)
113+
where
114+
115+
apartness-relation-Large-Apartness-Relation :
116+
(l : Level) → Apartness-Relation (β l l) (A l)
117+
apartness-relation-Large-Apartness-Relation l =
118+
( apart-prop-Large-Apartness-Relation R ,
119+
antirefl-Large-Apartness-Relation R ,
120+
symmetric-Large-Apartness-Relation R ,
121+
λ a b c a#b →
122+
map-disjunction
123+
( id)
124+
( symmetric-Large-Apartness-Relation R c b)
125+
( cotransitive-Large-Apartness-Relation R a b c a#b))
126+
```

src/linear-algebra.lagda.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ open import linear-algebra.matrices-on-rings public
3434
open import linear-algebra.multiplication-matrices public
3535
open import linear-algebra.preimages-of-left-module-structures-along-homomorphisms-of-rings public
3636
open import linear-algebra.rational-modules public
37+
open import linear-algebra.real-vector-spaces public
3738
open import linear-algebra.right-modules-rings public
3839
open import linear-algebra.scalar-multiplication-matrices public
3940
open import linear-algebra.scalar-multiplication-tuples public
@@ -47,4 +48,5 @@ open import linear-algebra.tuples-on-euclidean-domains public
4748
open import linear-algebra.tuples-on-monoids public
4849
open import linear-algebra.tuples-on-rings public
4950
open import linear-algebra.tuples-on-semirings public
51+
open import linear-algebra.vector-spaces public
5052
```

0 commit comments

Comments
 (0)