Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Synopsis
- type FreeAlgebra a f = (FreeSemimodule a f, Algebra a (Rep f))
- class Semiring a => Algebra a b where
- append :: (b -> b -> a) -> b -> a
- (.*.) :: FreeAlgebra a f => f a -> f a -> f a
- type FreeUnital a f = (FreeAlgebra a f, Unital a (Rep f))
- class Algebra a b => Unital a b where
- aempty :: a -> b -> a
- unital :: FreeUnital a f => a -> f a
- unit :: FreeUnital a f => f a
- type FreeCoalgebra a f = (FreeSemimodule a f, Coalgebra a (Rep f))
- class Semiring a => Coalgebra a c where
- coappend :: (c -> a) -> c -> c -> a
- type FreeCounital a f = (FreeCoalgebra a f, Counital a (Rep f))
- class Coalgebra a c => Counital a c where
- coempty :: (c -> a) -> a
- counital :: FreeCounital a f => f a -> a
- type FreeBialgebra a f = (FreeAlgebra a f, FreeCoalgebra a f, Bialgebra a (Rep f))
- class (Unital a b, Counital a b) => Bialgebra a b
Algebras
type FreeAlgebra a f = (FreeSemimodule a f, Algebra a (Rep f)) Source #
An algebra over a free module f.
Note that this is distinct from a free algebra.
class Semiring a => Algebra a b where Source #
An algebra algebra over a semiring.
Note that the algebra needn't be associative.
Instances
Semiring r => Algebra r IntSet Source # | |
Semiring a => Algebra a () Source # | |
Defined in Data.Algebra | |
Semiring r => Algebra r E4 Source # | |
Semiring r => Algebra r E3 Source # | |
Semiring r => Algebra r E2 Source # | |
Semiring r => Algebra r E1 Source # | |
(Semiring r, Ord a) => Algebra r (Set a) Source # | |
Semiring r => Algebra r (Seq a) Source # | The tensor algebra |
Semiring a => Algebra a [a] Source # | Tensor algebra
|
Defined in Data.Algebra | |
(Algebra a b, Algebra a c) => Algebra a (b, c) Source # | |
Defined in Data.Algebra | |
(Algebra a b, Algebra a c, Algebra a d) => Algebra a (b, c, d) Source # | |
Defined in Data.Algebra |
(.*.) :: FreeAlgebra a f => f a -> f a -> f a infixl 7 Source #
Multiplication operator on an algebra over a free semimodule.
Caution in general (.*.) needn't be commutative, nor associative.
type FreeUnital a f = (FreeAlgebra a f, Unital a (Rep f)) Source #
A unital algebra over a free semimodule f.
class Algebra a b => Unital a b where Source #
A unital algebra over a semiring.
Instances
Semiring r => Unital r IntSet Source # | |
Defined in Data.Algebra | |
Semiring a => Unital a () Source # | |
Defined in Data.Algebra | |
Semiring r => Unital r E4 Source # | |
Defined in Data.Semimodule.Basis | |
Semiring r => Unital r E3 Source # | |
Defined in Data.Semimodule.Basis | |
Semiring r => Unital r E2 Source # | |
Defined in Data.Semimodule.Basis | |
Semiring r => Unital r E1 Source # | |
Defined in Data.Semimodule.Basis | |
(Semiring r, Ord a) => Unital r (Set a) Source # | |
Defined in Data.Algebra | |
Semiring r => Unital r (Seq a) Source # | |
Defined in Data.Algebra | |
Semiring a => Unital a [a] Source # | |
Defined in Data.Algebra | |
(Unital a b, Unital a c) => Unital a (b, c) Source # | |
Defined in Data.Algebra | |
(Unital a b, Unital a c, Unital a d) => Unital a (b, c, d) Source # | |
Defined in Data.Algebra |
unital :: FreeUnital a f => a -> f a Source #
Insert an element into an algebra.
>>>
V4 1 2 3 4 .*. unital two :: V4 Int
V4 2 4 6 8
unit :: FreeUnital a f => f a Source #
Unital element of a unital algebra over a free semimodule.
>>>
unit :: Complex Int
1 :+ 0>>>
unit :: QuatD
Quaternion 1.0 (V3 0.0 0.0 0.0)
Coalgebras
type FreeCoalgebra a f = (FreeSemimodule a f, Coalgebra a (Rep f)) Source #
A coalgebra over a free semimodule f.
class Semiring a => Coalgebra a c where Source #
A coalgebra over a semiring.
( id *** coempty ) . coappend = id = ( coempty *** id ) . coappend
Instances
Semiring r => Coalgebra r IntSet Source # | the free commutative band coalgebra over Int |
Semiring r => Coalgebra r () Source # | |
Defined in Data.Algebra | |
Semiring r => Coalgebra r E4 Source # | |
Semiring r => Coalgebra r E3 Source # | |
Semiring r => Coalgebra r E2 Source # | |
Semiring r => Coalgebra r E1 Source # | |
(Semiring r, Ord a) => Coalgebra r (Set a) Source # | the free commutative band coalgebra |
Semiring r => Coalgebra r (Seq a) Source # | The tensor Hopf algebra |
Semiring r => Coalgebra r [a] Source # | The tensor Hopf algebra Δ(x) = x ⊗ 1 + 1 ⊗ x, x in V, Δ(1) = 1 ⊗ 1 |
Defined in Data.Algebra | |
Algebra r a => Coalgebra r (a -> r) Source # | |
Defined in Data.Algebra | |
(Coalgebra r a, Coalgebra r b) => Coalgebra r (a, b) Source # | |
Defined in Data.Algebra | |
(Coalgebra r a, Coalgebra r b, Coalgebra r c) => Coalgebra r (a, b, c) Source # | |
Defined in Data.Algebra |
type FreeCounital a f = (FreeCoalgebra a f, Counital a (Rep f)) Source #
A counital coalgebra over a free semimodule f.
class Coalgebra a c => Counital a c where Source #
A counital coalgebra over a semiring.
Instances
Semiring r => Counital r IntSet Source # | |
Defined in Data.Algebra | |
Semiring r => Counital r () Source # | |
Defined in Data.Algebra | |
Semiring r => Counital r E4 Source # | |
Defined in Data.Semimodule.Basis | |
Semiring r => Counital r E3 Source # | |
Defined in Data.Semimodule.Basis | |
Semiring r => Counital r E2 Source # | |
Defined in Data.Semimodule.Basis | |
Semiring r => Counital r E1 Source # | |
Defined in Data.Semimodule.Basis | |
(Semiring r, Ord a) => Counital r (Set a) Source # | |
Defined in Data.Algebra | |
Semiring r => Counital r (Seq a) Source # | |
Defined in Data.Algebra | |
Semiring r => Counital r [a] Source # | |
Defined in Data.Algebra | |
Algebra r a => Counital r (a -> r) Source # | |
Defined in Data.Algebra | |
(Counital r a, Counital r b) => Counital r (a, b) Source # | |
Defined in Data.Algebra | |
(Counital r a, Counital r b, Counital r c) => Counital r (a, b, c) Source # | |
Defined in Data.Algebra |
counital :: FreeCounital a f => f a -> a Source #
Obtain an element from a coalgebra over a free semimodule.
Bialgebras
type FreeBialgebra a f = (FreeAlgebra a f, FreeCoalgebra a f, Bialgebra a (Rep f)) Source #
A bialgebra over a free semimodule f.