Safe Haskell | None |
---|
- Additive
- Multiplicative
- Ring-Structures
- Rings
- Modules
- Algebras
- Ring Properties
- Natural numbers
- Representable Additive
- Representable Monoidal
- Representable Group
- Representable Multiplicative (via Algebra)
- Representable Unital (via UnitalAlgebra)
- Representable Rig (via Algebra)
- Representable Ring (via Algebra)
- Norm
- Covectors
- class Additive r where
- sum1 :: (Foldable1 f, Additive r) => f r -> r
- class Additive r => Abelian r
- class Additive r => Idempotent r
- sinnum1pIdempotent :: Natural -> r -> r
- sinnumIdempotent :: (Integral n, Idempotent r, Monoidal r) => n -> r -> r
- class Additive m => Partitionable m where
- partitionWith :: (m -> m -> r) -> m -> NonEmpty r
- class (LeftModule Natural m, RightModule Natural m) => Monoidal m where
- sum :: (Foldable f, Monoidal m) => f m -> m
- class (LeftModule Integer r, RightModule Integer r, Monoidal r) => Group r where
- class Multiplicative r where
- (*) :: r -> r -> r
- pow1p :: Whole n => r -> n -> r
- productWith1 :: Foldable1 f => (a -> r) -> f a -> r
- product1 :: (Foldable1 f, Multiplicative r) => f r -> r
- class Multiplicative r => Commutative r
- 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 Multiplicative r => Band r
- pow1pBand :: Whole n => r -> n -> r
- powBand :: (Unital r, Whole n) => r -> n -> r
- class Unital r => Division r where
- class Multiplicative m => Factorable m where
- factorWith :: (m -> m -> r) -> m -> NonEmpty r
- class Multiplicative r => InvolutiveMultiplication r where
- adjoint :: r -> r
- class (Commutative r, InvolutiveMultiplication r) => TriviallyInvolutive r
- class (Additive r, Abelian r, Multiplicative r) => Semiring r
- class (Semiring r, InvolutiveMultiplication r) => InvolutiveSemiring r
- class (Semiring r, Idempotent r) => Dioid r
- class (Group r, Semiring r) => Rng r
- class (Semiring r, Unital r, Monoidal r) => Rig r where
- fromNatural :: Natural -> r
- class (Rig r, Rng r) => Ring r where
- fromInteger :: Integer -> r
- class Ring r => LocalRing r
- class (Division r, Ring r) => DivisionRing r
- class (Commutative r, DivisionRing r) => Field r
- class (Semiring r, Additive m) => LeftModule r m where
- (.*) :: r -> m -> m
- class (Semiring r, Additive m) => RightModule r m where
- (*.) :: m -> r -> m
- class (LeftModule r m, RightModule r m) => Module r m
- class Semiring r => Algebra r a where
- mult :: (a -> a -> r) -> a -> r
- class Semiring r => Coalgebra r c where
- comult :: (c -> r) -> c -> c -> 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
- class (InvolutiveSemiring r, Algebra r a) => InvolutiveAlgebra r a where
- inv :: (a -> r) -> a -> r
- class (InvolutiveSemiring r, Coalgebra r c) => InvolutiveCoalgebra r c where
- coinv :: (c -> r) -> c -> r
- class (Bialgebra r h, InvolutiveAlgebra r h, InvolutiveCoalgebra r h) => InvolutiveBialgebra r h
- class (CommutativeAlgebra r a, TriviallyInvolutive r, InvolutiveAlgebra r a) => TriviallyInvolutiveAlgebra r a
- class (CocommutativeCoalgebra r a, TriviallyInvolutive r, InvolutiveCoalgebra r a) => TriviallyInvolutiveCoalgebra r a
- class (InvolutiveBialgebra r h, TriviallyInvolutiveAlgebra r h, TriviallyInvolutiveCoalgebra r h) => TriviallyInvolutiveBialgebra r h
- class Algebra r a => IdempotentAlgebra r a
- class (Bialgebra r h, IdempotentAlgebra r h, IdempotentCoalgebra r h) => IdempotentBialgebra r h
- class Algebra r a => CommutativeAlgebra r a
- class (Bialgebra r h, CommutativeAlgebra r h, CocommutativeCoalgebra r h) => CommutativeBialgebra r h
- class Coalgebra r c => CocommutativeCoalgebra r c
- class UnitalAlgebra r a => DivisionAlgebra r a where
- recipriocal :: (a -> r) -> a -> r
- class Bialgebra r h => HopfAlgebra r h where
- antipode :: (h -> r) -> h -> r
- class Rig r => Characteristic r where
- charInt :: (Integral s, Bounded s) => proxy s -> Natural
- charWord :: (Whole s, Bounded s) => proxy s -> Natural
- class Order a where
- class (AdditiveOrder r, Rig r) => OrderedRig r
- class (Additive r, Order r) => AdditiveOrder r
- class Order a => LocallyFiniteOrder a
- class Monoidal r => DecidableZero r
- class Unital r => DecidableUnits r
- class Unital r => DecidableAssociates r
- data Natural
- class Integral n => Whole n where
- addRep :: (Applicative m, Additive r) => m r -> m r -> m r
- sinnum1pRep :: (Whole n, Functor m, Additive r) => n -> m r -> m r
- zeroRep :: (Applicative m, Monoidal r) => m r
- sinnumRep :: (Whole n, Functor m, Monoidal r) => n -> m r -> m r
- negateRep :: (Functor m, Group r) => m r -> m r
- minusRep :: (Applicative m, Group r) => m r -> m r -> m r
- subtractRep :: (Applicative m, Group r) => m r -> m r -> m r
- timesRep :: (Integral n, Functor m, Group r) => n -> m r -> m r
- mulRep :: (Representable m, Algebra r (Rep m)) => m r -> m r -> m r
- oneRep :: (Representable m, Unital r, UnitalAlgebra r (Rep m)) => m r
- fromNaturalRep :: (UnitalAlgebra r (Rep m), Representable m, Rig r) => Natural -> m r
- fromIntegerRep :: (UnitalAlgebra r (Rep m), Representable m, Ring r) => Integer -> m r
- class Additive r => Quadrance r m where
- quadrance :: m -> r
- newtype Covector r a = Covector {
- ($*) :: (a -> r) -> r
- counitM :: UnitalAlgebra r a => a -> Covector r ()
- unitM :: CounitalCoalgebra r c => Covector r c
- comultM :: Algebra r a => a -> Covector r (a, a)
- multM :: Coalgebra r c => c -> c -> Covector r c
- invM :: InvolutiveAlgebra r h => h -> Covector r h
- coinvM :: InvolutiveCoalgebra r h => h -> Covector r h
- antipodeM :: HopfAlgebra r h => h -> Covector r h
- convolveM :: (Algebra r c, Coalgebra r a) => (c -> Covector r a) -> (c -> Covector r a) -> c -> Covector r a
Additive
additive semigroups
(a + b) + c = a + (b + c) sinnum 1 a = a sinnum (2 * n) a = sinnum n a + sinnum n a sinnum (2 * n + 1) a = sinnum n a + sinnum n a + a
additive Abelian semigroups
class Additive r => Abelian r Source
an additive abelian semigroup
a + b = b + a
additive idempotent semigroups
class Additive r => Idempotent r Source
An additive semigroup with idempotent addition.
a + a = a
Idempotent Bool | |
Idempotent () | |
Idempotent r => Idempotent (Complex r) | |
Idempotent r => Idempotent (Quaternion r) | |
Idempotent r => Idempotent (Dual r) | |
Idempotent r => Idempotent (Hyper' r) | |
Idempotent r => Idempotent (Hyper r) | |
Idempotent r => Idempotent (Dual' r) | |
Idempotent r => Idempotent (Quaternion' r) | |
Idempotent r => Idempotent (Trig r) | |
Band r => Idempotent (Log r) | |
Idempotent r => Idempotent (Opposite r) | |
Idempotent r => Idempotent (ZeroRng r) | |
Idempotent r => Idempotent (e -> r) | |
(Idempotent a, Idempotent b) => Idempotent (a, b) | |
Idempotent r => Idempotent (Covector r a) | |
(Idempotent a, Idempotent b, Idempotent c) => Idempotent (a, b, c) | |
(Idempotent a, Idempotent b, Idempotent c, Idempotent d) => Idempotent (a, b, c, d) | |
(Idempotent a, Idempotent b, Idempotent c, Idempotent d, Idempotent e) => Idempotent (a, b, c, d, e) |
sinnum1pIdempotent :: Natural -> r -> rSource
sinnumIdempotent :: (Integral n, Idempotent r, Monoidal r) => n -> r -> rSource
partitionable additive semigroups
class Additive m => Partitionable m whereSource
partitionWith :: (m -> m -> r) -> m -> NonEmpty rSource
partitionWith f c returns a list containing f a b for each a b such that a + b = c,
Partitionable Bool | |
Partitionable () | |
Partitionable Natural | |
Partitionable r => Partitionable (Complex r) | |
Partitionable r => Partitionable (Quaternion r) | |
Partitionable r => Partitionable (Dual r) | |
Partitionable r => Partitionable (Hyper' r) | |
Partitionable r => Partitionable (Hyper r) | |
Partitionable r => Partitionable (Dual' r) | |
Partitionable r => Partitionable (Quaternion' r) | |
Partitionable r => Partitionable (Trig r) | |
Factorable r => Partitionable (Log r) | |
(Partitionable a, Partitionable b) => Partitionable (a, b) | |
(Partitionable a, Partitionable b, Partitionable c) => Partitionable (a, b, c) | |
(Partitionable a, Partitionable b, Partitionable c, Partitionable d) => Partitionable (a, b, c, d) | |
(Partitionable a, Partitionable b, Partitionable c, Partitionable d, Partitionable e) => Partitionable (a, b, c, d, e) |
additive monoids
class (LeftModule Natural m, RightModule Natural m) => Monoidal m whereSource
An additive monoid
zero + a = a = a + zero
additive groups
class (LeftModule Integer r, RightModule Integer r, Monoidal r) => Group r whereSource
Group Int | |
Group Int8 | |
Group Int16 | |
Group Int32 | |
Group Int64 | |
Group Integer | |
Group Word | |
Group Word8 | |
Group Word16 | |
Group Word32 | |
Group Word64 | |
Group () | |
Group Euclidean | |
Group r => Group (Complex r) | |
Group r => Group (Quaternion r) | |
Group r => Group (Dual r) | |
Group r => Group (Hyper' r) | |
Group r => Group (Hyper r) | |
Group r => Group (Dual' r) | |
Group r => Group (Quaternion' r) | |
Group r => Group (Trig r) | |
Division r => Group (Log r) | |
Group r => Group (End r) | |
Group r => Group (Opposite r) | |
(Abelian r, Group r) => Group (RngRing r) | |
Group r => Group (ZeroRng r) | |
Euclidean d => Group (Fraction d) | |
Group r => Group (e -> r) | |
(Group a, Group b) => Group (a, b) | |
Group s => Group (Covector s a) | |
(Group a, Group b, Group c) => Group (a, b, c) | |
Group s => Group (Map s b a) | |
(Group a, Group b, Group c, Group d) => Group (a, b, c, d) | |
(Group a, Group b, Group c, Group d, Group e) => Group (a, b, c, d, e) |
Multiplicative
multiplicative semigroups
class Multiplicative r whereSource
A multiplicative semigroup
product1 :: (Foldable1 f, Multiplicative r) => f r -> rSource
commutative multiplicative semigroups
class Multiplicative r => Commutative r Source
A commutative multiplicative semigroup
multiplicative monoids
class Multiplicative r => Unital r whereSource
idempotent multiplicative semigroups
class Multiplicative r => Band r Source
An multiplicative semigroup with idempotent multiplication.
a * a = a
Band Bool | |
Band () | |
Idempotent r => Band (Exp r) | |
Band r => Band (Opposite r) | |
(Band a, Band b) => Band (a, b) | |
Band (Rect i j) | |
(Idempotent r, IdempotentCoalgebra r a) => Band (Covector r a) | |
(Band a, Band b, Band c) => Band (a, b, c) | |
(Band a, Band b, Band c, Band d) => Band (a, b, c, d) | |
(Band a, Band b, Band c, Band d, Band e) => Band (a, b, c, d, e) |
multiplicative groups
class Unital r => Division r whereSource
Division () | |
(Commutative r, InvolutiveSemiring r, DivisionRing r) => Division (Complex r) | |
(TriviallyInvolutive r, Ring r, Division r) => Division (Quaternion r) | |
(Commutative r, InvolutiveSemiring r, DivisionRing r) => Division (Dual r) | |
(Commutative r, InvolutiveSemiring r, DivisionRing r) => Division (Hyper' r) | |
(Commutative r, InvolutiveSemiring r, DivisionRing r) => Division (Dual' r) | |
(TriviallyInvolutive r, Ring r, Division r) => Division (Quaternion' r) | |
Group r => Division (Exp r) | |
Division r => Division (Opposite r) | |
(Rng r, Division r) => Division (RngRing r) | |
Euclidean d => Division (Fraction d) | |
(Unital r, DivisionAlgebra r a) => Division (a -> r) | |
(Division a, Division b) => Division (a, b) | |
(Division a, Division b, Division c) => Division (a, b, c) | |
(Division a, Division b, Division c, Division d) => Division (a, b, c, d) | |
(Division a, Division b, Division c, Division d, Division e) => Division (a, b, c, d, e) |
factorable multiplicative semigroups
class Multiplicative m => Factorable m whereSource
`factorWith f c` returns a non-empty list containing `f a b` for all `a, b` such that `a * b = c`.
Results of factorWith f 0 are undefined and may result in either an error or an infinite list.
factorWith :: (m -> m -> r) -> m -> NonEmpty rSource
Factorable Bool | |
Factorable () | |
Partitionable r => Factorable (Exp r) | |
(Factorable a, Factorable b) => Factorable (a, b) | |
(Factorable a, Factorable b, Factorable c) => Factorable (a, b, c) | |
(Factorable a, Factorable b, Factorable c, Factorable d) => Factorable (a, b, c, d) | |
(Factorable a, Factorable b, Factorable c, Factorable d, Factorable e) => Factorable (a, b, c, d, e) |
involutive multiplicative semigroups
class Multiplicative r => InvolutiveMultiplication r whereSource
An semigroup with involution
adjoint a * adjoint b = adjoint (b * a)
class (Commutative r, InvolutiveMultiplication r) => TriviallyInvolutive r Source
adjoint = id
Ring-Structures
Semirings
class (Additive r, Abelian r, Multiplicative r) => Semiring r Source
A pair of an additive abelian semigroup, and a multiplicative semigroup, with the distributive laws:
a(b + c) = ab + ac -- left distribution (we are a LeftNearSemiring) (a + b)c = ac + bc -- right distribution (we are a [Right]NearSemiring)
Common notation includes the laws for additive and multiplicative identity in semiring.
If you want that, look at Rig
instead.
Ideally we'd use the cyclic definition:
class (LeftModule r r, RightModule r r, Additive r, Abelian r, Multiplicative r) => Semiring r
to enforce that every semiring r is an r-module over itself, but Haskell doesn't like that.
class (Semiring r, InvolutiveMultiplication r) => InvolutiveSemiring r Source
adjoint (x + y) = adjoint x + adjoint y
class (Semiring r, Idempotent r) => Dioid r Source
(Semiring r, Idempotent r) => Dioid r |
Rngs
Rigs
class (Semiring r, Unital r, Monoidal r) => Rig r whereSource
A Ring without (n)egation
fromNatural :: Natural -> rSource
Rig Bool | |
Rig Int | |
Rig Int8 | |
Rig Int16 | |
Rig Int32 | |
Rig Int64 | |
Rig Integer | |
Rig Word | |
Rig Word8 | |
Rig Word16 | |
Rig Word32 | |
Rig Word64 | |
Rig () | |
Rig Natural | |
Rig Euclidean | |
(Commutative r, Ring r) => Rig (Complex r) | |
(TriviallyInvolutive r, Ring r) => Rig (Quaternion r) | |
(Commutative r, Ring r) => Rig (Dual r) | |
(Commutative r, Rig r) => Rig (Hyper' r) | |
(Commutative r, Rig r) => Rig (Hyper r) | |
(Commutative r, Ring r) => Rig (Dual' r) | |
Rig (BasisCoblade m) | |
(TriviallyInvolutive r, Ring r) => Rig (Quaternion' r) | |
(Commutative r, Ring r) => Rig (Trig r) | |
(Abelian r, Monoidal r) => Rig (End r) | |
Rig r => Rig (Opposite r) | |
Rng r => Rig (RngRing r) | |
Euclidean d => Rig (Fraction d) | |
(Rig a, Rig b) => Rig (a, b) | |
(Rig r, CounitalCoalgebra r m) => Rig (Covector r m) | |
(Rig a, Rig b, Rig c) => Rig (a, b, c) | |
(Rig r, CounitalCoalgebra r m) => Rig (Map r b m) | |
(Rig a, Rig b, Rig c, Rig d) => Rig (a, b, c, d) | |
(Rig a, Rig b, Rig c, Rig d, Rig e) => Rig (a, b, c, d, e) |
Rings
class (Rig r, Rng r) => Ring r whereSource
fromInteger :: Integer -> rSource
Ring Int | |
Ring Int8 | |
Ring Int16 | |
Ring Int32 | |
Ring Int64 | |
Ring Integer | |
Ring Word | |
Ring Word8 | |
Ring Word16 | |
Ring Word32 | |
Ring Word64 | |
Ring () | |
Ring Euclidean | |
(Commutative r, Ring r) => Ring (Complex r) | |
(TriviallyInvolutive r, Ring r) => Ring (Quaternion r) | |
(Commutative r, Ring r) => Ring (Dual r) | |
(Commutative r, Ring r) => Ring (Hyper' r) | |
(Commutative r, Ring r) => Ring (Hyper r) | |
(Commutative r, Ring r) => Ring (Dual' r) | |
(TriviallyInvolutive r, Ring r) => Ring (Quaternion' r) | |
(Commutative r, Ring r) => Ring (Trig r) | |
(Abelian r, Group r) => Ring (End r) | |
Ring r => Ring (Opposite r) | |
Rng r => Ring (RngRing r) | |
Euclidean d => Ring (Fraction d) | |
(Ring a, Ring b) => Ring (a, b) | |
(Ring r, CounitalCoalgebra r m) => Ring (Covector r m) | |
(Ring a, Ring b, Ring c) => Ring (a, b, c) | |
(Ring r, CounitalCoalgebra r m) => Ring (Map r a m) | |
(Ring a, Ring b, Ring c, Ring d) => Ring (a, b, c, d) | |
(Ring a, Ring b, Ring c, Ring d, Ring e) => Ring (a, b, c, d, e) |
Division Rings
class (Division r, Ring r) => DivisionRing r Source
(Division r, Ring r) => DivisionRing r |
class (Commutative r, DivisionRing r) => Field r Source
(Commutative r, DivisionRing r) => Field r |
Modules
class (Semiring r, Additive m) => LeftModule r m whereSource
class (Semiring r, Additive m) => RightModule r m whereSource
class (LeftModule r m, RightModule r m) => Module r m Source
(LeftModule r m, RightModule r m) => Module r m |
Algebras
associative algebras over (non-commutative) semirings
class Semiring r => Algebra r a whereSource
An associative algebra built with a free module over a semiring
class Semiring r => Coalgebra r c whereSource
Semiring r => Coalgebra r IntSet | the free commutative band coalgebra over Int |
Semiring r => Coalgebra r () | |
Rng k => Coalgebra k ComplexBasis | |
(TriviallyInvolutive r, Rng r) => Coalgebra r QuaternionBasis | the trivial diagonal coalgebra |
Rng k => Coalgebra k DualBasis | |
(Commutative k, Monoidal k, Semiring k) => Coalgebra k HyperBasis' | |
(Commutative k, Semiring k) => Coalgebra k HyperBasis | the hyperbolic trigonometric coalgebra |
Rng k => Coalgebra k DualBasis' | |
(TriviallyInvolutive r, Rng r) => Coalgebra r QuaternionBasis' | dual quaternion comultiplication |
(Commutative k, Rng k) => Coalgebra k TrigBasis | |
(Semiring r, Additive b) => Coalgebra r (IntMap b) | the free commutative coalgebra over a set and Int |
(Semiring r, Ord a) => Coalgebra r (Set a) | the free commutative band coalgebra |
Semiring r => Coalgebra r (Seq a) | The tensor Hopf algebra |
Semiring r => Coalgebra r [a] | The tensor Hopf algebra |
(Commutative r, Monoidal r, Semiring r, PartialSemigroup a) => Coalgebra r (Morphism a) | |
(Eq a, Commutative r, Monoidal r, Semiring r) => Coalgebra r (Interval' a) | |
Eigenmetric r m => Coalgebra r (BasisCoblade m) | |
(Semiring r, Ord a, Additive b) => Coalgebra r (Map a b) | the free commutative coalgebra over a set and a given semigroup |
(Coalgebra r a, Coalgebra r b) => Coalgebra r (a, b) | |
Algebra r m => Coalgebra r (m -> r) | Every coalgebra gives rise to an algebra by vector space duality classically. Sadly, it requires vector space duality, which we cannot use constructively. The dual argument only relies in the fact that any constructive coalgebra can only inspect a finite number of coefficients, which we CAN exploit. |
(Coalgebra r a, Coalgebra r b, Coalgebra r c) => Coalgebra r (a, b, c) | |
(Coalgebra r a, Coalgebra r b, Coalgebra r c, Coalgebra r d) => Coalgebra r (a, b, c, d) | |
(Coalgebra r a, Coalgebra r b, Coalgebra r c, Coalgebra r d, Coalgebra r e) => Coalgebra r (a, b, c, d, e) |
unital algebras
class Algebra r a => UnitalAlgebra r a whereSource
An associative unital algebra over a semiring, built using a free module
class Coalgebra r c => CounitalCoalgebra r c whereSource
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.
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) |
involutive algebras
class (InvolutiveSemiring r, Algebra r a) => InvolutiveAlgebra r a whereSource
class (InvolutiveSemiring r, Coalgebra r c) => InvolutiveCoalgebra r c whereSource
class (Bialgebra r h, InvolutiveAlgebra r h, InvolutiveCoalgebra r h) => InvolutiveBialgebra r h Source
(Bialgebra r h, InvolutiveAlgebra r h, InvolutiveCoalgebra r h) => InvolutiveBialgebra r h |
class (CommutativeAlgebra r a, TriviallyInvolutive r, InvolutiveAlgebra r a) => TriviallyInvolutiveAlgebra r a Source
(TriviallyInvolutive r, InvolutiveSemiring r) => TriviallyInvolutiveAlgebra r () | |
(TriviallyInvolutiveAlgebra r a, TriviallyInvolutiveAlgebra r b) => TriviallyInvolutiveAlgebra r (a, b) | |
(TriviallyInvolutiveAlgebra r a, TriviallyInvolutiveAlgebra r b, TriviallyInvolutiveAlgebra r c) => TriviallyInvolutiveAlgebra r (a, b, c) | |
(TriviallyInvolutiveAlgebra r a, TriviallyInvolutiveAlgebra r b, TriviallyInvolutiveAlgebra r c, TriviallyInvolutiveAlgebra r d) => TriviallyInvolutiveAlgebra r (a, b, c, d) | |
(TriviallyInvolutiveAlgebra r a, TriviallyInvolutiveAlgebra r b, TriviallyInvolutiveAlgebra r c, TriviallyInvolutiveAlgebra r d, TriviallyInvolutiveAlgebra r e) => TriviallyInvolutiveAlgebra r (a, b, c, d, e) |
class (CocommutativeCoalgebra r a, TriviallyInvolutive r, InvolutiveCoalgebra r a) => TriviallyInvolutiveCoalgebra r a Source
(TriviallyInvolutive r, InvolutiveSemiring r) => TriviallyInvolutiveCoalgebra r () | |
(TriviallyInvolutiveCoalgebra r a, TriviallyInvolutiveCoalgebra r b) => TriviallyInvolutiveCoalgebra r (a, b) | |
(TriviallyInvolutiveCoalgebra r a, TriviallyInvolutiveCoalgebra r b, TriviallyInvolutiveCoalgebra r c) => TriviallyInvolutiveCoalgebra r (a, b, c) | |
(TriviallyInvolutiveCoalgebra r a, TriviallyInvolutiveCoalgebra r b, TriviallyInvolutiveCoalgebra r c, TriviallyInvolutiveCoalgebra r d) => TriviallyInvolutiveCoalgebra r (a, b, c, d) | |
(TriviallyInvolutiveCoalgebra r a, TriviallyInvolutiveCoalgebra r b, TriviallyInvolutiveCoalgebra r c, TriviallyInvolutiveCoalgebra r d, TriviallyInvolutiveCoalgebra r e) => TriviallyInvolutiveCoalgebra r (a, b, c, d, e) |
class (InvolutiveBialgebra r h, TriviallyInvolutiveAlgebra r h, TriviallyInvolutiveCoalgebra r h) => TriviallyInvolutiveBialgebra r h Source
(InvolutiveBialgebra r h, TriviallyInvolutiveAlgebra r h, TriviallyInvolutiveCoalgebra r h) => TriviallyInvolutiveBialgebra r h |
idempotent algebras
class Algebra r a => IdempotentAlgebra r a Source
(Semiring r, Band r) => IdempotentAlgebra r () | |
(Semiring r, Band r) => IdempotentAlgebra r IntSet | |
(Semiring r, Band r, Ord a) => IdempotentAlgebra r (Set a) | |
(IdempotentAlgebra r a, IdempotentAlgebra r b) => IdempotentAlgebra r (a, b) | |
(IdempotentAlgebra r a, IdempotentAlgebra r b, IdempotentAlgebra r c) => IdempotentAlgebra r (a, b, c) | |
(IdempotentAlgebra r a, IdempotentAlgebra r b, IdempotentAlgebra r c, IdempotentAlgebra r d) => IdempotentAlgebra r (a, b, c, d) | |
(IdempotentAlgebra r a, IdempotentAlgebra r b, IdempotentAlgebra r c, IdempotentAlgebra r d, IdempotentAlgebra r e) => IdempotentAlgebra r (a, b, c, d, e) |
class (Bialgebra r h, IdempotentAlgebra r h, IdempotentCoalgebra r h) => IdempotentBialgebra r h Source
(Bialgebra r h, IdempotentAlgebra r h, IdempotentCoalgebra r h) => IdempotentBialgebra r h |
commutative algebras
class Algebra r a => CommutativeAlgebra r a Source
(Commutative r, Semiring r) => CommutativeAlgebra r IntSet | |
(Commutative r, Semiring r) => CommutativeAlgebra r () | |
(Commutative r, Monoidal r, Semiring r, Abelian b, Partitionable b) => CommutativeAlgebra r (IntMap b) | |
(Commutative r, Semiring r, Ord a) => CommutativeAlgebra r (Set a) | |
(Commutative r, Monoidal r, Semiring r, Ord a, Abelian b, Partitionable b) => CommutativeAlgebra r (Map a b) | |
(CommutativeAlgebra r a, CommutativeAlgebra r b) => CommutativeAlgebra r (a, b) | |
(CommutativeAlgebra r a, CommutativeAlgebra r b, CommutativeAlgebra r c) => CommutativeAlgebra r (a, b, c) | |
(CommutativeAlgebra r a, CommutativeAlgebra r b, CommutativeAlgebra r c, CommutativeAlgebra r d) => CommutativeAlgebra r (a, b, c, d) | |
(CommutativeAlgebra r a, CommutativeAlgebra r b, CommutativeAlgebra r c, CommutativeAlgebra r d, CommutativeAlgebra r e) => CommutativeAlgebra r (a, b, c, d, e) |
class (Bialgebra r h, CommutativeAlgebra r h, CocommutativeCoalgebra r h) => CommutativeBialgebra r h Source
(Bialgebra r h, CommutativeAlgebra r h, CocommutativeCoalgebra r h) => CommutativeBialgebra r h |
class Coalgebra r c => CocommutativeCoalgebra r c Source
(Commutative r, Semiring r) => CocommutativeCoalgebra r IntSet | |
(Commutative r, Semiring r) => CocommutativeCoalgebra r () | |
(Commutative r, Semiring r, Abelian b) => CocommutativeCoalgebra r (IntMap b) | |
(Commutative r, Semiring r, Ord a) => CocommutativeCoalgebra r (Set a) | |
(Commutative r, Semiring r, Ord a, Abelian b) => CocommutativeCoalgebra r (Map a b) | |
(CocommutativeCoalgebra r a, CocommutativeCoalgebra r b) => CocommutativeCoalgebra r (a, b) | |
CommutativeAlgebra r m => CocommutativeCoalgebra r (m -> r) | |
(CocommutativeCoalgebra r a, CocommutativeCoalgebra r b, CocommutativeCoalgebra r c) => CocommutativeCoalgebra r (a, b, c) | |
(CocommutativeCoalgebra r a, CocommutativeCoalgebra r b, CocommutativeCoalgebra r c, CocommutativeCoalgebra r d) => CocommutativeCoalgebra r (a, b, c, d) | |
(CocommutativeCoalgebra r a, CocommutativeCoalgebra r b, CocommutativeCoalgebra r c, CocommutativeCoalgebra r d, CocommutativeCoalgebra r e) => CocommutativeCoalgebra r (a, b, c, d, e) |
division algebras
class UnitalAlgebra r a => DivisionAlgebra r a whereSource
recipriocal :: (a -> r) -> a -> rSource
Hopf alegebras
class Bialgebra r h => HopfAlgebra r h whereSource
A HopfAlgebra algebra on a semiring, where the module is free.
When antipode . antipode = id
and antipode is an antihomomorphism then we are an InvolutiveBialgebra with inv = antipode
as well
(InvolutiveSemiring k, Rng k) => HopfAlgebra k ComplexBasis | |
(TriviallyInvolutive r, InvolutiveSemiring r, Rng r) => HopfAlgebra r QuaternionBasis | |
(InvolutiveSemiring k, Rng k) => HopfAlgebra k DualBasis | |
(Commutative k, Group k, InvolutiveSemiring k) => HopfAlgebra k HyperBasis' | |
(Commutative k, Group k, InvolutiveSemiring k) => HopfAlgebra k HyperBasis | |
(InvolutiveSemiring k, Rng k) => HopfAlgebra k DualBasis' | |
(TriviallyInvolutive r, InvolutiveSemiring r, Rng r) => HopfAlgebra r QuaternionBasis' | |
(Commutative k, Group k, InvolutiveSemiring k) => HopfAlgebra k TrigBasis | |
(HopfAlgebra r a, HopfAlgebra r b) => HopfAlgebra r (a, b) | |
(HopfAlgebra r a, HopfAlgebra r b, HopfAlgebra r c) => HopfAlgebra r (a, b, c) | |
(HopfAlgebra r a, HopfAlgebra r b, HopfAlgebra r c, HopfAlgebra r d) => HopfAlgebra r (a, b, c, d) | |
(HopfAlgebra r a, HopfAlgebra r b, HopfAlgebra r c, HopfAlgebra r d, HopfAlgebra r e) => HopfAlgebra r (a, b, c, d, e) |
Ring Properties
Characteristic
class Rig r => Characteristic r whereSource
Characteristic Bool | NB: we're using the boolean semiring, not the boolean ring |
Characteristic Int | |
Characteristic Int8 | |
Characteristic Int16 | |
Characteristic Int32 | |
Characteristic Int64 | |
Characteristic Integer | |
Characteristic Word | |
Characteristic Word8 | |
Characteristic Word16 | |
Characteristic Word32 | |
Characteristic Word64 | |
Characteristic () | |
Characteristic Natural | |
(Characteristic d, Euclidean d) => Characteristic (Fraction d) | |
(Characteristic a, Characteristic b) => Characteristic (a, b) | |
(Characteristic a, Characteristic b, Characteristic c) => Characteristic (a, b, c) | |
(Characteristic a, Characteristic b, Characteristic c, Characteristic d) => Characteristic (a, b, c, d) | |
(Characteristic a, Characteristic b, Characteristic c, Characteristic d, Characteristic e) => Characteristic (a, b, c, d, e) |
Order
Order Bool | |
Order Int | |
Order Int8 | |
Order Int16 | |
Order Int32 | |
Order Int64 | |
Order Integer | |
Order Word | |
Order Word8 | |
Order Word16 | |
Order Word32 | |
Order Word64 | |
Order () | |
Order Natural | |
Ord a => Order (Set a) | |
(Order a, Order b) => Order (a, b) | |
(Order a, Order b, Order c) => Order (a, b, c) | |
(Order a, Order b, Order c, Order d) => Order (a, b, c, d) | |
(Order a, Order b, Order c, Order d, Order e) => Order (a, b, c, d, e) |
class (AdditiveOrder r, Rig r) => OrderedRig r Source
OrderedRig Bool | |
OrderedRig Integer | |
OrderedRig () | |
OrderedRig Natural | |
(OrderedRig a, OrderedRig b) => OrderedRig (a, b) | |
(OrderedRig a, OrderedRig b, OrderedRig c) => OrderedRig (a, b, c) | |
(OrderedRig a, OrderedRig b, OrderedRig c, OrderedRig d) => OrderedRig (a, b, c, d) | |
(OrderedRig a, OrderedRig b, OrderedRig c, OrderedRig d, OrderedRig e) => OrderedRig (a, b, c, d, e) |
class (Additive r, Order r) => AdditiveOrder r Source
z + x <= z + y = x <= y = x + z <= y + z
AdditiveOrder Bool | |
AdditiveOrder Integer | |
AdditiveOrder () | |
AdditiveOrder Natural | |
(AdditiveOrder a, AdditiveOrder b) => AdditiveOrder (a, b) | |
(AdditiveOrder a, AdditiveOrder b, AdditiveOrder c) => AdditiveOrder (a, b, c) | |
(AdditiveOrder a, AdditiveOrder b, AdditiveOrder c, AdditiveOrder d) => AdditiveOrder (a, b, c, d) | |
(AdditiveOrder a, AdditiveOrder b, AdditiveOrder c, AdditiveOrder d, AdditiveOrder e) => AdditiveOrder (a, b, c, d, e) |
class Order a => LocallyFiniteOrder a Source
class Monoidal r => DecidableZero r Source
DecidableZero Bool | |
DecidableZero Int | |
DecidableZero Int8 | |
DecidableZero Int16 | |
DecidableZero Int32 | |
DecidableZero Int64 | |
DecidableZero Integer | |
DecidableZero Word | |
DecidableZero Word8 | |
DecidableZero Word16 | |
DecidableZero Word32 | |
DecidableZero Word64 | |
DecidableZero () | |
DecidableZero Natural | |
DecidableZero (BasisCoblade m) | |
DecidableZero r => DecidableZero (Opposite r) | |
Euclidean d => DecidableZero (Fraction d) | |
(DecidableZero a, DecidableZero b) => DecidableZero (a, b) | |
(DecidableZero a, DecidableZero b, DecidableZero c) => DecidableZero (a, b, c) | |
(DecidableZero a, DecidableZero b, DecidableZero c, DecidableZero d) => DecidableZero (a, b, c, d) | |
(DecidableZero a, DecidableZero b, DecidableZero c, DecidableZero d, DecidableZero e) => DecidableZero (a, b, c, d, e) |
class Unital r => DecidableUnits r Source
DecidableUnits Bool | |
DecidableUnits Int | |
DecidableUnits Int8 | |
DecidableUnits Int16 | |
DecidableUnits Int32 | |
DecidableUnits Int64 | |
DecidableUnits Integer | |
DecidableUnits Word | |
DecidableUnits Word8 | |
DecidableUnits Word16 | |
DecidableUnits Word32 | |
DecidableUnits Word64 | |
DecidableUnits () | |
DecidableUnits Natural | |
DecidableUnits (BasisCoblade m) | |
DecidableUnits r => DecidableUnits (Opposite r) | |
Euclidean d => DecidableUnits (Fraction d) | |
(DecidableUnits a, DecidableUnits b) => DecidableUnits (a, b) | |
(DecidableUnits a, DecidableUnits b, DecidableUnits c) => DecidableUnits (a, b, c) | |
(DecidableUnits a, DecidableUnits b, DecidableUnits c, DecidableUnits d) => DecidableUnits (a, b, c, d) | |
(DecidableUnits a, DecidableUnits b, DecidableUnits c, DecidableUnits d, DecidableUnits e) => DecidableUnits (a, b, c, d, e) |
class Unital r => DecidableAssociates r Source
Natural numbers
data Natural
class Integral n => Whole n where
A refinement of Integral
to represent types that do not contain negative numbers.
Representable Additive
addRep :: (Applicative m, Additive r) => m r -> m r -> m rSource
`Additive.(+)` default definition
Representable Monoidal
zeroRep :: (Applicative m, Monoidal r) => m rSource
zero
default definition
Representable Group
minusRep :: (Applicative m, Group r) => m r -> m r -> m rSource
`Group.(-)` default definition
subtractRep :: (Applicative m, Group r) => m r -> m r -> m rSource
subtract
default definition
Representable Multiplicative (via Algebra)
mulRep :: (Representable m, Algebra r (Rep m)) => m r -> m r -> m rSource
`Multiplicative.(*)` default definition
Representable Unital (via UnitalAlgebra)
oneRep :: (Representable m, Unital r, UnitalAlgebra r (Rep m)) => m rSource
one
default definition
Representable Rig (via Algebra)
fromNaturalRep :: (UnitalAlgebra r (Rep m), Representable m, Rig r) => Natural -> m rSource
fromNatural
default definition
Representable Ring (via Algebra)
fromIntegerRep :: (UnitalAlgebra r (Rep m), Representable m, Ring r) => Integer -> m rSource
fromInteger
default definition
Norm
class Additive r => Quadrance r m whereSource
Covectors
Linear functionals from elements of an (infinite) free module to a scalar
Covectors as linear functionals
counitM :: UnitalAlgebra r a => a -> Covector r ()Source
unitM :: CounitalCoalgebra r c => Covector r cSource
invM :: InvolutiveAlgebra r h => h -> Covector r hSource
coinvM :: InvolutiveCoalgebra r h => h -> Covector r hSource
antipodeM :: HopfAlgebra r h => h -> Covector r hSource
convolveM antipodeM return = convolveM return antipodeM = comultM >=> uncurry joinM