Skip to content

Commit dda797a

Browse files
lowassermalarbol
andauthored
Linear maps over modules (#1395)
There's certainly more properties we can add here, but I ended up building this as I was thinking about more general vector spaces. (Because of the complexities around fields in constructive contexts -- e.g. that the reals aren't quite a field under the normal definition; you have to substitute apartness from zero -- defining things in terms of modules seems ideal where possible.) --------- Co-authored-by: malarbol <[email protected]>
1 parent c33a72e commit dda797a

11 files changed

+1064
-556
lines changed

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

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -566,6 +566,23 @@ module _
566566
neg-right-subtraction-Ab = inv-right-div-Group (group-Ab A)
567567
```
568568

569+
### If `x + y = 0`, then `y = -x` and `x = -y`
570+
571+
```agda
572+
module _
573+
{l : Level} (A : Ab l)
574+
where
575+
576+
abstract
577+
unique-right-neg-Ab :
578+
(x y : type-Ab A) → is-zero-Ab A (add-Ab A x y) → y = neg-Ab A x
579+
unique-right-neg-Ab = unique-right-inv-Group (group-Ab A)
580+
581+
unique-left-neg-Ab :
582+
(x y : type-Ab A) → is-zero-Ab A (add-Ab A x y) → x = neg-Ab A y
583+
unique-left-neg-Ab = unique-left-inv-Group (group-Ab A)
584+
```
585+
569586
### The sum of `-x + y` and `-y + z` is `-x + z`
570587

571588
```agda

src/group-theory/groups.lagda.md

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -495,23 +495,24 @@ module _
495495
is-unit-right-div-eq-Group refl = right-inverse-law-mul-Group G _
496496
```
497497

498-
### If `xy = 1`, `y = x⁻¹`
498+
### If `xy = 1`, then `y = x⁻¹`
499499

500500
```agda
501-
unique-right-inv-Group :
502-
(x y : type-Group G) →
503-
is-unit-Group G (mul-Group G x y) →
504-
y = inv-Group G x
505-
unique-right-inv-Group x y xy=1 =
506-
equational-reasoning
507-
y
508-
= left-div-Group x (unit-Group G)
509-
by transpose-eq-mul-Group' xy=1
510-
= inv-Group G x
511-
by right-unit-law-mul-Group G (inv-Group G x)
501+
abstract
502+
unique-right-inv-Group :
503+
(x y : type-Group G) →
504+
is-unit-Group G (mul-Group G x y) →
505+
y = inv-Group G x
506+
unique-right-inv-Group x y xy=1 =
507+
equational-reasoning
508+
y
509+
= left-div-Group x (unit-Group G)
510+
by transpose-eq-mul-Group' xy=1
511+
= inv-Group G x
512+
by right-unit-law-mul-Group G (inv-Group G x)
512513
```
513514

514-
### If `xy = 1`, `x = y⁻¹`
515+
### If `xy = 1`, then `x = y⁻¹`
515516

516517
```agda
517518
unique-left-inv-Group :

src/linear-algebra.lagda.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,12 @@ open import linear-algebra.finite-sequences-in-euclidean-domains public
1414
open import linear-algebra.finite-sequences-in-rings public
1515
open import linear-algebra.finite-sequences-in-semirings public
1616
open import linear-algebra.functoriality-matrices public
17+
open import linear-algebra.left-modules-rings public
18+
open import linear-algebra.linear-maps-left-modules-rings public
1719
open import linear-algebra.matrices public
1820
open import linear-algebra.matrices-on-rings public
1921
open import linear-algebra.multiplication-matrices public
22+
open import linear-algebra.right-modules-rings public
2023
open import linear-algebra.scalar-multiplication-matrices public
2124
open import linear-algebra.scalar-multiplication-tuples public
2225
open import linear-algebra.scalar-multiplication-tuples-on-rings public

0 commit comments

Comments
 (0)