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

Safe HaskellSafe
LanguageHaskell98

Math.Algebras.Structures

Contents

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

Minimal complete definition

munit, mmult

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.

Minimal complete definition

unit, mult

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 # 

Methods

unit :: k -> Vect k () Source #

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

(Eq k, Num k) => Algebra k LaurentMonomial Source # 
(Eq k, Num k) => Algebra k M3 Source # 

Methods

unit :: k -> Vect k M3 Source #

mult :: Vect k (Tensor M3 M3) -> Vect k M3 Source #

(Eq k, Num k) => Algebra k Mat2 Source # 

Methods

unit :: k -> Vect k Mat2 Source #

mult :: Vect k (Tensor Mat2 Mat2) -> Vect 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 # 

Methods

unit :: k -> Vect k NSym Source #

mult :: Vect k (Tensor NSym NSym) -> Vect k NSym Source #

(Eq k, Num k) => Algebra k SymH Source # 

Methods

unit :: k -> Vect k SymH Source #

mult :: Vect k (Tensor SymH SymH) -> Vect k SymH Source #

(Eq k, Num k) => Algebra k SymE Source # 

Methods

unit :: k -> Vect k SymE Source #

mult :: Vect k (Tensor SymE SymE) -> Vect k SymE Source #

(Eq k, Num k) => Algebra k SymM Source # 

Methods

unit :: k -> Vect k SymM Source #

mult :: Vect k (Tensor SymM SymM) -> Vect k SymM Source #

(Eq k, Num k) => Algebra k QSymF Source # 

Methods

unit :: k -> Vect k QSymF Source #

mult :: Vect k (Tensor QSymF QSymF) -> Vect k QSymF Source #

(Eq k, Num k) => Algebra k QSymM Source # 

Methods

unit :: k -> Vect k QSymM Source #

mult :: Vect k (Tensor QSymM QSymM) -> Vect k QSymM Source #

(Eq k, Num k) => Algebra k YSymM Source # 

Methods

unit :: k -> Vect k YSymM Source #

mult :: Vect k (Tensor YSymM YSymM) -> Vect k YSymM Source #

(Eq k, Num k) => Algebra k SSymM Source # 

Methods

unit :: k -> Vect k SSymM Source #

mult :: Vect k (Tensor SSymM SSymM) -> Vect k SSymM Source #

(Eq k, Num k) => Algebra k SSymF Source # 

Methods

unit :: k -> Vect k SSymF Source #

mult :: Vect k (Tensor SSymF SSymF) -> Vect 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 # 

Methods

unit :: k -> Vect k (Grevlex v) Source #

mult :: Vect k (Tensor (Grevlex v) (Grevlex v)) -> Vect k (Grevlex v) Source #

(Eq k, Num k, Ord v, Show v) => Algebra k (Glex v) Source # 

Methods

unit :: k -> Vect k (Glex v) Source #

mult :: Vect k (Tensor (Glex v) (Glex v)) -> Vect k (Glex v) Source #

(Eq k, Num k, Ord v, Show v) => Algebra k (Lex v) Source # 

Methods

unit :: k -> Vect k (Lex v) Source #

mult :: Vect k (Tensor (Lex v) (Lex v)) -> Vect k (Lex v) Source #

(Eq k, Num k, Ord a) => Algebra k (YSymF a) Source # 

Methods

unit :: k -> Vect k (YSymF a) Source #

mult :: Vect k (Tensor (YSymF a) (YSymF a)) -> Vect k (YSymF a) Source #

(Eq k, Num k) => Algebra k (Dual SSymF) Source # 

Methods

unit :: k -> Vect k (Dual SSymF) Source #

mult :: Vect k (Tensor (Dual SSymF) (Dual SSymF)) -> Vect k (Dual SSymF) Source #

(Eq k, Num k, Ord a) => Algebra k (Shuffle a) Source # 

Methods

unit :: k -> Vect k (Shuffle a) Source #

mult :: Vect k (Tensor (Shuffle a) (Shuffle a)) -> Vect 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 ].

