group-theory-0.2.1.0: The theory of groups
Copyright (c) 2020-2021 Emily Pillmore BSD-style Emily Pillmore , Reed Mullanix Safe Haskell2010

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
 Source # Instance detailsDefined in Data.Group.Finite Source # Instance detailsDefined in Data.Group.Finite FiniteGroup a => FiniteGroup (Dual a) Source # Instance detailsDefined in Data.Group.Finite (Bounded a, Num a) => FiniteGroup (Sum a) Source # Instance detailsDefined in Data.Group.Finite (FiniteGroup a, FiniteGroup b) => FiniteGroup (a, b) Source # Instance detailsDefined in Data.Group.Finite FiniteGroup a => FiniteGroup (Proxy a) Source # Instance detailsDefined in Data.Group.Finite (FiniteGroup a, FiniteGroup b, FiniteGroup c) => FiniteGroup (a, b, c) Source # Instance detailsDefined in Data.Group.Finite FiniteGroup a => FiniteGroup (Const a b) Source # Instance detailsDefined in Data.Group.Finite (FiniteGroup a, FiniteGroup b, FiniteGroup c, FiniteGroup d) => FiniteGroup (a, b, c, d) Source # Instance detailsDefined in Data.Group.Finite (FiniteGroup a, FiniteGroup b, FiniteGroup c, FiniteGroup d, FiniteGroup e) => FiniteGroup (a, b, c, d, e) Source # Instance detailsDefined 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:

>>> take 3 \$ safeClassify (< (3 :: Sum Word8))
[Sum {getSum = 1},Sum {getSum = 2}]


# Finite abelian groups

class FiniteGroup g => FiniteAbelianGroup g Source #

Commutative FiniteGroups

#### Instances

Instances details
 Source # Instance detailsDefined in Data.Group.Finite Source # Instance detailsDefined in Data.Group.Finite Source # Instance detailsDefined in Data.Group.Finite (Num a, Bounded a) => FiniteAbelianGroup (Sum a) Source # Instance detailsDefined in Data.Group.Finite (FiniteAbelianGroup a, FiniteAbelianGroup b) => FiniteAbelianGroup (a, b) Source # Instance detailsDefined in Data.Group.Finite Source # Instance detailsDefined in Data.Group.Finite (FiniteAbelianGroup a, FiniteAbelianGroup b, FiniteAbelianGroup c) => FiniteAbelianGroup (a, b, c) Source # Instance detailsDefined in Data.Group.Finite Source # Instance detailsDefined in Data.Group.Finite (FiniteAbelianGroup a, FiniteAbelianGroup b, FiniteAbelianGroup c, FiniteAbelianGroup d) => FiniteAbelianGroup (a, b, c, d) Source # Instance detailsDefined in Data.Group.Finite (FiniteAbelianGroup a, FiniteAbelianGroup b, FiniteAbelianGroup c, FiniteAbelianGroup d, FiniteAbelianGroup e) => FiniteAbelianGroup (a, b, c, d, e) Source # Instance detailsDefined in Data.Group.Finite