HaskellForMaths-0.3.2: Combinatorics, group theory, commutative algebra, non-commutative algebra

Math.Algebras.Structures

Description

A module defining various algebraic structures that can be defined on vector spaces - specifically algebra, coalgebra, bialgebra, Hopf algebra, module, comodule

Synopsis

Documentation

class Mon m whereSource

Monoid

Methods

munit :: mSource

mmult :: m -> m -> mSource

class Algebra k b whereSource

Caution: If we declare an instance Algebra k b, then we are saying that the vector space Vect k b is a k-algebra. In other words, we are saying that b is the basis for a k-algebra. So a more accurate name for this class would have been AlgebraBasis.

Methods

unit :: k -> Vect k bSource

mult :: Vect k (Tensor b b) -> Vect k bSource

Instances

Num k => Algebra k () 
Num k => Algebra k LaurentMonomial 
Num k => Algebra k M3 
Num k => Algebra k Mat2 
Num k => Algebra k HBasis 
(Num k, Ord v) => Algebra k (GlexMonomial v) 
Num k => Algebra k (Permutation Int) 
(Num k, Ord v) => Algebra k (NonComMonomial v) 
(Num k, Ord a) => Algebra k (ExteriorAlgebra a) 
(Num k, Ord a) => Algebra k (SymmetricAlgebra a) 
(Num k, Ord a) => Algebra k (TensorAlgebra a) 
(Num k, Ord a) => Algebra k [a] 
Algebra Q (SL2 ABCD) 
(Num k, Ord a, Ord b, Algebra k a, Algebra k b) => Algebra k (Tensor a b) 
Algebra (LaurentPoly Q) (SL2q String) 
Algebra (LaurentPoly Q) (M2q String) 
Algebra (LaurentPoly Q) (Aq02 String) 
Algebra (LaurentPoly Q) (Aq20 String) 

class Coalgebra k b whereSource

An instance declaration for Coalgebra k b is saying that the vector space Vect k b is a k-algebra.

Methods

counit :: Vect k b -> kSource

comult :: Vect k b -> Vect k (Tensor b b)Source

class (Algebra k b, Coalgebra k b) => Bialgebra k b Source

A bialgebra is an algebra which is also a coalgebra, subject to some compatibility conditions

class Bialgebra k b => HopfAlgebra k b whereSource

Methods

antipode :: Vect k b -> Vect k bSource

type Trivial k = Vect k ()Source

Trivial k is the field k considered as a k-vector space. In maths, we would not normally make a distinction here, but in the code, we need this if we want to be able to put k as one side of a tensor product.

unit' :: (Num k, Algebra k b) => Trivial k -> Vect k bSource

counit' :: (Num k, Coalgebra k b) => Vect k b -> Trivial kSource

newtype SetCoalgebra b Source

Constructors

SC b 

Instances

Num k => Coalgebra k (SetCoalgebra b) 
Eq b => Eq (SetCoalgebra b) 
Ord b => Ord (SetCoalgebra b) 
Show b => Show (SetCoalgebra b) 

newtype MonoidCoalgebra m Source

Constructors

MC m 

Instances

(Num k, Ord m, Mon m) => Coalgebra k (MonoidCoalgebra m) 
Eq m => Eq (MonoidCoalgebra m) 
Ord m => Ord (MonoidCoalgebra m) 
Show m => Show (MonoidCoalgebra m) 

class Algebra k a => Module k a m whereSource

Methods

action :: Vect k (Tensor a m) -> Vect k mSource

Instances

Algebra k a => Module k a a 
Num k => Module k Mat2 EBasis 
(Num k, Ord a, Ord u, Ord v, Bialgebra k a, Module k a u, Module k a v) => Module k a (Tensor u v) 
Num k => Module k (Permutation Int) Int 
(Num k, Ord a, Ord u, Ord v, Algebra k a, Module k a u, Module k a v) => Module k (Tensor a a) (Tensor u v) 

class Coalgebra k c => Comodule k c n whereSource

Methods

coaction :: Vect k n -> Vect k (Tensor c n)Source

Instances

Coalgebra k c => Comodule k c c 
(Num k, Ord a, Ord m, Ord n, Bialgebra k a, Comodule k a m, Comodule k a n) => Comodule k a (Tensor m n) 
Comodule (LaurentPoly Q) (M2q String) (Aq20 String)