Safe Haskell | Safe |
---|---|
Language | Haskell98 |
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
- 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 Op b = Op b
- 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
Instances
Mon LaurentMonomial Source # | |
Defined in Math.Algebras.LaurentPoly Methods munit :: LaurentMonomial Source # mmult :: LaurentMonomial -> LaurentMonomial -> LaurentMonomial Source # | |
Mon [a] Source # | |
Ord v => Mon (Grevlex v) Source # | |
Ord v => Mon (Glex v) Source # | |
Ord v => Mon (Lex v) Source # | |
Ord v => Mon (MonImpl v) Source # | |
Ord a => Mon (SymmetricAlgebra a) Source # | |
Defined in Math.Algebras.TensorAlgebra Methods munit :: SymmetricAlgebra a Source # mmult :: SymmetricAlgebra a -> SymmetricAlgebra a -> SymmetricAlgebra a Source # | |
Mon (TensorAlgebra a) Source # | |
Defined in Math.Algebras.TensorAlgebra Methods munit :: TensorAlgebra a Source # mmult :: TensorAlgebra a -> TensorAlgebra a -> TensorAlgebra a Source # | |
Mon (NonComMonomial v) Source # | |
Defined in Math.Algebras.NonCommutative Methods munit :: NonComMonomial v Source # mmult :: NonComMonomial v -> NonComMonomial v -> NonComMonomial v Source # | |
(Mon a, Mon b) => Mon (Elim2 a b) 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.
Instances
(Eq k, Num k) => Algebra k () Source # | |
(Eq k, Num k) => Algebra k HBasis 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 OBasis Source # | |
(Eq k, Num k) => Algebra k M3 Source # | |
(Eq k, Num k) => Algebra k Mat2 Source # | |
(Eq k, Num k) => Algebra k LaurentMonomial Source # | |
Defined in Math.Algebras.LaurentPoly Methods unit :: k -> Vect k LaurentMonomial Source # mult :: Vect k (Tensor LaurentMonomial LaurentMonomial) -> Vect k LaurentMonomial Source # | |
(Eq k, Num k) => Algebra k QNFBasis Source # | |
(Eq k, Num k, Ord b, Algebra k b) => Algebra k (Op b) 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) => Algebra k (Permutation Int) Source # | |
Defined in Math.Algebras.GroupAlgebra Methods unit :: k -> Vect k (Permutation Int) Source # mult :: Vect k (Tensor (Permutation Int) (Permutation Int)) -> Vect k (Permutation Int) 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 ]. |
(Eq k, Num k, Ord a) => Algebra k (ExteriorAlgebra a) Source # | |
Defined in Math.Algebras.TensorAlgebra Methods unit :: k -> Vect k (ExteriorAlgebra a) Source # mult :: Vect k (Tensor (ExteriorAlgebra a) (ExteriorAlgebra a)) -> Vect k (ExteriorAlgebra a) Source # | |
(Eq k, Num k, Ord a) => Algebra k (SymmetricAlgebra a) Source # | |
Defined in Math.Algebras.TensorAlgebra Methods unit :: k -> Vect k (SymmetricAlgebra a) Source # mult :: Vect k (Tensor (SymmetricAlgebra a) (SymmetricAlgebra a)) -> Vect k (SymmetricAlgebra a) Source # | |
(Eq k, Num k, Ord a) => Algebra k (TensorAlgebra a) Source # | |
Defined in Math.Algebras.TensorAlgebra Methods unit :: k -> Vect k (TensorAlgebra a) Source # mult :: Vect k (Tensor (TensorAlgebra a) (TensorAlgebra a)) -> Vect k (TensorAlgebra a) Source # | |
(Eq k, Num k, Ord v) => Algebra k (NonComMonomial v) Source # | |
Defined in Math.Algebras.NonCommutative Methods unit :: k -> Vect k (NonComMonomial v) Source # mult :: Vect k (Tensor (NonComMonomial v) (NonComMonomial v)) -> Vect k (NonComMonomial v) Source # | |
(Eq k, Num k, Ord v) => Algebra k (GlexMonomial v) Source # | |
Defined in Math.Algebras.Commutative Methods unit :: k -> Vect k (GlexMonomial v) Source # mult :: Vect k (Tensor (GlexMonomial v) (GlexMonomial v)) -> Vect k (GlexMonomial v) Source # | |
(Eq k, Num k, Ord a) => Algebra k [a] Source # | |
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 # | |
Defined in Math.QuantumAlgebra.QuantumPlane | |
Algebra (LaurentPoly Q) (M2q String) Source # | |
Defined in Math.QuantumAlgebra.QuantumPlane | |
Algebra (LaurentPoly Q) (Aq02 String) Source # | |
Defined in Math.QuantumAlgebra.QuantumPlane | |
Algebra (LaurentPoly Q) (Aq20 String) Source # | |
Defined in Math.QuantumAlgebra.QuantumPlane |
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.
Instances
(Eq k, Num k) => Coalgebra k EBasis Source # | |
(Eq k, Num k) => Coalgebra k () 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) => Coalgebra k Mat2' Source # | |
(Eq k, Num k, Ord m, Mon m) => Coalgebra k (MonoidCoalgebra m) Source # | |
Defined in Math.Algebras.Structures Methods counit :: Vect k (MonoidCoalgebra m) -> k Source # comult :: Vect k (MonoidCoalgebra m) -> Vect k (Tensor (MonoidCoalgebra m) (MonoidCoalgebra m)) Source # | |
(Eq k, Num k) => Coalgebra k (SetCoalgebra b) Source # | |
Defined in Math.Algebras.Structures Methods counit :: Vect k (SetCoalgebra b) -> k Source # comult :: Vect k (SetCoalgebra b) -> Vect k (Tensor (SetCoalgebra b) (SetCoalgebra b)) Source # | |
(Eq k, Num k, Ord b, Coalgebra k b) => Coalgebra k (Op b) Source # | |
(Eq k, Num k) => Coalgebra k (Dual HBasis) Source # | |
(Eq k, Num k) => Coalgebra k (Permutation Int) Source # | |
Defined in Math.Algebras.GroupAlgebra Methods counit :: Vect k (Permutation Int) -> k Source # comult :: Vect k (Permutation Int) -> Vect k (Tensor (Permutation Int) (Permutation Int)) 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 # | |
(Eq k, Num k, Ord c) => Coalgebra k (TensorCoalgebra c) Source # | |
Defined in Math.Algebras.TensorAlgebra Methods counit :: Vect k (TensorCoalgebra c) -> k Source # comult :: Vect k (TensorCoalgebra c) -> Vect k (Tensor (TensorCoalgebra c) (TensorCoalgebra c)) Source # | |
(Eq k, Num k) => Coalgebra k (GlexMonomial v) Source # | |
Defined in Math.Algebras.Commutative Methods counit :: Vect k (GlexMonomial v) -> k Source # comult :: Vect k (GlexMonomial v) -> Vect k (Tensor (GlexMonomial v) (GlexMonomial v)) 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 # | |
Defined in Math.QuantumAlgebra.QuantumPlane | |
Coalgebra (LaurentPoly Q) (M2q String) Source # | |
Defined in Math.QuantumAlgebra.QuantumPlane |
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 #
Instances
(Eq k, Num k) => HopfAlgebra k NSym Source # | |
(Eq k, Num k) => HopfAlgebra k SymM Source # | |
(Eq k, Num k) => HopfAlgebra k QSymF Source # | |
(Eq k, Num k) => HopfAlgebra k QSymM Source # | |
(Eq k, Num k) => HopfAlgebra k YSymM Source # | |
(Eq k, Num k) => HopfAlgebra k SSymM Source # | |
(Eq k, Num k) => HopfAlgebra k SSymF Source # | |
(Eq k, Num k) => HopfAlgebra k (Permutation Int) Source # | |
Defined in Math.Algebras.GroupAlgebra Methods antipode :: Vect k (Permutation Int) -> Vect k (Permutation Int) Source # | |
(Eq k, Num k, Ord a) => HopfAlgebra k (YSymF a) Source # | |
(Eq k, Num k) => HopfAlgebra k (Dual SSymF) Source # | |
(Eq k, Num k, Ord a) => HopfAlgebra k (Shuffle a) Source # | |
HopfAlgebra Q (SL2 ABCD) Source # | |
HopfAlgebra (LaurentPoly Q) (SL2q String) Source # | |
Defined in Math.QuantumAlgebra.QuantumPlane |
Constructors
Op b |
newtype SetCoalgebra b Source #
Constructors
SC b |
Instances
newtype MonoidCoalgebra m Source #
Constructors
MC m |
Instances
class Algebra k a => Module k a m where 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) => Module k (Permutation Int) Int Source # | |
Defined in Math.Algebras.GroupAlgebra | |
(Eq k, Num k) => Module k (Permutation Int) [Int] Source # | |
Defined in Math.Algebras.GroupAlgebra | |
(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 # | |
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.
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