mirror of
https://github.com/Smaug123/agdaproofs
synced 2025-10-11 14:48:42 +00:00
35 lines
1.5 KiB
Agda
35 lines
1.5 KiB
Agda
{-# OPTIONS --safe --warning=error --without-K #-}
|
||
|
||
open import LogicalFormulae
|
||
open import Groups.Groups
|
||
open import Groups.Abelian.Definition
|
||
open import Groups.Homomorphisms.Definition
|
||
open import Groups.Definition
|
||
open import Groups.Abelian.Definition
|
||
open import Numbers.Naturals.Naturals
|
||
open import Numbers.Integers.Integers
|
||
open import Setoids.Orders
|
||
open import Setoids.Setoids
|
||
open import Functions
|
||
open import Sets.EquivalenceRelations
|
||
open import Rings.Definition
|
||
open import Modules.Definition
|
||
open import Groups.Cyclic.Definition
|
||
open import Groups.Cyclic.DefinitionLemmas
|
||
|
||
open import Agda.Primitive using (Level; lzero; lsuc; _⊔_)
|
||
|
||
module Modules.Examples where
|
||
|
||
abGrpModule : {a b : _} {A : Set a} {S : Setoid {a} {b} A} {_+_ : A → A → A} {G' : Group S _+_} (G : AbelianGroup G') → Module ℤRing G (λ x i → elementPower G' i x)
|
||
Module.dotWellDefined (abGrpModule {S = S} {G' = G'} G) {m} {n} {g} {h} m=n g=h = transitive (elementPowerWellDefinedG G' g h g=h {m}) (elementPowerWellDefinedZ' G' m n m=n {h})
|
||
where
|
||
open Setoid S
|
||
open Equivalence eq
|
||
Module.dotDistributesLeft (abGrpModule {G' = G'} G) {n} {x} {y} = elementPowerHomAbelian G' (AbelianGroup.commutative G) x y n
|
||
Module.dotDistributesRight (abGrpModule {S = S} {G' = G'} G) {r} {s} {x} = symmetric (elementPowerCollapse G' x r s)
|
||
where
|
||
open Equivalence (Setoid.eq S)
|
||
Module.dotAssociative (abGrpModule {G' = G'} G) {r} {s} {x} = elementPowerMultiplies G' r s x
|
||
Module.dotIdentity (abGrpModule {G' = G'} G) = Group.identRight G'
|