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]].