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

Safe HaskellNone
LanguageHaskell98

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 where Source

Monoid

Methods

munit :: m Source

mmult :: m -> m -> m Source

class Algebra k b where Source

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 b Source

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

Instances

(Eq k, Num k) => Algebra k () Source 
(Eq k, Num k) => Algebra k LaurentMonomial Source 
(Eq k, Num k) => Algebra k M3 Source 
(Eq k, Num k) => Algebra k Mat2 Source 
(Eq k, Num k) => Algebra k HBasis Source 
(Eq k, Num k) => Algebra k OBasis Source 
(Eq k, Num k) => Algebra k NSym Source 
(Eq k, Num k) => Algebra k SymH Source 
(Eq k, Num k) => Algebra k SymE Source 
(Eq k, Num k) => Algebra k SymM Source 
(Eq k, Num k) => Algebra k QSymF Source 
(Eq k, Num k) => Algebra k QSymM Source 
(Eq k, Num k) => Algebra k YSymM Source 
(Eq k, Num k) => Algebra k SSymM Source 
(Eq k, Num k) => Algebra k SSymF Source 
(Eq k, Num k) => Algebra k QNFBasis Source 
(Eq k, Num k, Ord v) => Algebra k (GlexMonomial v) Source 
(Eq k, Num k, Ord v) => Algebra k (NonComMonomial v) Source 
(Eq k, Num k, Ord a) => Algebra k (ExteriorAlgebra a) Source 
(Eq k, Num k, Ord a) => Algebra k (SymmetricAlgebra a) Source 
(Eq k, Num k, Ord a) => Algebra k (TensorAlgebra a) Source 
(Eq k, Num k, Ord v, Show v) => Algebra k (Grevlex v) Source 
(Eq k, Num k, Ord v, Show v) => Algebra k (Glex v) Source 
(Eq k, Num k, Ord v, Show v) => Algebra k (Lex v) Source 
(Eq k, Num k, Ord a) => Algebra k (YSymF a) Source 
(Eq k, Num k) => Algebra k (Dual SSymF) Source 
(Eq k, Num k, Ord a) => Algebra k (Shuffle a) Source 
(Eq k, Num k, Ord a) => Algebra k (Interval a) Source

The incidence algebra of a poset is the free k-vector space having as its basis the set of intervals in the poset, with multiplication defined by concatenation of intervals. The incidence algebra can also be thought of as the vector space of functions from intervals to k, with multiplication defined by the convolution (f*g)(x,y) = sum [ f(x,z) g(z,y) | x <= z <= y ].

Algebra Q (SL2 ABCD) Source 
(Eq k, Num k, Ord a, Ord b, Algebra k a, Algebra k b) => Algebra k (Tensor a b) Source

The tensor product of k-algebras can itself be given the structure of a k-algebra

(Eq k, Num k, Ord a, Ord b, Algebra k a, Algebra k b) => Algebra k (DSum a b) Source

The direct sum of k-algebras can itself be given the structure of a k-algebra. This is the product object in the category of k-algebras.

(Eq k, Num k, Ord a, Mon a, Ord b, Mon b) => Algebra k (Elim2 a b) Source 
Algebra (LaurentPoly Q) (SL2q String) Source 
Algebra (LaurentPoly Q) (M2q String) Source 
Algebra (LaurentPoly Q) (Aq02 String) Source 
Algebra (LaurentPoly Q) (Aq20 String) Source 

unit' :: (Eq k, Num k, Algebra k b) => Vect k () -> Vect k b Source

Sometimes it is more convenient to work with this version of unit.

class Coalgebra k b where Source

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

Methods

counit :: Vect k b -> k Source

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

Instances

