Skip to content

Commit 882c56c

Browse files
committed
comment: extensively on Subbimodule
1 parent 18d99ef commit 882c56c

File tree

1 file changed

+28
-1
lines changed

1 file changed

+28
-1
lines changed

src/Algebra/Module/Construct/Sub/Bimodule.agda

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,15 @@
22
-- The Agda standard library
33
--
44
-- Definition of sub-bimodules
5+
--
6+
-- This is based on Nathan van Doorn (Taneb)'s PR
7+
-- https://github.com/agda/agda-stdlib/pull/2852
8+
-- but uses the `Algebra.Construct.Sub.AbelianGroup` module
9+
-- to plumb in that any sub-bimodule of a `Bimodule` defines
10+
-- a sub-AbelianGroup, hence a `NormalSubgroup`, so that when
11+
-- an ideal in a `Ring` is defined as a suitable sub-bimodule,
12+
-- the quotient structure of the additive subgroup is immediate,
13+
-- on which the quotient `Ring` structure may then be defined.
514
------------------------------------------------------------------------
615

716
{-# OPTIONS --cubical-compatible --safe #-}
@@ -32,9 +41,21 @@ open import Algebra.Construct.Sub.AbelianGroup M.+ᴹ-abelianGroup
3241
record Subbimodule cm′ ℓm′ : Set (cr ⊔ cs ⊔ cm ⊔ ℓm ⊔ suc (cm′ ⊔ ℓm′)) where
3342
field
3443
domain : RawBimodule R.Carrier S.Carrier cm′ ℓm′
35-
ι : _ M.Carrierᴹ
44+
45+
-- As with `Algebra.Construct.Sub.Group{.Normal}`, we refrain from explicit
46+
-- naming of the source type of the underlying function. In terms of the
47+
-- `RawBimodule` signature, this is `Carrierᴹ`, which will also be,
48+
-- definitionally, the `Carrier` of the associated `(Abelian)Group` sub-bundle
49+
-- defined by `ι.+ᴹ-isGroupMonomorphism` below.
50+
51+
ι : _ M.Carrierᴹ -- where _ = RawBimodule.Carrierᴹ domain
52+
3653
ι-monomorphism : IsBimoduleMonomorphism domain M.rawBimodule ι
3754

55+
-- As with `Algebra.Construct.Sub.Group`, we create a module out of the
56+
-- `IsBimoduleMonomorphism` field, allowing us to expose its rich derived
57+
-- substructures, here specifically, the `+ᴹ-isGroupMonomorphism` definition.
58+
3859
module ι = IsBimoduleMonomorphism ι-monomorphism
3960

4061
bimodule : Bimodule R S _ _
@@ -48,6 +69,12 @@ record Subbimodule cm′ ℓm′ : Set (cr ⊔ cs ⊔ cm ⊔ ℓm ⊔ suc (cm′
4869
subgroup : Subgroup cm′ ℓm′
4970
subgroup = record { ι-monomorphism = ι.+ᴹ-isGroupMonomorphism }
5071

72+
-- Exporting these two fields, but *without* their types, allows us to
73+
-- avoid explicit import of `Algebra.Construct.Sub.Group.Normal`, in
74+
-- favour of their encapsulation in `Algebra.Construct.Sub.AbelianGroup`.
75+
76+
-- isNormal : Algebra.Construct.Sub.Group.Normal.IsNormal M.+ᴹ-group subgroup
5177
isNormal = AbelianSubgroup.isNormal subgroup
5278

79+
-- normalSubgroup : Algebra.Construct.Sub.Group.Normal.NormalSubgroup M.+ᴹ-group _ _
5380
normalSubgroup = AbelianSubgroup.normalSubgroup subgroup

0 commit comments

Comments
 (0)