Methods

unit :: k -> Vect k (Interval a) Source #

mult :: Vect k (Tensor (Interval a) (Interval a)) -> Vect k (Interval a) Source #

Algebra Q (SL2 ABCD) Source # 

Methods

unit :: Q -> Vect Q (SL2 ABCD) Source #

mult :: Vect Q (Tensor (SL2 ABCD) (SL2 ABCD)) -> Vect 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

Methods

unit :: k -> Vect k (Tensor a b) Source #

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

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

Methods

unit :: k -> Vect k (DSum a b) Source #

mult :: Vect k (Tensor (DSum a b) (DSum a b)) -> Vect k (DSum a b) Source #

(Eq k, Num k, Ord a, Mon a, Ord b, Mon b) => Algebra k (Elim2 a b) Source # 

Methods

unit :: k -> Vect k (Elim2 a b) Source #

mult :: Vect k (Tensor (Elim2 a b) (Elim2 a b)) -> Vect 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.

Minimal complete definition

counit, comult

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 # 

Methods

counit :: Vect k () -> k Source #

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

(Eq k, Num k) => Coalgebra k Mat2' Source # 
(Eq k, Num k) => Coalgebra k NSym Source # 

Methods

counit :: Vect k NSym -> k Source #

comult :: Vect k NSym -> Vect k (Tensor NSym NSym) Source #

(Eq k, Num k) => Coalgebra k SymH Source # 

Methods

counit :: Vect k SymH -> k Source #

comult :: Vect k SymH -> Vect k (Tensor SymH SymH) Source #

(Eq k, Num k) => Coalgebra k SymE Source # 

Methods

counit :: Vect k SymE -> k Source #

comult :: Vect k SymE -> Vect k (Tensor SymE SymE) Source #

(Eq k, Num k) => Coalgebra k SymM Source # 

Methods

counit :: Vect k SymM -> k Source #

