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.
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)
Construct a permutation, as an element of the group algebra, from a list of cycles.
p [[1,2],[3,4,5]] constructs the permutation (1 2)(3 4 5), which is displayed