algebra-3.1: Constructive abstract algebra

Safe Haskell | None

Numeric.Algebra.Unital

Contents

- Unital Multiplication (Multiplicative monoid)
- Unital Associative Algebra
- Unital Coassociative Coalgebra
- Bialgebra

Synopsis

- class Multiplicative r => Unital r where
  - one :: r
  - pow :: Whole n => r -> n -> r
  - productWith :: Foldable f => (a -> r) -> f a -> r
- product :: (Foldable f, Unital r) => f r -> r
- class Algebra r a => UnitalAlgebra r a where
  - unit :: r -> a -> r
- class Coalgebra r c => CounitalCoalgebra r c where
  - counit :: (c -> r) -> r
- class (UnitalAlgebra r a, CounitalCoalgebra r a) => Bialgebra r a

# Unital Multiplication (Multiplicative monoid)

class Multiplicative r => Unital r where Source

Methods

one :: rSource

pow :: Whole n => r -> n -> rSource

productWith :: Foldable f => (a -> r) -> f a -> rSource

Instances

Unital Bool |
Unital Int |
Unital Int8 |
Unital Int16 |
Unital Int32 |
Unital Int64 |
Unital Integer |
Unital Word |
Unital Word8 |
Unital Word16 |
Unital Word32 |
Unital Word64 |
Unital () |
Unital Natural |
Unital Euclidean |
(Commutative r, Ring r) => Unital (Complex r) |
(TriviallyInvolutive r, Ring r) => Unital (Quaternion r) |
(Commutative r, Ring r) => Unital (Dual r) |
(Commutative k, Rig k) => Unital (Hyper' k) |
(Commutative k, Rig k) => Unital (Hyper k) |
(Commutative r, Ring r) => Unital (Dual' r) |
Unital (BasisCoblade m) |
(TriviallyInvolutive r, Ring r) => Unital (Quaternion' r) |
(Commutative k, Ring k) => Unital (Trig k) |
Monoidal r => Unital (Exp r) |
Unital (End r) |
Unital r => Unital (Opposite r) |
Rng r => Unital (RngRing r) |
(Unital r, UnitalAlgebra r a) => Unital (a -> r) |
(Unital a, Unital b) => Unital (a, b) |
CounitalCoalgebra r m => Unital (Covector r m) |
(Unital a, Unital b, Unital c) => Unital (a, b, c) |
CounitalCoalgebra r m => Unital (Map r b m) |
(Unital a, Unital b, Unital c, Unital d) => Unital (a, b, c, d) |
(Unital a, Unital b, Unital c, Unital d, Unital e) => Unital (a, b, c, d, e) |

product :: (Foldable f, Unital r) => f r -> rSource

# Unital Associative Algebra

class Algebra r a => UnitalAlgebra r a where Source

An associative unital algebra over a semiring, built using a free module

Methods

unit :: r -> a -> rSource

Instances

Semiring r => UnitalAlgebra r () |
Rng k => UnitalAlgebra k ComplexBasis |
(TriviallyInvolutive r, Rng r) => UnitalAlgebra r QuaternionBasis |
Rng k => UnitalAlgebra k DualBasis |
(Commutative k, Monoidal k, Semiring k) => UnitalAlgebra k HyperBasis' |
Semiring k => UnitalAlgebra k HyperBasis |
Semiring k => UnitalAlgebra k DualBasis' |
(TriviallyInvolutive r, Semiring r) => UnitalAlgebra r QuaternionBasis' |
(Commutative k, Rng k) => UnitalAlgebra k TrigBasis |
(Monoidal r, Semiring r) => UnitalAlgebra r (Seq a) |
(Monoidal r, Semiring r) => UnitalAlgebra r [a] |
(Commutative r, Monoidal r, Semiring r, LocallyFiniteOrder a) => UnitalAlgebra r (Interval a) |
(UnitalAlgebra r a, UnitalAlgebra r b) => UnitalAlgebra r (a, b) |
(UnitalAlgebra r a, UnitalAlgebra r b, UnitalAlgebra r c) => UnitalAlgebra r (a, b, c) |
(UnitalAlgebra r a, UnitalAlgebra r b, UnitalAlgebra r c, UnitalAlgebra r d) => UnitalAlgebra r (a, b, c, d) |
(UnitalAlgebra r a, UnitalAlgebra r b, UnitalAlgebra r c, UnitalAlgebra r d, UnitalAlgebra r e) => UnitalAlgebra r (a, b, c, d, e) |

# Unital Coassociative Coalgebra

class Coalgebra r c => CounitalCoalgebra r c where Source

Methods

counit :: (c -> r) -> rSource

Instances

Semiring r => CounitalCoalgebra r () |
Rng k => CounitalCoalgebra k ComplexBasis |
(TriviallyInvolutive r, Rng r) => CounitalCoalgebra r QuaternionBasis |
Rng k => CounitalCoalgebra k DualBasis |
(Commutative k, Monoidal k, Semiring k) => CounitalCoalgebra k HyperBasis' |
(Commutative k, Semiring k) => CounitalCoalgebra k HyperBasis |
Rng k => CounitalCoalgebra k DualBasis' |
(TriviallyInvolutive r, Rng r) => CounitalCoalgebra r QuaternionBasis' |
(Commutative k, Rng k) => CounitalCoalgebra k TrigBasis |
Semiring r => CounitalCoalgebra r (Seq a) |
Semiring r => CounitalCoalgebra r [a] |
(Commutative r, Monoidal r, Semiring r, PartialMonoid a) => CounitalCoalgebra r (Morphism a) |
(Eq a, Bounded a, Commutative r, Monoidal r, Semiring r) => CounitalCoalgebra r (Interval' a) |
Eigenmetric r m => CounitalCoalgebra r (BasisCoblade m) |
(CounitalCoalgebra r a, CounitalCoalgebra r b) => CounitalCoalgebra r (a, b) |
(Unital r, UnitalAlgebra r m) => CounitalCoalgebra r (m -> r) |
(CounitalCoalgebra r a, CounitalCoalgebra r b, CounitalCoalgebra r c) => CounitalCoalgebra r (a, b, c) |
(CounitalCoalgebra r a, CounitalCoalgebra r b, CounitalCoalgebra r c, CounitalCoalgebra r d) => CounitalCoalgebra r (a, b, c, d) |
(CounitalCoalgebra r a, CounitalCoalgebra r b, CounitalCoalgebra r c, CounitalCoalgebra r d, CounitalCoalgebra r e) => CounitalCoalgebra r (a, b, c, d, e) |

# Bialgebra

class (UnitalAlgebra r a, CounitalCoalgebra r a) => Bialgebra r a Source

A bialgebra is both a unital algebra and counital coalgebra where the `mult` and `unit` are compatible in some sense with the `comult` and `counit`. That is to say that `mult` and `unit` are a coalgebra homomorphisms or (equivalently) that `comult` and `counit` are an algebra homomorphisms.

Instances

Semiring r => Bialgebra r () |
Rng k => Bialgebra k ComplexBasis |
(TriviallyInvolutive r, Rng r) => Bialgebra r QuaternionBasis |
Rng k => Bialgebra k DualBasis |
(Commutative k, Monoidal k, Semiring k) => Bialgebra k HyperBasis' |
(Commutative k, Semiring k) => Bialgebra k HyperBasis |
Rng k => Bialgebra k DualBasis' |
(TriviallyInvolutive r, Rng r) => Bialgebra r QuaternionBasis' |
(Commutative k, Rng k) => Bialgebra k TrigBasis |
(Monoidal r, Semiring r) => Bialgebra r (Seq a) |
(Monoidal r, Semiring r) => Bialgebra r [a] |
(Bialgebra r a, Bialgebra r b) => Bialgebra r (a, b) |
(Bialgebra r a, Bialgebra r b, Bialgebra r c) => Bialgebra r (a, b, c) |
(Bialgebra r a, Bialgebra r b, Bialgebra r c, Bialgebra r d) => Bialgebra r (a, b, c, d) |
(Bialgebra r a, Bialgebra r b, Bialgebra r c, Bialgebra r d, Bialgebra r e) => Bialgebra r (a, b, c, d, e) |