algebra-4.3.1: Constructive abstract algebra

Safe HaskellSafe
LanguageHaskell98

Numeric.Algebra.Unital

Contents

Synopsis

Unital Multiplication (Multiplicative monoid)

class Multiplicative r => Unital r where #

Minimal complete definition

one

Methods

one :: r #

pow :: r -> Natural -> r infixr 8 #

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

Instances

Unital Bool # 

Methods

one :: Bool #

pow :: Bool -> Natural -> Bool #

productWith :: Foldable f => (a -> Bool) -> f a -> Bool #

Unital Int # 

Methods

one :: Int #

pow :: Int -> Natural -> Int #

productWith :: Foldable f => (a -> Int) -> f a -> Int #

Unital Int8 # 

Methods

one :: Int8 #

pow :: Int8 -> Natural -> Int8 #

productWith :: Foldable f => (a -> Int8) -> f a -> Int8 #

Unital Int16 # 

Methods

one :: Int16 #

pow :: Int16 -> Natural -> Int16 #

productWith :: Foldable f => (a -> Int16) -> f a -> Int16 #

Unital Int32 # 

Methods

one :: Int32 #

pow :: Int32 -> Natural -> Int32 #

productWith :: Foldable f => (a -> Int32) -> f a -> Int32 #

Unital Int64 # 

Methods

one :: Int64 #

pow :: Int64 -> Natural -> Int64 #

productWith :: Foldable f => (a -> Int64) -> f a -> Int64 #

Unital Integer # 

Methods

one :: Integer #

pow :: Integer -> Natural -> Integer #

productWith :: Foldable f => (a -> Integer) -> f a -> Integer #

Unital Natural # 

Methods

one :: Natural #

pow :: Natural -> Natural -> Natural #

productWith :: Foldable f => (a -> Natural) -> f a -> Natural #

Unital Word # 

Methods

one :: Word #

pow :: Word -> Natural -> Word #

productWith :: Foldable f => (a -> Word) -> f a -> Word #

Unital Word8 # 

Methods

one :: Word8 #

pow :: Word8 -> Natural -> Word8 #

productWith :: Foldable f => (a -> Word8) -> f a -> Word8 #

Unital Word16 # 

Methods

one :: Word16 #

pow :: Word16 -> Natural -> Word16 #

productWith :: Foldable f => (a -> Word16) -> f a -> Word16 #

Unital Word32 # 

Methods

one :: Word32 #

pow :: Word32 -> Natural -> Word32 #

productWith :: Foldable f => (a -> Word32) -> f a -> Word32 #

Unital Word64 # 

Methods

one :: Word64 #

pow :: Word64 -> Natural -> Word64 #

productWith :: Foldable f => (a -> Word64) -> f a -> Word64 #

Unital () # 

Methods

one :: () #

pow :: () -> Natural -> () #

productWith :: Foldable f => (a -> ()) -> f a -> () #

Unital Euclidean # 

Methods

one :: Euclidean #

pow :: Euclidean -> Natural -> Euclidean #

productWith :: Foldable f => (a -> Euclidean) -> f a -> Euclidean #

Rng r => Unital (RngRing r) # 

Methods

one :: RngRing r #

pow :: RngRing r -> Natural -> RngRing r #

productWith :: Foldable f => (a -> RngRing r) -> f a -> RngRing r #

Unital r => Unital (Opposite r) # 

Methods

one :: Opposite r #

pow :: Opposite r -> Natural -> Opposite r #

productWith :: Foldable f => (a -> Opposite r) -> f a -> Opposite r #

Unital (End r) # 

Methods

one :: End r #

pow :: End r -> Natural -> End r #

productWith :: Foldable f => (a -> End r) -> f a -> End r #

Monoidal r => Unital (Exp r) # 

Methods

one :: Exp r #

pow :: Exp r -> Natural -> Exp r #

productWith :: Foldable f => (a -> Exp r) -> f a -> Exp r #

(Commutative k, Ring k) => Unital (Trig k) # 

Methods

one :: Trig k #

pow :: Trig k -> Natural -> Trig k #

productWith :: Foldable f => (a -> Trig k) -> f a -> Trig k #

