algebra-4.3: Constructive abstract algebra

Numeric.Algebra.Unital

Synopsis

# Unital Multiplication (Multiplicative monoid)

class Multiplicative r => Unital r where Source #

Minimal complete definition

one

Methods

one :: r Source #

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

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

Instances

 Source # MethodsproductWith :: Foldable f => (a -> Bool) -> f a -> Bool Source # Source # Methodspow :: Int -> Natural -> Int Source #productWith :: Foldable f => (a -> Int) -> f a -> Int Source # Source # MethodsproductWith :: Foldable f => (a -> Int8) -> f a -> Int8 Source # Source # MethodsproductWith :: Foldable f => (a -> Int16) -> f a -> Int16 Source # Source # MethodsproductWith :: Foldable f => (a -> Int32) -> f a -> Int32 Source # Source # MethodsproductWith :: Foldable f => (a -> Int64) -> f a -> Int64 Source # Source # MethodsproductWith :: Foldable f => (a -> Integer) -> f a -> Integer Source # Source # MethodsproductWith :: Foldable f => (a -> Word) -> f a -> Word Source # Source # MethodsproductWith :: Foldable f => (a -> Word8) -> f a -> Word8 Source # Source # MethodsproductWith :: Foldable f => (a -> Word16) -> f a -> Word16 Source # Source # MethodsproductWith :: Foldable f => (a -> Word32) -> f a -> Word32 Source # Source # MethodsproductWith :: Foldable f => (a -> Word64) -> f a -> Word64 Source # Unital () Source # Methodsone :: () Source #pow :: () -> Natural -> () Source #productWith :: Foldable f => (a -> ()) -> f a -> () Source # Source # MethodsproductWith :: Foldable f => (a -> Natural) -> f a -> Natural Source # Source # MethodsproductWith :: Foldable f => (a -> Euclidean) -> f a -> Euclidean Source # GCDDomain d => Unital (Fraction d) Source # Methodspow :: Fraction d -> Natural -> Fraction d Source #productWith :: Foldable f => (a -> Fraction d) -> f a -> Fraction d Source # (Commutative r, Ring r) => Unital (Complex r) Source # Methodspow :: Complex r -> Natural -> Complex r Source #productWith :: Foldable f => (a -> Complex r) -> f a -> Complex r Source # (Commutative r, Ring r) => Unital (Dual r) Source # Methodspow :: Dual r -> Natural -> Dual r Source #productWith :: Foldable f => (a -> Dual r) -> f a -> Dual r Source # (Commutative k, Rig k) => Unital (Hyper' k) Source # Methodspow :: Hyper' k -> Natural -> Hyper' k Source #productWith :: Foldable f => (a -> Hyper' k) -> f a -> Hyper' k Source # (TriviallyInvolutive r, Ring r) => Unital (Quaternion r) Source # MethodsproductWith :: Foldable f => (a -> Quaternion r) -> f a -> Quaternion r Source # (Commutative r, Ring r) => Unital (Dual' r) Source # Methodspow :: Dual' r -> Natural -> Dual' r Source #productWith :: Foldable f => (a -> Dual' r) -> f a -> Dual' r Source # Source # MethodsproductWith :: Foldable f => (a -> BasisCoblade m) -> f a -> BasisCoblade m Source # (Commutative k, Rig k) => Unital (Hyper k) Source # Methodspow :: Hyper k -> Natural -> Hyper k Source #productWith :: Foldable f => (a -> Hyper k) -> f a -> Hyper k Source # (TriviallyInvolutive r, Ring r) => Unital (Quaternion' r) Source # MethodsproductWith :: Foldable f => (a -> Quaternion' r) -> f a -> Quaternion' r Source # (Commutative k, Ring k) => Unital (Trig k) Source # Methodspow :: Trig k -> Natural -> Trig k Source #productWith :: Foldable f => (a -> Trig k) -> f a -> Trig k Source # Monoidal r => Unital (Exp r) Source # Methodspow :: Exp r -> Natural -> Exp r Source #productWith :: Foldable f => (a -> Exp r) -> f a -> Exp r Source # Unital (End r) Source # Methodspow :: End r -> Natural -> End r Source #productWith :: Foldable f => (a -> End r) -> f a -> End r Source # Unital r => Unital (Opposite r) Source # Methodspow :: Opposite r -> Natural -> Opposite r Source #productWith :: Foldable f => (a -> Opposite r) -> f a -> Opposite r Source # Rng r => Unital (RngRing r) Source # Methodspow :: RngRing r -> Natural -> RngRing r Source #productWith :: Foldable f => (a -> RngRing r) -> f a -> RngRing r Source # (Unital r, UnitalAlgebra r a) => Unital (a -> r) Source # Methodsone :: a -> r Source #pow :: (a -> r) -> Natural -> a -> r Source #productWith :: Foldable f => (a -> a -> r) -> f a -> a -> r Source # (Unital a, Unital b) => Unital (a, b) Source # Methodsone :: (a, b) Source #pow :: (a, b) -> Natural -> (a, b) Source #productWith :: Foldable f => (a -> (a, b)) -> f a -> (a, b) Source # CounitalCoalgebra r m => Unital (Covector r m) Source # Methodsone :: Covector r m Source #pow :: Covector r m -> Natural -> Covector r m Source #productWith :: Foldable f => (a -> Covector r m) -> f a -> Covector r m Source # (Unital a, Unital b, Unital c) => Unital (a, b, c) Source # Methodsone :: (a, b, c) Source #pow :: (a, b, c) -> Natural -> (a, b, c) Source #productWith :: Foldable f => (a -> (a, b, c)) -> f a -> (a, b, c) Source # CounitalCoalgebra r m => Unital (Map r b m) Source # Methodsone :: Map r b m Source #pow :: Map r b m -> Natural -> Map r b m Source #productWith :: Foldable f => (a -> Map r b m) -> f a -> Map r b m Source # (Unital a, Unital b, Unital c, Unital d) => Unital (a, b, c, d) Source # Methodsone :: (a, b, c, d) Source #pow :: (a, b, c, d) -> Natural -> (a, b, c, d) Source #productWith :: Foldable f => (a -> (a, b, c, d)) -> f a -> (a, b, c, d) Source # (Unital a, Unital b, Unital c, Unital d, Unital e) => Unital (a, b, c, d, e) Source # Methodsone :: (a, b, c, d, e) Source #pow :: (a, b, c, d, e) -> Natural -> (a, b, c, d, e) Source #productWith :: Foldable f => (a -> (a, b, c, d, e)) -> f a -> (a, b, c, d, e) Source #

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

# Unital Associative Algebra

class Algebra r a => UnitalAlgebra r a where Source #

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

Minimal complete definition

unit

Methods

unit :: r -> a -> r Source #

Instances

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

# Unital Coassociative Coalgebra

class Coalgebra r c => CounitalCoalgebra r c where Source #

Minimal complete definition

counit

Methods

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

Instances

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

# 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 () Source # Source # Source # Source # Source # Source # Source # Source # (Commutative k, Rng k) => Bialgebra k TrigBasis Source # (Monoidal r, Semiring r) => Bialgebra r (Seq a) Source # (Monoidal r, Semiring r) => Bialgebra r [a] Source # (Bialgebra r a, Bialgebra r b) => Bialgebra r (a, b) Source # (Bialgebra r a, Bialgebra r b, Bialgebra r c) => Bialgebra r (a, b, c) Source # (Bialgebra r a, Bialgebra r b, Bialgebra r c, Bialgebra r d) => Bialgebra r (a, b, c, d) Source # (Bialgebra r a, Bialgebra r b, Bialgebra r c, Bialgebra r d, Bialgebra r e) => Bialgebra r (a, b, c, d, e) Source #