comult :: Vect k SymM -> Vect k (Tensor SymM 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 # 

Methods

counit :: Vect k (YSymF a) -> k Source #

comult :: Vect k (YSymF a) -> Vect k (Tensor (YSymF a) (YSymF a)) Source #

(Eq k, Num k) => Coalgebra k (Dual SSymF) Source # 
(Eq k, Num k, Ord a) => Coalgebra k (Shuffle a) Source # 

Methods

counit :: Vect k (Shuffle a) -> k Source #

comult :: Vect k (Shuffle a) -> Vect k (Tensor (Shuffle a) (Shuffle a)) Source #

(Eq k, Num k, Ord a) => Coalgebra k (Interval a) Source # 

Methods

counit :: Vect k (Interval a) -> k Source #

comult :: Vect k (Interval a) -> Vect k (Tensor (Interval a) (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

Methods

counit :: Vect k (Tensor a b) -> k Source #

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

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

Methods

counit :: Vect k (DSum a b) -> k Source #

comult :: Vect k (DSum a b) -> Vect k (Tensor (DSum a b) (DSum a b)) Source #

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

(Eq k, Num k) => Bialgebra k NSym Source # 
(Eq k, Num k) => Bialgebra k SymH Source # 
(Eq k, Num k) => Bialgebra k SymE Source # 
(Eq k, Num k) => Bialgebra k SymM Source # 
(Eq k, Num k) => Bialgebra k QSymF Source # 
(Eq k, Num k) => Bialgebra k QSymM Source # 
(Eq k, Num k) => Bialgebra k YSymM Source # 
(Eq k, Num k) => Bialgebra k SSymM Source # 
(Eq k, Num k) => Bialgebra k SSymF Source # 
(Eq k, Num k, Ord a) => Bialgebra k (YSymF a) Source # 
(Eq k, Num k) => Bialgebra k (Dual SSymF) Source # 
(Eq k, Num k, Ord a) => Bialgebra k (Shuffle a) Source # 
Bialgebra Q (SL2 ABCD) Source # 
Bialgebra (LaurentPoly Q) (SL2q String) Source # 
Bialgebra (LaurentPoly Q) (M2q String) Source # 

class Bialgebra k b => HopfAlgebra k b where Source #

Minimal complete definition

antipode

Methods

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

Instances

(Eq k, Num k) => HopfAlgebra k NSym Source # 

Methods

antipode :: Vect k NSym -> Vect k NSym Source #

(Eq k, Num k) => HopfAlgebra k SymM Source # 

Methods

antipode :: Vect k SymM -> Vect k SymM Source #

(Eq k, Num k) => HopfAlgebra k QSymF Source # 

Methods

antipode :: Vect k QSymF -> Vect k QSymF Source #

(Eq k, Num k) => HopfAlgebra k QSymM Source # 

Methods

antipode :: Vect k QSymM -> Vect k QSymM Source #

(Eq k, Num k) => HopfAlgebra k YSymM Source # 

Methods

antipode :: Vect k YSymM -> Vect k YSymM Source #

(Eq k, Num k) => HopfAlgebra k SSymM Source # 

Methods

antipode :: Vect k SSymM -> Vect k SSymM Source #

(Eq k, Num k) => HopfAlgebra k SSymF Source # 

Methods

antipode :: Vect k SSymF -> Vect k SSymF Source #

(Eq k, Num k, Ord a) => HopfAlgebra k (YSymF a) Source # 

Methods

antipode :: Vect k (YSymF a) -> Vect k (YSymF a) Source #

(Eq k, Num k) => HopfAlgebra k (Dual SSymF) Source # 

Methods

antipode :: Vect k (Dual SSymF) -> Vect k (Dual SSymF) Source #

(Eq k, Num k, Ord a) => HopfAlgebra k (Shuffle a) Source # 

Methods

antipode :: Vect k (Shuffle a) -> Vect k (Shuffle a) Source #

HopfAlgebra Q (SL2 ABCD) Source # 

Methods

antipode :: Vect Q (SL2 ABCD) -> Vect Q (SL2 ABCD) Source #

HopfAlgebra (LaurentPoly Q) (SL2q String) Source # 

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

Minimal complete definition

action

Methods

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

Instances

Algebra k a => Module k a a Source # 

Methods

action :: Vect k (Tensor a a) -> Vect k 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 # 

Methods

action :: Vect k (Tensor a (Tensor u v)) -> Vect k (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 # 

Methods

action :: Vect k (Tensor (Tensor a a) (Tensor u v)) -> Vect k (Tensor u v) Source #

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

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

Minimal complete definition

coaction

Methods

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

Instances

Coalgebra k c => Comodule k c c Source # 

Methods

coaction :: Vect k c -> Vect k (Tensor 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 # 

Methods

coaction :: Vect k (Tensor m n) -> Vect k (Tensor 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.

Minimal complete definition

pairing

Methods

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

Instances

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

Methods

pairing :: Vect k (Tensor () ()) -> Vect 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.

Methods

pairing :: Vect k (Tensor NSym QSymM) -> Vect k () Source #

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

Methods

pairing :: Vect k (Tensor SymH SymM) -> Vect k () Source #

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

A pairing showing that SSym is self-adjoint

Methods

pairing :: Vect k (Tensor SSymF SSymF) -> Vect k () Source #

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

Methods

pairing :: Vect k (Tensor SSymF (Dual SSymF)) -> Vect k () Source #

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

Methods

pairing :: Vect k (Tensor (Tensor u u') (Tensor v v')) -> Vect k () 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

Orphan instances

(Eq k, Num k, Eq b, Ord b, Show b, Algebra k b) => Num (Vect k b) Source # 

Methods

(+) :: Vect k b -> Vect k b -> Vect k b #

(-) :: Vect k b -> Vect k b -> Vect k b #

(*) :: Vect k b -> Vect k b -> Vect k b #

negate :: Vect k b -> Vect k b #

abs :: Vect k b -> Vect k b #

signum :: Vect k b -> Vect k b #

fromInteger :: Integer -> Vect k b #