Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell98 |
A module defining various algebraic structures that can be defined on vector spaces - specifically algebra, coalgebra, bialgebra, Hopf algebra, module, comodule
- class Mon m where
- class Algebra k b where
- unit' :: (Eq k, Num k, Algebra k b) => Vect k () -> Vect k b
- class Coalgebra k b where
- counit' :: (Eq k, Num k, Coalgebra k b) => Vect k b -> Vect k ()
- class (Algebra k b, Coalgebra k b) => Bialgebra k b
- class Bialgebra k b => HopfAlgebra k b where
- newtype SetCoalgebra b = SC b
- newtype MonoidCoalgebra m = MC m
- class Algebra k a => Module k a m where
- (*.) :: (Module k a m, Num k) => Vect k a -> Vect k m -> Vect k m
- class Coalgebra k c => Comodule k c n where
- class HasPairing k u v where
- pairing' :: (Num k, HasPairing k u v) => Vect k u -> Vect k v -> k
Documentation
Monoid
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.
(Eq k, Num k) => Algebra k () | |
(Eq k, Num k) => Algebra k LaurentMonomial | |
(Eq k, Num k) => Algebra k M3 | |
(Eq k, Num k) => Algebra k Mat2 | |
(Eq k, Num k) => Algebra k HBasis | |
(Eq k, Num k) => Algebra k OBasis | |
(Eq k, Num k) => Algebra k NSym | |
(Eq k, Num k) => Algebra k SymH | |
(Eq k, Num k) => Algebra k SymE | |
(Eq k, Num k) => Algebra k SymM | |
(Eq k, Num k) => Algebra k QSymF | |
(Eq k, Num k) => Algebra k QSymM | |
(Eq k, Num k) => Algebra k YSymM | |
(Eq k, Num k) => Algebra k SSymM | |
(Eq k, Num k) => Algebra k SSymF | |
(Eq k, Num k) => Algebra k QNFBasis | |
(Eq k, Num k, Ord v) => Algebra k (GlexMonomial v) | |
(Eq k, Num k, Ord v) => Algebra k (NonComMonomial v) | |
(Eq k, Num k, Ord a) => Algebra k (ExteriorAlgebra a) | |
(Eq k, Num k, Ord a) => Algebra k (SymmetricAlgebra a) | |
(Eq k, Num k, Ord a) => Algebra k (TensorAlgebra a) | |
(Eq k, Num k, Ord a) => Algebra k [a] | |
(Eq k, Num k, Ord v, Show v) => Algebra k (Grevlex v) | |
(Eq k, Num k, Ord v, Show v) => Algebra k (Glex v) | |
(Eq k, Num k, Ord v, Show v) => Algebra k (Lex v) | |
(Eq k, Num k) => Algebra k (Permutation Int) | |
(Eq k, Num k, Ord a) => Algebra k (YSymF a) | |
(Eq k, Num k) => Algebra k (Dual SSymF) | |
(Eq k, Num k, Ord a) => Algebra k (Shuffle a) | |
(Eq k, Num k, Ord a) => Algebra k (Interval a) | 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) | |
(Eq k, Num k, Ord a, Ord b, Algebra k a, Algebra k b) => Algebra k (Tensor a b) | 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) | 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) | |
Algebra (LaurentPoly Q) (SL2q String) | |
Algebra (LaurentPoly Q) (M2q String) | |
Algebra (LaurentPoly Q) (Aq02 String) | |
Algebra (LaurentPoly Q) (Aq20 String) |
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.
(Eq k, Num k) => Coalgebra k EBasis | |
(Eq k, Num k) => Coalgebra k () | |
(Eq k, Num k) => Coalgebra k Mat2' | |
(Eq k, Num k) => Coalgebra k NSym | |
(Eq k, Num k) => Coalgebra k SymH | |
(Eq k, Num k) => Coalgebra k SymE | |
(Eq k, Num k) => Coalgebra k SymM | |
(Eq k, Num k) => Coalgebra k QSymF | |
(Eq k, Num k) => Coalgebra k QSymM | |
(Eq k, Num k) => Coalgebra k YSymM | |
(Eq k, Num k) => Coalgebra k SSymM | |
(Eq k, Num k) => Coalgebra k SSymF | |
(Eq k, Num k, Ord m, Mon m) => Coalgebra k (MonoidCoalgebra m) | |
(Eq k, Num k) => Coalgebra k (SetCoalgebra b) | |
(Eq k, Num k) => Coalgebra k (GlexMonomial v) | |
(Eq k, Num k, Ord c) => Coalgebra k (TensorCoalgebra c) | |
(Eq k, Num k) => Coalgebra k (Dual HBasis) | |
(Eq k, Num k) => Coalgebra k (Permutation Int) | |
(Eq k, Num k, Ord a) => Coalgebra k (YSymF a) | |
(Eq k, Num k) => Coalgebra k (Dual SSymF) | |
(Eq k, Num k, Ord a) => Coalgebra k (Shuffle a) | |
(Eq k, Num k, Ord a) => Coalgebra k (Interval a) | |
Coalgebra Q (SL2 ABCD) | |
(Eq k, Num k, Ord a, Ord b, Coalgebra k a, Coalgebra k b) => Coalgebra k (Tensor a b) | 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) | 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) | |
Coalgebra (LaurentPoly Q) (M2q String) |
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)
(Eq k, Num k) => Bialgebra k NSym | |
(Eq k, Num k) => Bialgebra k SymH | |
(Eq k, Num k) => Bialgebra k SymE | |
(Eq k, Num k) => Bialgebra k SymM | |
(Eq k, Num k) => Bialgebra k QSymF | |
(Eq k, Num k) => Bialgebra k QSymM | |
(Eq k, Num k) => Bialgebra k YSymM | |
(Eq k, Num k) => Bialgebra k SSymM | |
(Eq k, Num k) => Bialgebra k SSymF | |
(Eq k, Num k) => Bialgebra k (Permutation Int) | |
(Eq k, Num k, Ord a) => Bialgebra k (YSymF a) | |
(Eq k, Num k) => Bialgebra k (Dual SSymF) | |
(Eq k, Num k, Ord a) => Bialgebra k (Shuffle a) | |
Bialgebra Q (SL2 ABCD) | |
Bialgebra (LaurentPoly Q) (SL2q String) | |
Bialgebra (LaurentPoly Q) (M2q String) |
class Bialgebra k b => HopfAlgebra k b where Source
(Eq k, Num k) => HopfAlgebra k NSym | |
(Eq k, Num k) => HopfAlgebra k SymM | |
(Eq k, Num k) => HopfAlgebra k QSymF | |
(Eq k, Num k) => HopfAlgebra k QSymM | |
(Eq k, Num k) => HopfAlgebra k YSymM | |
(Eq k, Num k) => HopfAlgebra k SSymM | |
(Eq k, Num k) => HopfAlgebra k SSymF | |
(Eq k, Num k) => HopfAlgebra k (Permutation Int) | |
(Eq k, Num k, Ord a) => HopfAlgebra k (YSymF a) | |
(Eq k, Num k) => HopfAlgebra k (Dual SSymF) | |
(Eq k, Num k, Ord a) => HopfAlgebra k (Shuffle a) | |
HopfAlgebra Q (SL2 ABCD) | |
HopfAlgebra (LaurentPoly Q) (SL2q String) |
newtype SetCoalgebra b Source
SC b |
(Eq k, 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
MC m |
(Eq k, 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 where Source
Algebra k a => Module k a a | |
(Eq k, Num k) => Module k Mat2 EBasis | |
(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) | |
(Eq k, Num k) => Module k (Permutation Int) Int | |
(Eq k, Num k) => Module k (Permutation Int) [Int] | |
(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) |
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.
(Eq k, Num k) => HasPairing k () () | |
(Eq k, Num k) => HasPairing k NSym QSymM | A duality pairing between NSym and QSymM (monomial basis), showing that NSym and QSym are dual. |
(Eq k, Num k) => HasPairing k SymH SymM | 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 | A pairing showing that SSym is self-adjoint |
(Eq k, Num k) => HasPairing k SSymF (Dual SSymF) | |
(Eq k, Num k, HasPairing k u v, HasPairing k u' v') => HasPairing k (Tensor u u') (Tensor v v') |