(TriviallyInvolutive r, Ring r) => Unital (Quaternion' r) # 

Methods

one :: Quaternion' r #

pow :: Quaternion' r -> Natural -> Quaternion' r #

productWith :: Foldable f => (a -> Quaternion' r) -> f a -> Quaternion' r #

(Commutative k, Rig k) => Unital (Hyper k) # 

Methods

one :: Hyper k #

pow :: Hyper k -> Natural -> Hyper k #

productWith :: Foldable f => (a -> Hyper k) -> f a -> Hyper k #

Unital (BasisCoblade m) # 

Methods

one :: BasisCoblade m #

pow :: BasisCoblade m -> Natural -> BasisCoblade m #

productWith :: Foldable f => (a -> BasisCoblade m) -> f a -> BasisCoblade m #

(Commutative r, Ring r) => Unital (Dual' r) # 

Methods

one :: Dual' r #

pow :: Dual' r -> Natural -> Dual' r #

productWith :: Foldable f => (a -> Dual' r) -> f a -> Dual' r #

(TriviallyInvolutive r, Ring r) => Unital (Quaternion r) # 

Methods

one :: Quaternion r #

pow :: Quaternion r -> Natural -> Quaternion r #

productWith :: Foldable f => (a -> Quaternion r) -> f a -> Quaternion r #

(Commutative k, Rig k) => Unital (Hyper' k) # 

Methods

one :: Hyper' k #

pow :: Hyper' k -> Natural -> Hyper' k #

productWith :: Foldable f => (a -> Hyper' k) -> f a -> Hyper' k #

(Commutative r, Ring r) => Unital (Dual r) # 

Methods

one :: Dual r #

pow :: Dual r -> Natural -> Dual r #

productWith :: Foldable f => (a -> Dual r) -> f a -> Dual r #

(Commutative r, Ring r) => Unital (Complex r) # 

Methods

one :: Complex r #

pow :: Complex r -> Natural -> Complex r #

productWith :: Foldable f => (a -> Complex r) -> f a -> Complex r #

GCDDomain d => Unital (Fraction d) # 

Methods

one :: Fraction d #

pow :: Fraction d -> Natural -> Fraction d #

productWith :: Foldable f => (a -> Fraction d) -> f a -> Fraction d #

(Unital r, UnitalAlgebra r a) => Unital (a -> r) # 

Methods

one :: a -> r #

pow :: (a -> r) -> Natural -> a -> r #

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

(Unital a, Unital b) => Unital (a, b) # 

Methods

one :: (a, b) #

pow :: (a, b) -> Natural -> (a, b) #

productWith :: Foldable f => (a -> (a, b)) -> f a -> (a, b) #

CounitalCoalgebra r m => Unital (Covector r m) # 

Methods

one :: Covector r m #

pow :: Covector r m -> Natural -> Covector r m #

productWith :: Foldable f => (a -> Covector r m) -> f a -> Covector r m #

(Unital a, Unital b, Unital c) => Unital (a, b, c) # 

Methods

one :: (a, b, c) #

pow :: (a, b, c) -> Natural -> (a, b, c) #

productWith :: Foldable f => (a -> (a, b, c)) -> f a -> (a, b, c) #

CounitalCoalgebra r m => Unital (Map r b m) # 

Methods

one :: Map r b m #

pow :: Map r b m -> Natural -> Map r b m #

productWith :: Foldable f => (a -> Map r b m) -> f a -> Map r b m #

(Unital a, Unital b, Unital c, Unital d) => Unital (a, b, c, d) # 

Methods

one :: (a, b, c, d) #

pow :: (a, b, c, d) -> Natural -> (a, b, c, d) #

productWith :: Foldable f => (a -> (a, b, c, d)) -> f a -> (a, b, c, d) #

(Unital a, Unital b, Unital c, Unital d, Unital e) => Unital (a, b, c, d, e) # 

Methods

one :: (a, b, c, d, e) #

pow :: (a, b, c, d, e) -> Natural -> (a, b, c, d, e) #

productWith :: Foldable f => (a -> (a, b, c, d, e)) -> f a -> (a, b, c, d, e) #

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

Unital Associative Algebra

class Algebra r a => UnitalAlgebra r a where #

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

Minimal complete definition

unit

Methods

unit :: r -> a -> r #

Instances

Semiring r => UnitalAlgebra r () # 

Methods

unit :: r -> () -> r #

(Commutative k, Rng k) => UnitalAlgebra k TrigBasis # 

Methods

unit :: k -> TrigBasis -> k #

(TriviallyInvolutive r, Semiring r) => UnitalAlgebra r QuaternionBasis' # 

Methods

unit :: r -> QuaternionBasis' -> r #

Semiring k => UnitalAlgebra k HyperBasis # 

Methods

unit :: k -> HyperBasis -> k #

Semiring k => UnitalAlgebra k DualBasis' # 

Methods

unit :: k -> DualBasis' -> k #

(TriviallyInvolutive r, Rng r) => UnitalAlgebra r QuaternionBasis # 

Methods

unit :: r -> QuaternionBasis -> r #

(Commutative k, Monoidal k, Semiring k) => UnitalAlgebra k HyperBasis' # 

Methods

unit :: k -> HyperBasis' -> k #

Rng k => UnitalAlgebra k DualBasis # 

Methods

unit :: k -> DualBasis -> k #

Rng k => UnitalAlgebra k ComplexBasis # 

Methods

unit :: k -> ComplexBasis -> k #

(Monoidal r, Semiring r) => UnitalAlgebra r (Seq a) # 

Methods

unit :: r -> Seq a -> r #

(Monoidal r, Semiring r) => UnitalAlgebra r [a] # 

Methods

unit :: r -> [a] -> r #

(Commutative r, Monoidal r, Semiring r, LocallyFiniteOrder a) => UnitalAlgebra r (Interval a) # 

Methods

unit :: r -> Interval a -> r #

(UnitalAlgebra r a, UnitalAlgebra r b) => UnitalAlgebra r (a, b) # 

Methods

unit :: r -> (a, b) -> r #

(UnitalAlgebra r a, UnitalAlgebra r b, UnitalAlgebra r c) => UnitalAlgebra r (a, b, c) # 

Methods

unit :: r -> (a, b, c) -> r #

(UnitalAlgebra r a, UnitalAlgebra r b, UnitalAlgebra r c, UnitalAlgebra r d) => UnitalAlgebra r (a, b, c, d) # 

Methods

unit :: r -> (a, b, c, d) -> r #

(UnitalAlgebra r a, UnitalAlgebra r b, UnitalAlgebra r c, UnitalAlgebra r d, UnitalAlgebra r e) => UnitalAlgebra r (a, b, c, d, e) # 

Methods

unit :: r -> (a, b, c, d, e) -> r #

Unital Coassociative Coalgebra

class Coalgebra r c => CounitalCoalgebra r c where #

Minimal complete definition

counit

Methods

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

Instances

Semiring r => CounitalCoalgebra r () # 

Methods

counit :: (() -> r) -> r #

(Commutative k, Rng k) => CounitalCoalgebra k TrigBasis # 

Methods

counit :: (TrigBasis -> k) -> k #

(TriviallyInvolutive r, Rng r) => CounitalCoalgebra r QuaternionBasis' # 

Methods

counit :: (QuaternionBasis' -> r) -> r #

(Commutative k, Semiring k) => CounitalCoalgebra k HyperBasis # 

Methods

counit :: (HyperBasis -> k) -> k #

Rng k => CounitalCoalgebra k DualBasis' # 

Methods

counit :: (DualBasis' -> k) -> k #

(TriviallyInvolutive r, Rng r) => CounitalCoalgebra r QuaternionBasis # 

Methods

counit :: (QuaternionBasis -> r) -> r #

(Commutative k, Monoidal k, Semiring k) => CounitalCoalgebra k HyperBasis' # 

Methods

counit :: (HyperBasis' -> k) -> k #

Rng k => CounitalCoalgebra k DualBasis # 

Methods

counit :: (DualBasis -> k) -> k #

Rng k => CounitalCoalgebra k ComplexBasis # 

Methods

counit :: (ComplexBasis -> k) -> k #

Semiring r => CounitalCoalgebra r (Seq a) # 

Methods

counit :: (Seq a -> r) -> r #

Semiring r => CounitalCoalgebra r [a] # 

Methods

counit :: ([a] -> r) -> r #

(Commutative r, Monoidal r, Semiring r, PartialMonoid a) => CounitalCoalgebra r (Morphism a) # 

Methods

counit :: (Morphism a -> r) -> r #

(Eq a, Bounded a, Commutative r, Monoidal r, Semiring r) => CounitalCoalgebra r (Interval' a) # 

Methods

counit :: (Interval' a -> r) -> r #

Eigenmetric r m => CounitalCoalgebra r (BasisCoblade m) # 

Methods

counit :: (BasisCoblade m -> r) -> r #

(CounitalCoalgebra r a, CounitalCoalgebra r b) => CounitalCoalgebra r (a, b) # 

Methods

counit :: ((a, b) -> r) -> r #

(Unital r, UnitalAlgebra r m) => CounitalCoalgebra r (m -> r) # 

Methods

counit :: ((m -> r) -> r) -> r #

(CounitalCoalgebra r a, CounitalCoalgebra r b, CounitalCoalgebra r c) => CounitalCoalgebra r (a, b, c) # 

Methods

counit :: ((a, b, c) -> r) -> r #

(CounitalCoalgebra r a, CounitalCoalgebra r b, CounitalCoalgebra r c, CounitalCoalgebra r d) => CounitalCoalgebra r (a, b, c, d) # 

Methods

counit :: ((a, b, c, d) -> r) -> r #

(CounitalCoalgebra r a, CounitalCoalgebra r b, CounitalCoalgebra r c, CounitalCoalgebra r d, CounitalCoalgebra r e) => CounitalCoalgebra r (a, b, c, d, e) # 

Methods

counit :: ((a, b, c, d, e) -> r) -> r #

Bialgebra

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

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 () # 
(Commutative k, Rng k) => Bialgebra k TrigBasis # 
(TriviallyInvolutive r, Rng r) => Bialgebra r QuaternionBasis' # 
(Commutative k, Semiring k) => Bialgebra k HyperBasis # 
Rng k => Bialgebra k DualBasis' # 
(TriviallyInvolutive r, Rng r) => Bialgebra r QuaternionBasis # 
(Commutative k, Monoidal k, Semiring k) => Bialgebra k HyperBasis' # 
Rng k => Bialgebra k DualBasis # 
Rng k => Bialgebra k ComplexBasis # 
(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) #