(Eq k, Num k) => Coalgebra k EBasis Source 
(Eq k, Num k) => Coalgebra k () Source 
(Eq k, Num k) => Coalgebra k Mat2' Source 
(Eq k, Num k) => Coalgebra k NSym Source 
(Eq k, Num k) => Coalgebra k SymH Source 
(Eq k, Num k) => Coalgebra k SymE Source 
(Eq k, Num k) => Coalgebra k SymM Source 
(Eq k, Num k) => Coalgebra k QSymF Source 
(Eq k, Num k) => Coalgebra k QSymM Source 
(Eq k, Num k) => Coalgebra k YSymM Source 
(Eq k, Num k) => Coalgebra k SSymM Source 
(Eq k, Num k) => Coalgebra k SSymF Source 
(Eq k, Num k, Ord m, Mon m) => Coalgebra k (MonoidCoalgebra m) Source 
(Eq k, Num k) => Coalgebra k (SetCoalgebra b) Source 
(Eq k, Num k) => Coalgebra k (GlexMonomial v) Source 
(Eq k, Num k, Ord c) => Coalgebra k (TensorCoalgebra c) Source 
(Eq k, Num k) => Coalgebra k (Dual HBasis) Source 
(Eq k, Num k, Ord a) => Coalgebra k (YSymF a) Source 
(Eq k, Num k) => Coalgebra k (Dual SSymF) Source 
(Eq k, Num k, Ord a) => Coalgebra k (Shuffle a) Source 
(Eq k, Num k, Ord a) => Coalgebra k (Interval a) Source 
Coalgebra Q (SL2 ABCD) Source 
(Eq k, Num k, Ord a, Ord b, Coalgebra k a, Coalgebra k b) => Coalgebra k (Tensor a b) Source

The tensor product of k-coalgebras can itself be given the structure of a k-coalgebra

(Eq k, Num k, Ord a, Ord b, Coalgebra k a, Coalgebra k b) => Coalgebra k (DSum a b) Source

The direct sum of k-coalgebras can itself be given the structure of a k-coalgebra. This is the coproduct object in the category of k-coalgebras.

Coalgebra (LaurentPoly Q) (SL2q String) Source 
Coalgebra (LaurentPoly Q) (M2q String) Source 

counit' :: (Eq k, Num k, Coalgebra k b) => Vect k b -> Vect k () Source

Sometimes it is more convenient to work with this version of counit.

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

A bialgebra is an algebra which is also a coalgebra, subject to the compatibility conditions that counit and comult must be algebra morphisms (or equivalently, that unit and mult must be coalgebra morphisms)

Instances

class Bialgebra k b => HopfAlgebra k b where Source

Methods

antipode :: Vect k b -> Vect k b Source

newtype SetCoalgebra b Source

Constructors

SC b 

Instances

newtype MonoidCoalgebra m Source

Constructors

MC m 

class Algebra k a => Module k a m where Source

Methods

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

Instances

Algebra k a => Module k a a Source 
(Eq k, Num k) => Module k Mat2 EBasis Source 
(Eq k, 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) Source 
(Eq k, 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) Source 

(*.) :: (Num k, Module k a m) => Vect k a -> Vect k m -> Vect k m Source

class Coalgebra k c => Comodule k c n where Source

Methods

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

Instances

Coalgebra k c => Comodule k c c Source 
(Eq k, 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) Source 
Comodule (LaurentPoly Q) (M2q String) (Aq20 String) Source 

class HasPairing k u v where Source

A pairing is a non-degenerate bilinear form U x V -> k. We are typically interested in pairings having additional properties. For example:

  • A bialgebra pairing is a pairing between bialgebras A and B such that the mult in A is adjoint to the comult in B, and vice versa, and the unit in A is adjoint to the counit in B, and vice versa.
  • A Hopf pairing is a bialgebra pairing between Hopf algebras A and B such that the antipodes in A and B are adjoint.

Methods

pairing :: Vect k (Tensor u v) -> Vect k () Source

Instances

(Eq k, Num k) => HasPairing k () () Source 
(Eq k, Num k) => HasPairing k NSym QSymM Source

A duality pairing between NSym and QSymM (monomial basis), showing that NSym and QSym are dual.

(Eq k, Num k) => HasPairing k SymH SymM Source

A duality pairing between the complete and monomial bases of Sym, showing that Sym is self-dual.

(Eq k, Num k) => HasPairing k SSymF SSymF Source

A pairing showing that SSym is self-adjoint

(Eq k, Num k) => HasPairing k SSymF (Dual SSymF) Source 
(Eq k, Num k, HasPairing k u v, HasPairing k u' v') => HasPairing k (Tensor u u') (Tensor v v') Source 

pairing' :: (Num k, HasPairing k u v) => Vect k u -> Vect k v -> k Source

The pairing function with a more Haskellish type signature