Skip to content

Commit dd13c17

Browse files
authored
Large left modules (#1721)
Moving incrementally towards large vector spaces.
1 parent e53405b commit dd13c17

File tree

4 files changed

+785
-2
lines changed

4 files changed

+785
-2
lines changed

src/group-theory/large-abelian-groups.lagda.md

Lines changed: 113 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# Large abelian groups
22

33
```agda
4+
{-# OPTIONS --lossy-unification #-}
5+
46
module group-theory.large-abelian-groups where
57
```
68

@@ -55,6 +57,13 @@ record Large-Ab (α : Level → Level) (β : Level → Level → Level) : UUω w
5557
type-Large-Ab (l1 ⊔ l2)
5658
add-Large-Ab = mul-Large-Group large-group-Large-Ab
5759
60+
ap-add-Large-Ab :
61+
{l1 l2 : Level} {x x' : type-Large-Ab l1} → x = x' →
62+
{y y' : type-Large-Ab l2} → y = y' →
63+
add-Large-Ab x y = add-Large-Ab x' y'
64+
ap-add-Large-Ab =
65+
ap-mul-Large-Group large-group-Large-Ab
66+
5867
zero-Large-Ab : type-Large-Ab lzero
5968
zero-Large-Ab = unit-Large-Group large-group-Large-Ab
6069
@@ -63,7 +72,7 @@ record Large-Ab (α : Level → Level) (β : Level → Level → Level) : UUω w
6372
6473
field
6574
commutative-add-Large-Ab :
66-
{l1 l2 : Level} (x : type-Large-Ab l1) (y : type-Large-Ab l2) →
75+
{l1 l2 : Level} (x : type-Large-Ab l1) (y : type-Large-Ab l2) →
6776
add-Large-Ab x y = add-Large-Ab y x
6877
6978
open Large-Ab public
@@ -104,6 +113,17 @@ module _
104113
sim-Large-Ab y z → sim-Large-Ab x y → sim-Large-Ab x z
105114
transitive-sim-Large-Ab =
106115
transitive-sim-Large-Group (large-group-Large-Ab G)
116+
117+
sim-eq-Large-Ab :
118+
{l : Level} {x y : type-Large-Ab G l} →
119+
x = y → sim-Large-Ab x y
120+
sim-eq-Large-Ab = sim-eq-Large-Group (large-group-Large-Ab G)
121+
122+
eq-sim-Large-Ab :
123+
{l : Level} {x y : type-Large-Ab G l} →
124+
sim-Large-Ab x y → x = y
125+
eq-sim-Large-Ab {x = x} {y = y} =
126+
eq-sim-Large-Group (large-group-Large-Ab G) x y
107127
```
108128

109129
### Raising universe levels
@@ -173,6 +193,35 @@ module _
173193
raise-zero-Large-Ab lzero = zero-Large-Ab G
174194
raise-unit-lzero-Large-Ab =
175195
raise-unit-lzero-Large-Group (large-group-Large-Ab G)
196+
197+
preserves-sim-left-add-Large-Ab :
198+
{l1 l2 l3 : Level} →
199+
(y : type-Large-Ab G l1) →
200+
(x : type-Large-Ab G l2) (x' : type-Large-Ab G l3) →
201+
sim-Large-Ab G x x' →
202+
sim-Large-Ab G (add-Large-Ab G x y) (add-Large-Ab G x' y)
203+
preserves-sim-left-add-Large-Ab =
204+
preserves-sim-left-mul-Large-Group (large-group-Large-Ab G)
205+
206+
preserves-sim-right-add-Large-Ab :
207+
{l1 l2 l3 : Level} →
208+
(x : type-Large-Ab G l1) →
209+
(y : type-Large-Ab G l2) (y' : type-Large-Ab G l3) →
210+
sim-Large-Ab G y y' →
211+
sim-Large-Ab G (add-Large-Ab G x y) (add-Large-Ab G x y')
212+
preserves-sim-right-add-Large-Ab =
213+
preserves-sim-right-mul-Large-Group (large-group-Large-Ab G)
214+
```
215+
216+
### Similarity reasoning on large abelian groups
217+
218+
```agda
219+
module
220+
similarity-reasoning-Large-Ab
221+
{α : Level → Level} {β : Level → Level → Level} (G : Large-Ab α β)
222+
where
223+
224+
open similarity-reasoning-Large-Group (large-group-Large-Ab G) public
176225
```
177226

178227
### Group properties of large abelian groups
@@ -203,6 +252,18 @@ module _
203252
add-Large-Ab G x (zero-Large-Ab G) = x
204253
right-unit-law-add-Large-Ab =
205254
right-unit-law-mul-Large-Group (large-group-Large-Ab G)
255+
256+
left-inverse-law-add-Large-Ab :
257+
{l : Level} (x : type-Large-Ab G l) →
258+
add-Large-Ab G (neg-Large-Ab G x) x = raise-zero-Large-Ab G l
259+
left-inverse-law-add-Large-Ab =
260+
left-inverse-law-mul-Large-Group (large-group-Large-Ab G)
261+
262+
right-inverse-law-add-Large-Ab :
263+
{l : Level} (x : type-Large-Ab G l) →
264+
add-Large-Ab G x (neg-Large-Ab G x) = raise-zero-Large-Ab G l
265+
right-inverse-law-add-Large-Ab =
266+
right-inverse-law-mul-Large-Group (large-group-Large-Ab G)
206267
```
207268

208269
### The negation of the identity is the identity
@@ -263,7 +324,7 @@ module _
263324
add-Large-Ab G (neg-Large-Ab G x) (neg-Large-Ab G y)
264325
distributive-neg-add-Large-Ab x y =
265326
( distributive-inv-mul-Large-Group (large-group-Large-Ab G) x y) ∙
266-
( commutative-add-Large-Ab G _ _)
327+
( commutative-add-Large-Ab G (neg-Large-Ab G y) (neg-Large-Ab G x))
267328
```
268329

269330
### Negation is an involution
@@ -447,3 +508,53 @@ module _
447508
( ab-Large-Ab G (l1 ⊔ l2))
448509
hom-raise-Large-Ab = hom-raise-Large-Group (large-group-Large-Ab G) l1 l2
449510
```
511+
512+
### If `x + x = x`, `x` is similar to 0
513+
514+
```agda
515+
module _
516+
{α : Level → Level} {β : Level → Level → Level} (G : Large-Ab α β)
517+
where
518+
519+
abstract
520+
sim-zero-is-idempotent-add-Large-Ab :
521+
{l : Level} (x : type-Large-Ab G l) →
522+
add-Large-Ab G x x = x →
523+
sim-Large-Ab G x (zero-Large-Ab G)
524+
sim-zero-is-idempotent-add-Large-Ab {l} x x+x=x =
525+
let
526+
open similarity-reasoning-Large-Ab G
527+
in
528+
similarity-reasoning
529+
x
530+
~ add-Large-Ab G x (zero-Large-Ab G)
531+
by sim-eq-Large-Ab G (inv (right-unit-law-add-Large-Ab G x))
532+
~ add-Large-Ab G x (raise-zero-Large-Ab G l)
533+
by
534+
preserves-sim-right-add-Large-Ab G _ _ _
535+
( sim-raise-Large-Ab G _ _)
536+
~ add-Large-Ab G x (add-Large-Ab G x (neg-Large-Ab G x))
537+
by
538+
sim-eq-Large-Ab G
539+
( ap-add-Large-Ab G
540+
( refl)
541+
( inv (right-inverse-law-add-Large-Ab G x)))
542+
~ add-Large-Ab G (add-Large-Ab G x x) (neg-Large-Ab G x)
543+
by sim-eq-Large-Ab G (inv (associative-add-Large-Ab G _ _ _))
544+
~ add-Large-Ab G x (neg-Large-Ab G x)
545+
by sim-eq-Large-Ab G (ap-add-Large-Ab G x+x=x refl)
546+
~ raise-zero-Large-Ab G l
547+
by sim-eq-Large-Ab G (right-inverse-law-add-Large-Ab G x)
548+
~ zero-Large-Ab G
549+
by sim-raise-Large-Ab' G _ _
550+
551+
eq-zero-is-idempotent-add-Large-Ab :
552+
{l : Level} (x : type-Large-Ab G l) →
553+
add-Large-Ab G x x = x →
554+
x = raise-zero-Large-Ab G l
555+
eq-zero-is-idempotent-add-Large-Ab {l} x x+x=x =
556+
eq-sim-Large-Ab G
557+
( transitive-sim-Large-Ab G _ _ _
558+
( sim-raise-Large-Ab G l (zero-Large-Ab G))
559+
( sim-zero-is-idempotent-add-Large-Ab x x+x=x))
560+
```

src/linear-algebra.lagda.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ open import linear-algebra.finite-sequences-in-rings public
2222
open import linear-algebra.finite-sequences-in-semigroups public
2323
open import linear-algebra.finite-sequences-in-semirings public
2424
open import linear-algebra.functoriality-matrices public
25+
open import linear-algebra.large-left-modules-large-rings public
2526
open import linear-algebra.left-modules-commutative-rings public
2627
open import linear-algebra.left-modules-rings public
2728
open import linear-algebra.left-submodules-rings public

0 commit comments

Comments
 (0)