Safe Haskell | Safe-Infered |
---|

A module for doing arithmetic in the group algebra.

Group elements are represented as permutations of the integers, and are entered and displayed
using a Haskell-friendly version of cycle notation. For example, the permutation (1 2 3)(4 5)
would be entered as `p [[1,2,3],[4,5]]`

, and displayed as [[1,2,3],[4,5]].

Given a field K and group G, the group algebra KG is the free K-vector space over the elements of G.
Elements of the group algebra consists of arbitrary K-linear combinations of elements of G.
For example, `p [[1,2,3]] + 2 * p [[1,2],[3,4]]`

- type GroupAlgebra k = Vect k (Permutation Int)
- p :: [[Int]] -> GroupAlgebra Q
- newtype X a = X a
- inv :: (Num a1, Ord a1, Show a1, Algebra (Vect Q (Glex (X a1))) a1) => Vect Q a1 -> Either [Vect Q (Glex (X a1))] [Vect Q (Glex (X a1))]
- maybeInverse :: (Num b, Ord b, Show b, Algebra (Vect Q (Glex (X b))) b) => Vect Q b -> Maybe (Vect Q b)

# Documentation

type GroupAlgebra k = Vect k (Permutation Int)Source

p :: [[Int]] -> GroupAlgebra QSource

Construct a permutation, as an element of the group algebra, from a list of cycles.
For example, `p [[1,2],[3,4,5]]`

constructs the permutation (1 2)(3 4 5), which is displayed
as [[1,2],[3,4,5]].