Skip to content

Commit c1eb427

Browse files
Ring extensions of and rational modules (UniMath#1452)
This PR aims to fill some gaps in ring-theoretical relations between ℤ and ℚ: - `rational-ℤ` is the initial ring homomorphism `ℤ → ℚ`; - elements of `ℤ⁺` are invertible in `ℚ`; - any ring homomorphism `ℚ → R` inverts positive integers; - misc. elementary algebraic properties; We also introduce the following concepts: - **ring extensions of ℚ**: rings `R` such that the image of `ℤ⁺` by the initial ring homomorphism `ℤ → R` consists of invertible elements; with the following results: - the initial ring homomorphism `ι : ℤ → R` into a ring extensions of ℚ extends to a map `ℚ → R` by ```γ : p/q ↦ (ι p)(ι q)⁻¹```; - any ring that admits a ring homomorphism `f : ℚ → R` is a **ring extensions of ℚ** and `f` is homotopic to `γ`; - all ring homomorphisms `ℚ → R` are equal; - a ring is a **ring extensions of ℚ** if and only if there exists some ring homomorphism `ℚ → R`. - `ℚ` is a rational ring; - the rational extension `γ : p/q ↦ (ι p)(ι q)⁻¹` of the initial ring homomorphism `ι : ℤ → R` into a **ring extensions of ℚ** is a ring homomorphism `ℚ → R` ; - `ℚ` is the initial **ring extensions of ℚ**; - `ℚ` is the localization of `ℤ` at `ℤ⁺`. - **rational modules**: Abelian groups whose ring of endomorphisms are **ring extensions of ℚ**. It is equivalent to the type of left/right modules over the ring of rational numbers, i.e., rational vector spaces. --------- Co-authored-by: Garrett Figueroa <garrett.figueroa@gmail.com>
1 parent e34cd8d commit c1eb427

21 files changed

Lines changed: 2425 additions & 5 deletions

src/elementary-number-theory.lagda.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@ open import elementary-number-theory.relatively-prime-integers public
165165
open import elementary-number-theory.relatively-prime-natural-numbers public
166166
open import elementary-number-theory.repeating-element-standard-finite-type public
167167
open import elementary-number-theory.retracts-of-natural-numbers public
168+
open import elementary-number-theory.ring-extension-rational-numbers-of-rational-numbers public
168169
open import elementary-number-theory.ring-of-integers public
169170
open import elementary-number-theory.ring-of-rational-numbers public
170171
open import elementary-number-theory.sieve-of-eratosthenes public

src/elementary-number-theory/additive-group-of-rational-numbers.lagda.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ module elementary-number-theory.additive-group-of-rational-numbers where
1111
```agda
1212
open import elementary-number-theory.addition-rational-numbers
1313
open import elementary-number-theory.difference-rational-numbers
14+
open import elementary-number-theory.group-of-integers
1415
open import elementary-number-theory.rational-numbers
1516
1617
open import foundation.dependent-pair-types
@@ -21,6 +22,7 @@ open import foundation.universe-levels
2122
open import group-theory.abelian-groups
2223
open import group-theory.commutative-monoids
2324
open import group-theory.groups
25+
open import group-theory.homomorphisms-abelian-groups
2426
open import group-theory.monoids
2527
open import group-theory.semigroups
2628
```
@@ -99,3 +101,10 @@ abstract
99101
left-swap-add-ℚ : (p q r : ℚ) → p +ℚ (q +ℚ r) = q +ℚ (p +ℚ r)
100102
left-swap-add-ℚ = left-swap-add-Ab abelian-group-add-ℚ
101103
```
104+
105+
### The inclusion of integers in the rationals is an additive homomorphism
106+
107+
```agda
108+
hom-add-rational-ℤ : hom-Ab ℤ-Ab abelian-group-add-ℚ
109+
hom-add-rational-ℤ = (rational-ℤ , λ {x y} → inv (add-rational-ℤ x y))
110+
```

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

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -452,6 +452,46 @@ abstract
452452
= q +ℚ q by ap-add-ℚ (left-unit-law-mul-ℚ q) (left-unit-law-mul-ℚ q)
453453
```
454454

455+
### The product of a rational number and its denominator is its numerator
456+
457+
```agda
458+
module _
459+
(x : ℚ)
460+
where
461+
462+
opaque
463+
unfolding mul-ℚ
464+
465+
eq-numerator-mul-denominator-ℚ :
466+
mul-ℚ
467+
( x)
468+
( rational-ℤ (denominator-ℚ x)) =
469+
rational-ℤ (numerator-ℚ x)
470+
eq-numerator-mul-denominator-ℚ =
471+
( eq-ℚ-sim-fraction-ℤ
472+
( mul-fraction-ℤ
473+
( fraction-ℚ x)
474+
( in-fraction-ℤ (denominator-ℚ x)))
475+
( in-fraction-ℤ (numerator-ℚ x))
476+
( associative-mul-ℤ
477+
( numerator-ℚ x)
478+
( denominator-ℚ x)
479+
( one-ℤ))) ∙
480+
( is-retraction-rational-fraction-ℚ
481+
( rational-ℤ (numerator-ℚ x)))
482+
483+
eq-numerator-mul-denominator-ℚ' :
484+
mul-ℚ
485+
( rational-ℤ (denominator-ℚ x))
486+
( x) =
487+
rational-ℤ (numerator-ℚ x)
488+
eq-numerator-mul-denominator-ℚ' =
489+
( commutative-mul-ℚ
490+
( rational-ℤ (denominator-ℚ x))
491+
( x)) ∙
492+
( eq-numerator-mul-denominator-ℚ)
493+
```
494+
455495
## See also
456496

457497
- The multiplicative monoid structure on the rational numbers is defined in

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

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,3 +160,24 @@ abstract
160160
( y)
161161
( commutative-mul-ℚ⁺ x y)
162162
```
163+
164+
### Inversion on the positive rational numbers interchanges numerator and denominator
165+
166+
```agda
167+
module _
168+
(x : ℚ⁺)
169+
where
170+
171+
opaque
172+
unfolding inv-ℚ⁺
173+
174+
eq-numerator-inv-denominator-ℚ⁺ :
175+
numerator-ℚ⁺ (inv-ℚ⁺ x) = denominator-ℚ⁺ x
176+
eq-numerator-inv-denominator-ℚ⁺ =
177+
ind-Σ eq-numerator-inv-denominator-is-positive-ℚ x
178+
179+
eq-denominator-inv-numerator-ℚ⁺ :
180+
denominator-ℚ⁺ (inv-ℚ⁺ x) = numerator-ℚ⁺ x
181+
eq-denominator-inv-numerator-ℚ⁺ =
182+
ind-Σ eq-denominator-inv-numerator-is-positive-ℚ x
183+
```

src/elementary-number-theory/positive-integers.lagda.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,9 @@ module _
9898
```agda
9999
one-positive-ℤ : positive-ℤ
100100
one-positive-ℤ = (one-ℤ , star)
101+
102+
one-ℤ⁺ : ℤ⁺
103+
one-ℤ⁺ = one-positive-ℤ
101104
```
102105

103106
## Properties
@@ -156,6 +159,27 @@ is-positive-int-is-nonzero-ℕ (succ-ℕ x) H = star
156159
157160
positive-int-ℕ⁺ : ℕ⁺ → positive-ℤ
158161
positive-int-ℕ⁺ (n , n≠0) = int-ℕ n , is-positive-int-is-nonzero-ℕ n n≠0
162+
163+
positive-nat-ℤ⁺ : positive-ℤ → ℕ⁺
164+
positive-nat-ℤ⁺ (inr (inr x) , k>0) = succ-nonzero-ℕ' x
165+
166+
abstract
167+
is-section-positive-nat-ℤ⁺ :
168+
(k : ℤ⁺) → positive-int-ℕ⁺ (positive-nat-ℤ⁺ k) = k
169+
is-section-positive-nat-ℤ⁺ (inr (inr k) , k>0) =
170+
eq-type-subtype subtype-positive-ℤ refl
171+
172+
is-retraction-positive-nat-ℤ⁺ :
173+
(n : ℕ⁺) → positive-nat-ℤ⁺ (positive-int-ℕ⁺ n) = n
174+
is-retraction-positive-nat-ℤ⁺ (zero-ℕ , n≠0) = ex-falso (n≠0 refl)
175+
is-retraction-positive-nat-ℤ⁺ (succ-ℕ n , n≠0) = eq-nonzero-ℕ refl
176+
177+
is-equiv-positive-int-ℕ⁺ : is-equiv positive-int-ℕ⁺
178+
is-equiv-positive-int-ℕ⁺ =
179+
is-equiv-is-invertible
180+
( positive-nat-ℤ⁺)
181+
( is-section-positive-nat-ℤ⁺)
182+
( is-retraction-positive-nat-ℤ⁺)
159183
```
160184

161185
### The canonical equivalence between natural numbers and positive integers

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,9 @@ abstract
174174
positive-rational-positive-ℤ : positive-ℤ → ℚ⁺
175175
positive-rational-positive-ℤ (z , pos-z) = rational-ℤ z , pos-z
176176
177+
positive-rational-ℤ⁺ : ℤ⁺ → ℚ⁺
178+
positive-rational-ℤ⁺ = positive-rational-positive-ℤ
179+
177180
one-ℚ⁺ : ℚ⁺
178181
one-ℚ⁺ = (one-ℚ , is-positive-int-positive-ℤ one-positive-ℤ)
179182
```
@@ -504,6 +507,14 @@ module _
504507
right-inverse-law-mul-is-positive-ℚ =
505508
(commutative-mul-ℚ x _) ∙ (left-inverse-law-mul-is-positive-ℚ)
506509
510+
eq-numerator-inv-denominator-is-positive-ℚ :
511+
numerator-ℚ (inv-is-positive-ℚ) = denominator-ℚ x
512+
eq-numerator-inv-denominator-is-positive-ℚ = refl
513+
514+
eq-denominator-inv-numerator-is-positive-ℚ :
515+
denominator-ℚ (inv-is-positive-ℚ) = numerator-ℚ x
516+
eq-denominator-inv-numerator-is-positive-ℚ = refl
517+
507518
is-mul-invertible-is-positive-ℚ : is-invertible-element-Monoid monoid-mul-ℚ x
508519
pr1 is-mul-invertible-is-positive-ℚ = inv-is-positive-ℚ
509520
pr1 (pr2 is-mul-invertible-is-positive-ℚ) =
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
# The ring extension of rational numbers of the ring of rational numbers
2+
3+
```agda
4+
module elementary-number-theory.ring-extension-rational-numbers-of-rational-numbers where
5+
```
6+
7+
<details><summary>Imports</summary>
8+
9+
```agda
10+
open import elementary-number-theory.positive-integers
11+
open import elementary-number-theory.ring-of-integers
12+
open import elementary-number-theory.ring-of-rational-numbers
13+
14+
open import foundation.contractible-types
15+
open import foundation.dependent-pair-types
16+
open import foundation.logical-equivalences
17+
open import foundation.subtypes
18+
open import foundation.transport-along-identifications
19+
open import foundation.universe-levels
20+
21+
open import ring-theory.homomorphisms-ring-extensions-rational-numbers
22+
open import ring-theory.homomorphisms-rings
23+
open import ring-theory.localizations-rings
24+
open import ring-theory.ring-extensions-rational-numbers
25+
open import ring-theory.rings
26+
```
27+
28+
</details>
29+
30+
## Idea
31+
32+
The
33+
[ring of rational numbers](elementary-number-theory.ring-of-rational-numbers.md)
34+
is a [ring extension of ``](ring-theory.ring-extensions-rational-numbers.md) so
35+
`` is the initial ring extension of ``: the type of
36+
[ring homomorphisms](ring-theory.homomorphisms-rings.md) from `` to a ring
37+
extension of `` is [contractible](foundation-core.contractible-types.md).
38+
39+
As a corollary, `` is the [localization](ring-theory.localizations-rings.md) of
40+
`` at `ℤ⁺`: any ring homomorphism `ℤ → R` that inverts the positive integers
41+
extends to a ring homomorphism `ℚ → R`.
42+
43+
## Definition
44+
45+
### `` is a rational extension of itself
46+
47+
```agda
48+
is-rational-extension-ring-ℚ : is-rational-extension-Ring ring-ℚ
49+
is-rational-extension-ring-ℚ =
50+
is-rational-extension-has-rational-hom-Ring
51+
( ring-ℚ)
52+
( id-hom-Ring ring-ℚ)
53+
54+
rational-extension-ring-ℚ : Rational-Extension-Ring lzero
55+
rational-extension-ring-ℚ =
56+
( ring-ℚ , is-rational-extension-ring-ℚ)
57+
```
58+
59+
## Properties
60+
61+
### The ring of rational numbers is the initial ring extension of ``
62+
63+
```agda
64+
module _
65+
{l : Level}
66+
where
67+
68+
is-initial-rational-extension-ring-ℚ :
69+
(R : Rational-Extension-Ring l) →
70+
is-contr (hom-Rational-Extension-Ring rational-extension-ring-ℚ R)
71+
is-initial-rational-extension-ring-ℚ R =
72+
is-contr-rational-hom-Rational-Extension-Ring R
73+
```
74+
75+
### The ring of rational numbers is the localization of the ring of integers at `ℤ⁺`
76+
77+
```agda
78+
module _
79+
{l : Level}
80+
where
81+
82+
universal-property-localization-positive-integers-ring-ℚ :
83+
universal-property-localization-subset-Ring
84+
( l)
85+
( ℤ-Ring)
86+
( ring-ℚ)
87+
( subtype-positive-ℤ)
88+
( initial-hom-Ring ring-ℚ)
89+
( is-rational-extension-ring-ℚ)
90+
universal-property-localization-positive-integers-ring-ℚ T =
91+
is-equiv-has-converse-is-prop
92+
( is-prop-has-rational-hom-Ring T)
93+
( is-prop-type-subtype
94+
( inverts-subset-prop-hom-Ring ℤ-Ring T subtype-positive-ℤ)
95+
( is-prop-is-contr (is-initial-ℤ-Ring T)))
96+
( λ (f , H) →
97+
initial-hom-Rational-Extension-Ring
98+
( ( T) ,
99+
( inv-tr
100+
( inverts-subset-hom-Ring ℤ-Ring T subtype-positive-ℤ)
101+
( contraction-initial-hom-Ring T f)
102+
( H))))
103+
```

src/elementary-number-theory/ring-of-integers.lagda.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,3 +203,27 @@ compute-integer-multiple-ℤ-Ring k l =
203203
by
204204
integer-multiple-one-ℤ-Ring _
205205
```
206+
207+
### The image of `` in a ring is commutative
208+
209+
```agda
210+
module _
211+
{l : Level} (R : Ring l)
212+
where
213+
214+
abstract
215+
is-commutative-map-initial-hom-Ring :
216+
(p q : ℤ) →
217+
mul-Ring
218+
( R)
219+
( map-initial-hom-Ring R p)
220+
( map-initial-hom-Ring R q) =
221+
mul-Ring
222+
( R)
223+
( map-initial-hom-Ring R q)
224+
( map-initial-hom-Ring R p)
225+
is-commutative-map-initial-hom-Ring p q =
226+
( inv (preserves-mul-initial-hom-Ring R p q)) ∙
227+
( ap (map-initial-hom-Ring R) (commutative-mul-ℤ p q)) ∙
228+
( preserves-mul-initial-hom-Ring R q p)
229+
```

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

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,22 @@ open import commutative-algebra.commutative-rings
1414
open import elementary-number-theory.additive-group-of-rational-numbers
1515
open import elementary-number-theory.multiplication-rational-numbers
1616
open import elementary-number-theory.multiplicative-monoid-of-rational-numbers
17+
open import elementary-number-theory.positive-integers
18+
open import elementary-number-theory.rational-numbers
19+
open import elementary-number-theory.ring-of-integers
20+
open import elementary-number-theory.unit-fractions-rational-numbers
1721
1822
open import foundation.coproduct-types
1923
open import foundation.dependent-pair-types
24+
open import foundation.homotopies
25+
open import foundation.identity-types
2026
open import foundation.unital-binary-operations
2127
open import foundation.universe-levels
2228
2329
open import group-theory.semigroups
2430
31+
open import ring-theory.homomorphisms-rings
32+
open import ring-theory.localizations-rings
2533
open import ring-theory.rings
2634
```
2735

@@ -64,3 +72,69 @@ commutative-ring-ℚ : Commutative-Ring lzero
6472
pr1 commutative-ring-ℚ = ring-ℚ
6573
pr2 commutative-ring-ℚ = commutative-mul-ℚ
6674
```
75+
76+
### The inclusion of integers in the rationals is the initial ring homomorphism
77+
78+
```agda
79+
hom-ring-rational-ℤ : hom-Ring ℤ-Ring ring-ℚ
80+
hom-ring-rational-ℤ =
81+
( hom-add-rational-ℤ) ,
82+
( λ {x y} → inv (mul-rational-ℤ x y)) ,
83+
( refl)
84+
85+
abstract
86+
htpy-map-initial-hom-ring-rational-ℤ :
87+
map-initial-hom-Ring ring-ℚ ~ rational-ℤ
88+
htpy-map-initial-hom-ring-rational-ℤ =
89+
htpy-initial-hom-Ring ring-ℚ hom-ring-rational-ℤ
90+
91+
eq-initial-hom-ring-rational-ℤ : initial-hom-Ring ring-ℚ = hom-ring-rational-ℤ
92+
eq-initial-hom-ring-rational-ℤ =
93+
contraction-initial-hom-Ring ring-ℚ hom-ring-rational-ℤ
94+
```
95+
96+
### The positive integers are invertible in ℚ
97+
98+
```agda
99+
abstract
100+
inverts-positive-integers-rational-ℤ :
101+
inverts-subset-hom-Ring
102+
( ℤ-Ring)
103+
( ring-ℚ)
104+
( subtype-positive-ℤ)
105+
( hom-ring-rational-ℤ)
106+
inverts-positive-integers-rational-ℤ k k>0 =
107+
( reciprocal-rational-ℤ⁺ (k , k>0)) ,
108+
( right-inverse-law-reciprocal-rational-ℤ⁺ (k , k>0) ,
109+
left-inverse-law-reciprocal-rational-ℤ⁺ (k , k>0))
110+
```
111+
112+
### Any ring homomorphism from ℚ inverts the positive integers
113+
114+
```agda
115+
module _
116+
{l : Level} (R : Ring l) (f : hom-Ring ring-ℚ R)
117+
where
118+
119+
abstract
120+
inverts-positive-integers-rational-hom-Ring :
121+
inverts-subset-hom-Ring
122+
( ℤ-Ring)
123+
( R)
124+
( subtype-positive-ℤ)
125+
( comp-hom-Ring ℤ-Ring ring-ℚ R f hom-ring-rational-ℤ)
126+
inverts-positive-integers-rational-hom-Ring k k>0 =
127+
preserves-invertible-elements-hom-Ring
128+
( ring-ℚ)
129+
( R)
130+
( f)
131+
( inverts-positive-integers-rational-ℤ k k>0)
132+
```
133+
134+
## See also
135+
136+
- [`ring-extension-rational-numbers-of-rational-numbers`](elementary-number-theory.ring-extension-rational-numbers-of-rational-numbers.md):
137+
the trivial
138+
[ring extension of ``](ring-theory.ring-extensions-rational-numbers.md) where
139+
it is proven that `` is the
140+
[localization](ring-theory.localizations-rings.md) of `` at `ℤ⁺`.

0 commit comments

Comments
 (0)