module Algebra.Ring.Module.Action where
Modules as actions🔗
While the record Module-on
expresses the possible
-module
structures on a type
,
including the scalar multiplication and the addition making
into an abelian
group, it’s sometimes fruitful to consider the
-module
structures on an abelian group
,
which is then regarded as an indivisible unit.
The difference is in the quantification: the latter perspective, developed in this module, allows us to “fix” the addition, and let only the scalar multiplication vary. The ordinary definition of -module, which is consistent with our other algebraic structures, only allows us to vary the underlying type (and the base ring).
record Ring-action {ℓg} {T : Type ℓg} (G : Abelian-group-on T) : Type (ℓ ⊔ ℓg) where
instance _ = G
field
_⋆_ : ⌞ R ⌟ → T → T
: ∀ r x y → r ⋆ (x + y) ≡ (r ⋆ x) + (r ⋆ y)
⋆-distribl : ∀ r s x → (r R.+ s) ⋆ x ≡ (r ⋆ x) + (s ⋆ x)
⋆-distribr : ∀ r s x → r ⋆ (s ⋆ x) ≡ (r R.* s) ⋆ x
⋆-assoc : ∀ x → R.1r ⋆ x ≡ x ⋆-id
We refer to an “-module structure on an abelian group ” as a ring action of on , for short. The definition is unsurprising: we bundle the scalar multiplication together with the proofs that this is, indeed, an -module structure.
The reason for allowing the extra dimension in quantification is the following theorem: There is an equivalence between actions of on and ring morphisms into the endomorphism ring of .
Action→Hom: (G : Abelian-group ℓ)
→ Ring-action (G .snd) → Rings.Hom R (Endo Ab-ab-category G)
Hom→Action: (G : Abelian-group ℓ)
→ Rings.Hom R (Endo Ab-ab-category G) → Ring-action (G .snd)
.Ring-action._⋆_ x y = rhom # x # y
Hom→Action G rhom .Ring-action.⋆-distribl r x y = (rhom # r) .preserves .is-group-hom.pres-⋆ _ _
Hom→Action G rhom .Ring-action.⋆-distribr r s x = rhom .preserves .is-ring-hom.pres-+ r s #ₚ x
Hom→Action G rhom .Ring-action.⋆-assoc r s x = sym (rhom .preserves .is-ring-hom.pres-* r s #ₚ x)
Hom→Action G rhom .Ring-action.⋆-id x = rhom .preserves .is-ring-hom.pres-id #ₚ x
Hom→Action G rhom
.hom r .hom = act .Ring-action._⋆_ r
Action→Hom G act .hom r .preserves .is-group-hom.pres-⋆ x y = act .Ring-action.⋆-distribl r x y
Action→Hom G act .preserves .is-ring-hom.pres-id = Homomorphism-path λ i → act .Ring-action.⋆-id _
Action→Hom G act .preserves .is-ring-hom.pres-+ x y = Homomorphism-path λ i → act .Ring-action.⋆-distribr _ _ _
Action→Hom G act .preserves .is-ring-hom.pres-* r s = Homomorphism-path λ x → sym (act .Ring-action.⋆-assoc _ _ _)
Action→Hom G act
Action≃Hom: (G : Abelian-group ℓ)
→ Ring-action (G .snd) ≃ Rings.Hom R (Endo Ab-ab-category G)
= Iso→Equiv $ Action→Hom G , iso (Hom→Action G)
Action≃Hom G (λ x → trivial!)
(λ x → refl)