group-theory-0.2.2: The theory of groups
Copyright(c) 2020-2021 Emily Pillmore
LicenseBSD-style
MaintainerEmily Pillmore <emilypi@cohomolo.gy>, Reed Mullanix <reedmullanix@gmail.com>
Safe HaskellSafe
LanguageHaskell2010

Data.Group.Finite

Description

 
Synopsis

Finite groups

class (Group g, Bounded g) => FiniteGroup g Source #

A FiniteGroup is a Group whose underlying set is finite. This is equivalently a group object in \( FinSet \).

Finite groups often arise when considering symmetry of mathematical or physical objects, when those objects admit just a finite number of structure-preserving transformations. Important examples of finite groups include cyclic groups and permutation groups.

Instances

Instances details
FiniteGroup () Source # 
Instance details

Defined in Data.Group.Finite

FiniteGroup a => FiniteGroup (Identity a) Source # 
Instance details

Defined in Data.Group.Finite

FiniteGroup a => FiniteGroup (Dual a) Source # 
Instance details

Defined in Data.Group.Finite

(Bounded a, Num a) => FiniteGroup (Sum a) Source # 
Instance details

Defined in Data.Group.Finite

(FiniteGroup a, FiniteGroup b) => FiniteGroup (a, b) Source # 
Instance details

Defined in Data.Group.Finite

FiniteGroup a => FiniteGroup (Proxy a) Source # 
Instance details

Defined in Data.Group.Finite

(FiniteGroup a, FiniteGroup b, FiniteGroup c) => FiniteGroup (a, b, c) Source # 
Instance details

Defined in Data.Group.Finite

FiniteGroup a => FiniteGroup (Const a b) Source # 
Instance details

Defined in Data.Group.Finite

(FiniteGroup a, FiniteGroup b, FiniteGroup c, FiniteGroup d) => FiniteGroup (a, b, c, d) Source # 
Instance details

Defined in Data.Group.Finite

(FiniteGroup a, FiniteGroup b, FiniteGroup c, FiniteGroup d, FiniteGroup e) => FiniteGroup (a, b, c, d, e) Source # 
Instance details

Defined in Data.Group.Finite

Finite group combinators

finiteOrder :: (Eq g, FiniteGroup g) => g -> Natural Source #

Calculate the exponent of a particular element in a finite group.

Examples:

>>> finiteOrder @(Sum Word8) 3
256

safeClassify :: (Eq a, Cyclic a, FiniteGroup a) => (a -> Bool) -> [a] Source #

Classify elements of a finite Cyclic group.

Apply a classifying function a -> Bool to the elements of a Cyclic group as generated by its designated generator. This is a safer version of classify, that is gauranteed to terminate.

Examples:

>>> safeClassify @(Sum Word8) (< 3)
[Sum {getSum = 1},Sum {getSum = 2},Sum {getSum = 0}]

Finite abelian groups

class FiniteGroup g => FiniteAbelianGroup g Source #

Commutative FiniteGroups

Instances

Instances details
FiniteAbelianGroup () Source # 
Instance details

Defined in Data.Group.Finite

FiniteAbelianGroup a => FiniteAbelianGroup (Identity a) Source # 
Instance details

Defined in Data.Group.Finite

FiniteAbelianGroup a => FiniteAbelianGroup (Dual a) Source # 
Instance details

Defined in Data.Group.Finite

(Num a, Bounded a) => FiniteAbelianGroup (Sum a) Source # 
Instance details

Defined in Data.Group.Finite

(FiniteAbelianGroup a, FiniteAbelianGroup b) => FiniteAbelianGroup (a, b) Source # 
Instance details

Defined in Data.Group.Finite

FiniteAbelianGroup a => FiniteAbelianGroup (Proxy a) Source # 
Instance details

Defined in Data.Group.Finite

(FiniteAbelianGroup a, FiniteAbelianGroup b, FiniteAbelianGroup c) => FiniteAbelianGroup (a, b, c) Source # 
Instance details

Defined in Data.Group.Finite

FiniteAbelianGroup a => FiniteAbelianGroup (Const a b) Source # 
Instance details

Defined in Data.Group.Finite

(FiniteAbelianGroup a, FiniteAbelianGroup b, FiniteAbelianGroup c, FiniteAbelianGroup d) => FiniteAbelianGroup (a, b, c, d) Source # 
Instance details

Defined in Data.Group.Finite

(FiniteAbelianGroup a, FiniteAbelianGroup b, FiniteAbelianGroup c, FiniteAbelianGroup d, FiniteAbelianGroup e) => FiniteAbelianGroup (a, b, c, d, e) Source # 
Instance details

Defined in Data.Group.Finite