Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
c78eb29
Linear transformations
lowasser Dec 24, 2025
feee9d0
Fix duplicated Agda pointer in concept
lowasser Dec 24, 2025
9c912c5
make pre-commit
lowasser Dec 24, 2025
dfc7491
Merge branch 'master' into linear-transformations
lowasser Dec 26, 2025
d309ab4
Merge branch 'master' into linear-transformations
lowasser Dec 27, 2025
476ead8
Merge branch 'master' into linear-transformations
lowasser Jan 1, 2026
de3a82a
Merge branch 'linear-transformations' of github.com:lowasser/agda-uni…
lowasser Jan 1, 2026
bd1d8df
Merge branch 'master' into linear-transformations
lowasser Jan 7, 2026
dee0e85
Progress
lowasser Jan 7, 2026
4d39c46
Merge branch 'linear-transformations' into quotient-module
lowasser Jan 7, 2026
8593375
Progress
lowasser Jan 7, 2026
46aa18d
Progress
lowasser Jan 8, 2026
627eb1d
Progress
lowasser Jan 8, 2026
e74d635
Merge branch 'master' of github.com:UniMath/agda-unimath
lowasser Jan 8, 2026
ddc4a00
Merge branch 'master' into linear-transformations
lowasser Jan 8, 2026
b8b5a6f
Merge branch 'linear-transformations' of github.com:lowasser/agda-uni…
lowasser Jan 8, 2026
265125b
Merge branch 'master' into linear-transformations
lowasser Jan 11, 2026
7b2df6a
Back out
lowasser Jan 11, 2026
8bf1a77
Merge branch 'master' into linear-transformations
lowasser Jan 11, 2026
f72cc5d
Merge branch 'master' into linear-transformations
lowasser Jan 24, 2026
29170e5
Apply suggestions from code review
lowasser Jan 28, 2026
e75270e
Merge branch 'master' into linear-transformations
lowasser Jan 28, 2026
2d91198
Update
lowasser Jan 28, 2026
9609e14
make pre-commit
lowasser Jan 28, 2026
112c5c6
Apply suggestions from code review
fredrik-bakke Jan 28, 2026
78b1e42
Update
lowasser Jan 29, 2026
55dd26a
Merge branch 'master' into linear-transformations
lowasser Jan 29, 2026
d5cbc48
Merge branch 'linear-transformations' of github.com:lowasser/agda-uni…
lowasser Jan 29, 2026
be7a802
Update comments
lowasser Jan 29, 2026
68fee69
Merge branch 'linear-transformations' into quotient-module
lowasser Feb 2, 2026
8d51346
Merge branch 'master' into quotient-module
lowasser Feb 2, 2026
35cc9ed
Progress
lowasser Feb 2, 2026
36bcdde
Add external link
lowasser Feb 2, 2026
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
13 changes: 8 additions & 5 deletions src/group-theory/quotients-abelian-groups.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,14 @@ open import group-theory.subgroups-abelian-groups

## Idea

Given a subgroup `B` of an abelian group `A`, the quotient group is an abelian
group `A/B` equipped with a group homomorphism `q : A → A/B` such that
`H ⊆ ker q`, and such that `q` satisfies the universal abelian group with the
property that any group homomorphism `f : A → C` such that `B ⊆ ker f` extends
uniquely along `q` to a group homomorphism `A/B → C`.
Given a [subgroup](group-theory.subgroups-abelian-groups.md) `B` of an
[abelian group](group-theory.abelian-groups.md) `A`, the
{{#concept "quotient group" Disambiguation="of an abelian group and a subgroup" Agda=quotient-Ab}}
is an abelian group `A/B` equipped with a
[group homomorphism](group-theory.homomorphisms-abelian-groups.md) `q : A → A/B`
such that `H ⊆ ker q`, and such that `q` satisfies the universal property of the
quotient group that any group homomorphism `f : A → C` such that `B ⊆ ker f`
extends uniquely along `q` to a group homomorphism `A/B → C`.

## Definitions

Expand Down
2 changes: 2 additions & 0 deletions src/linear-algebra.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@ open import linear-algebra.normed-real-vector-spaces public
open import linear-algebra.orthogonality-bilinear-forms-real-vector-spaces public
open import linear-algebra.orthogonality-real-inner-product-spaces public
open import linear-algebra.preimages-of-left-module-structures-along-homomorphisms-of-rings public
open import linear-algebra.quotients-left-modules-rings public
open import linear-algebra.quotients-vector-spaces public
open import linear-algebra.rational-modules public
open import linear-algebra.real-inner-product-spaces public
open import linear-algebra.real-inner-product-spaces-are-normed public
Expand Down
50 changes: 49 additions & 1 deletion src/linear-algebra/left-modules-rings.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ module linear-algebra.left-modules-rings where
```agda
open import elementary-number-theory.ring-of-integers

open import foundation.action-on-identifications-binary-functions
open import foundation.action-on-identifications-functions
open import foundation.dependent-pair-types
open import foundation.equality-dependent-pair-types
Expand Down Expand Up @@ -87,9 +88,22 @@ module _
is-set-type-left-module-Ring = pr2 set-left-module-Ring

add-left-module-Ring :
(x y : type-left-module-Ring) → type-left-module-Ring
type-left-module-Ring → type-left-module-Ring → type-left-module-Ring
add-left-module-Ring = add-Ab ab-left-module-Ring

ap-add-left-module-Ring :
{x x' : type-left-module-Ring} →
x = x' →
{y y' : type-left-module-Ring} →
y = y' →
add-left-module-Ring x y = add-left-module-Ring x' y'
ap-add-left-module-Ring =
ap-binary add-left-module-Ring

diff-left-module-Ring :
type-left-module-Ring → type-left-module-Ring → type-left-module-Ring
diff-left-module-Ring = right-subtraction-Ab ab-left-module-Ring

zero-left-module-Ring : type-left-module-Ring
zero-left-module-Ring = zero-Ab ab-left-module-Ring

Expand Down Expand Up @@ -558,6 +572,40 @@ module _
left-module-hom-left-module-Ring R S h (left-module-ring-Ring S)
```

### Negation is distributive over subtraction

```agda
module _
{l1 l2 : Level} (R : Ring l1) (M : left-module-Ring l2 R)
where

abstract
distributive-neg-diff-left-module-Ring :
(a b : type-left-module-Ring R M) →
neg-left-module-Ring R M (diff-left-module-Ring R M a b) =
diff-left-module-Ring R M b a
distributive-neg-diff-left-module-Ring =
neg-right-subtraction-Ab (ab-left-module-Ring R M)
```

### `(a - b) + (b - c) = a - c`

```agda
module _
{l1 l2 : Level} (R : Ring l1) (M : left-module-Ring l2 R)
where

abstract
add-diff-left-module-Ring :
(a b c : type-left-module-Ring R M) →
add-left-module-Ring R M
( diff-left-module-Ring R M a b)
( diff-left-module-Ring R M b c) =
diff-left-module-Ring R M a c
add-diff-left-module-Ring =
add-right-subtraction-Ab (ab-left-module-Ring R M)
```

## See also

- [Left modules over commutative rings](linear-algebra.left-modules-commutative-rings.md)
Expand Down
12 changes: 12 additions & 0 deletions src/linear-algebra/left-submodules-rings.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ open import group-theory.homomorphisms-abelian-groups
open import group-theory.homomorphisms-semigroups
open import group-theory.monoids
open import group-theory.semigroups
open import group-theory.subgroups-abelian-groups

open import linear-algebra.left-modules-rings
open import linear-algebra.subsets-left-modules-rings
Expand Down Expand Up @@ -94,6 +95,10 @@ module _
subset-left-submodule-Ring =
inclusion-subtype (is-left-submodule-prop-Ring R M) N

is-in-left-submodule-Ring : type-left-module-Ring R M → UU l3
is-in-left-submodule-Ring =
is-in-subtype subset-left-submodule-Ring

type-left-submodule-Ring : UU (l2 ⊔ l3)
type-left-submodule-Ring = type-subtype subset-left-submodule-Ring

Expand Down Expand Up @@ -353,6 +358,13 @@ module _
pr1 ab-left-submodule-Ring = group-left-submodule-Ring
pr2 ab-left-submodule-Ring = commutative-add-left-submodule-Ring

subgroup-ab-left-submodule-Ring : Subgroup-Ab l3 (ab-left-module-Ring R M)
subgroup-ab-left-submodule-Ring =
( subset-left-submodule-Ring R M N ,
contains-zero-left-submodule-Ring R M N ,
is-closed-under-addition-left-submodule-Ring R M N _ _ ,
is-closed-under-negation-left-submodule-Ring R M N _)

endomorphism-ring-left-submodule-Ring : Ring (l2 ⊔ l3)
endomorphism-ring-left-submodule-Ring =
endomorphism-ring-Ab ab-left-submodule-Ring
Expand Down
Loading