Safe Haskell | None |
---|---|
Language | Haskell98 |
- 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
- 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
- product1 :: (Foldable1 f, Multiplicative r) => f r -> r
- class Multiplicative r => Commutative r
- class Multiplicative r => Unital r where
- product :: (Foldable f, Unital r) => f r -> r
- class Multiplicative r => Band r
- pow1pBand :: r -> Natural -> r
- powBand :: Unital r => r -> Natural -> r
- class Unital r => Division r where
- class Multiplicative m => Factorable m where
- class Multiplicative r => InvolutiveMultiplication r where
- 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
- class (Rig r, Rng r) => Ring r where
- class Ring r => LocalRing r
- class (Division r, Ring r) => DivisionRing r
- class (Euclidean d, Division d) => Field d
- class (Semiring r, Additive m) => LeftModule r m where
- class (Semiring r, Additive m) => RightModule r m where
- class (LeftModule r m, RightModule r m) => Module r m
- class Semiring r => Algebra r a where
- class Semiring r => Coalgebra r c where
- class Algebra r a => UnitalAlgebra r a where
- class Coalgebra r c => CounitalCoalgebra r c where
- class (UnitalAlgebra r a, CounitalCoalgebra r a) => Bialgebra r a
- class (InvolutiveSemiring r, Algebra r a) => InvolutiveAlgebra r a where
- class (InvolutiveSemiring r, Coalgebra r c) => InvolutiveCoalgebra r c where
- 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
- class Bialgebra r h => HopfAlgebra r h where
- class Rig r => Characteristic r where
- charInt :: (Integral s, Bounded s) => proxy s -> Natural
- charWord :: (Integral 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 :: *
- addRep :: (Applicative m, Additive r) => m r -> m r -> m r
- sinnum1pRep :: (Functor m, Additive r) => Natural -> m r -> m r
- zeroRep :: (Applicative m, Monoidal r) => m r
- sinnumRep :: (Functor m, Monoidal r) => Natural -> 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
- 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
class Additive r where Source #
(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
(+) :: r -> r -> r infixl 6 Source #
sinnum1p :: Natural -> r -> r Source #
sinnum1p n r = sinnum (1 + n) r
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 Source # | |
Idempotent () Source # | |
Idempotent r => Idempotent (ZeroRng r) Source # | |
Idempotent r => Idempotent (Opposite r) Source # | |
Band r => Idempotent (Log r) Source # | |
Idempotent r => Idempotent (Trig r) Source # | |
Idempotent r => Idempotent (Quaternion' r) Source # | |
Idempotent r => Idempotent (Hyper r) Source # | |
Idempotent r => Idempotent (Dual' r) Source # | |
Idempotent r => Idempotent (Quaternion r) Source # | |
Idempotent r => Idempotent (Hyper' r) Source # | |
Idempotent r => Idempotent (Dual r) Source # | |
Idempotent r => Idempotent (Complex r) Source # | |
Idempotent r => Idempotent (e -> r) Source # | |
(Idempotent a, Idempotent b) => Idempotent (a, b) Source # | |
Idempotent r => Idempotent (Covector r a) Source # | |
(Idempotent a, Idempotent b, Idempotent c) => Idempotent (a, b, c) Source # | |
(Idempotent a, Idempotent b, Idempotent c, Idempotent d) => Idempotent (a, b, c, d) Source # | |
(Idempotent a, Idempotent b, Idempotent c, Idempotent d, Idempotent e) => Idempotent (a, b, c, d, e) Source # | |
sinnum1pIdempotent :: Natural -> r -> r Source #
sinnumIdempotent :: (Integral n, Idempotent r, Monoidal r) => n -> r -> r Source #
partitionable additive semigroups
class Additive m => Partitionable m where Source #
partitionWith :: (m -> m -> r) -> m -> NonEmpty r Source #
partitionWith f c returns a list containing f a b for each a b such that a + b = c,
Partitionable Bool Source # | |
Partitionable Natural Source # | |
Partitionable () Source # | |
Factorable r => Partitionable (Log r) Source # | |
Partitionable r => Partitionable (Trig r) Source # | |
Partitionable r => Partitionable (Quaternion' r) Source # | |
Partitionable r => Partitionable (Hyper r) Source # | |
Partitionable r => Partitionable (Dual' r) Source # | |
Partitionable r => Partitionable (Quaternion r) Source # | |
Partitionable r => Partitionable (Hyper' r) Source # | |
Partitionable r => Partitionable (Dual r) Source # | |
Partitionable r => Partitionable (Complex r) Source # | |
(Partitionable a, Partitionable b) => Partitionable (a, b) Source # | |
(Partitionable a, Partitionable b, Partitionable c) => Partitionable (a, b, c) Source # | |
(Partitionable a, Partitionable b, Partitionable c, Partitionable d) => Partitionable (a, b, c, d) Source # | |
(Partitionable a, Partitionable b, Partitionable c, Partitionable d, Partitionable e) => Partitionable (a, b, c, d, e) Source # | |
additive monoids
class (LeftModule Natural m, RightModule Natural m) => Monoidal m where Source #
An additive monoid
zero + a = a = a + zero
additive groups
class (LeftModule Integer r, RightModule Integer r, Monoidal r) => Group r where Source #
Multiplicative
multiplicative semigroups
class Multiplicative r where Source #
A multiplicative semigroup
(*) :: r -> r -> r infixl 7 Source #
pow1p :: r -> Natural -> r infixr 8 Source #
productWith1 :: Foldable1 f => (a -> r) -> f a -> r Source #
product1 :: (Foldable1 f, Multiplicative r) => f r -> r Source #
commutative multiplicative semigroups
class Multiplicative r => Commutative r Source #
A commutative multiplicative semigroup
multiplicative monoids
class Multiplicative r => Unital r where Source #
pow :: r -> Natural -> r infixr 8 Source #
productWith :: Foldable f => (a -> r) -> f a -> r Source #
idempotent multiplicative semigroups
class Multiplicative r => Band r Source #
An multiplicative semigroup with idempotent multiplication.
a * a = a
Band Bool Source # | |
Band () Source # | |
Band r => Band (Opposite r) Source # | |
Idempotent r => Band (Exp r) Source # | |
(Band a, Band b) => Band (a, b) Source # | |
Band (Rect i j) Source # | |
(Idempotent r, IdempotentCoalgebra r a) => Band (Covector r a) Source # | |
(Band a, Band b, Band c) => Band (a, b, c) Source # | |
(Band a, Band b, Band c, Band d) => Band (a, b, c, d) Source # | |
(Band a, Band b, Band c, Band d, Band e) => Band (a, b, c, d, e) Source # | |
multiplicative groups
class Unital r => Division r where Source #
factorable multiplicative semigroups
class Multiplicative m => Factorable m where Source #
`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 r Source #
Factorable Bool Source # | |
Factorable () Source # | |
Partitionable r => Factorable (Exp r) Source # | |
(Factorable a, Factorable b) => Factorable (a, b) Source # | |
(Factorable a, Factorable b, Factorable c) => Factorable (a, b, c) Source # | |
(Factorable a, Factorable b, Factorable c, Factorable d) => Factorable (a, b, c, d) Source # | |
(Factorable a, Factorable b, Factorable c, Factorable d, Factorable e) => Factorable (a, b, c, d, e) Source # | |
involutive multiplicative semigroups
class Multiplicative r => InvolutiveMultiplication r where Source #
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 Source # | |
Rngs
Rigs
class (Semiring r, Unital r, Monoidal r) => Rig r where Source #
A Ring without (n)egation
fromNatural :: Natural -> r Source #
Rings
class (Rig r, Rng r) => Ring r where Source #
fromInteger :: Integer -> r Source #
Division Rings
class (Division r, Ring r) => DivisionRing r Source #
(Division r, Ring r) => DivisionRing r Source # | |
Modules
class (Semiring r, Additive m) => LeftModule r m where Source #
class (Semiring r, Additive m) => RightModule r m where Source #
class (LeftModule r m, RightModule r m) => Module r m Source #
(LeftModule r m, RightModule r m) => Module r m Source # | |
Algebras
associative algebras over (non-commutative) semirings
class Semiring r => Algebra r a where Source #
An associative algebra built with a free module over a semiring
class Semiring r => Coalgebra r c where Source #
Semiring r => Coalgebra r IntSet Source # | the free commutative band coalgebra over Int |
Semiring r => Coalgebra r () Source # | |
(Commutative k, Rng k) => Coalgebra k TrigBasis Source # | |
(TriviallyInvolutive r, Rng r) => Coalgebra r QuaternionBasis' Source # | dual quaternion comultiplication |
(Commutative k, Semiring k) => Coalgebra k HyperBasis Source # | the hyperbolic trigonometric coalgebra |
Rng k => Coalgebra k DualBasis' Source # | |
(TriviallyInvolutive r, Rng r) => Coalgebra r QuaternionBasis Source # | the trivial diagonal coalgebra |
(Commutative k, Monoidal k, Semiring k) => Coalgebra k HyperBasis' Source # | |
Rng k => Coalgebra k DualBasis Source # | |
Rng k => Coalgebra k ComplexBasis Source # | |
(Semiring r, Additive b) => Coalgebra r (IntMap b) Source # | the free commutative coalgebra over a set and Int |
(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 |
(Commutative r, Monoidal r, Semiring r, PartialSemigroup a) => Coalgebra r (Morphism a) Source # | |
(Eq a, Commutative r, Monoidal r, Semiring r) => Coalgebra r (Interval' a) Source # | |
Eigenmetric r m => Coalgebra r (BasisCoblade m) Source # | |
(Semiring r, Ord a, Additive b) => Coalgebra r (Map a b) Source # | the free commutative coalgebra over a set and a given semigroup |
(Coalgebra r a, Coalgebra r b) => Coalgebra r (a, b) Source # | |
Algebra r m => Coalgebra r (m -> r) Source # | 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) Source # | |
(Coalgebra r a, Coalgebra r b, Coalgebra r c, Coalgebra r d) => Coalgebra r (a, b, c, d) Source # | |
(Coalgebra r a, Coalgebra r b, Coalgebra r c, Coalgebra r d, Coalgebra r e) => Coalgebra r (a, b, c, d, e) Source # | |
unital algebras
class Algebra r a => UnitalAlgebra r a where Source #
An associative unital algebra over a semiring, built using a free module
class Coalgebra r c => CounitalCoalgebra r c where Source #
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 () Source # | |
(Commutative k, Rng k) => Bialgebra k TrigBasis Source # | |
(TriviallyInvolutive r, Rng r) => Bialgebra r QuaternionBasis' Source # | |
(Commutative k, Semiring k) => Bialgebra k HyperBasis Source # | |
Rng k => Bialgebra k DualBasis' Source # | |
(TriviallyInvolutive r, Rng r) => Bialgebra r QuaternionBasis Source # | |
(Commutative k, Monoidal k, Semiring k) => Bialgebra k HyperBasis' Source # | |
Rng k => Bialgebra k DualBasis Source # | |
Rng k => Bialgebra k ComplexBasis 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 # | |
involutive algebras
class (InvolutiveSemiring r, Algebra r a) => InvolutiveAlgebra r a where Source #
class (InvolutiveSemiring r, Coalgebra r c) => InvolutiveCoalgebra r c where Source #
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 Source # | |
class (CommutativeAlgebra r a, TriviallyInvolutive r, InvolutiveAlgebra r a) => TriviallyInvolutiveAlgebra r a Source #
(TriviallyInvolutive r, InvolutiveSemiring r) => TriviallyInvolutiveAlgebra r () Source # | |
(TriviallyInvolutiveAlgebra r a, TriviallyInvolutiveAlgebra r b) => TriviallyInvolutiveAlgebra r (a, b) Source # | |
(TriviallyInvolutiveAlgebra r a, TriviallyInvolutiveAlgebra r b, TriviallyInvolutiveAlgebra r c) => TriviallyInvolutiveAlgebra r (a, b, c) Source # | |
(TriviallyInvolutiveAlgebra r a, TriviallyInvolutiveAlgebra r b, TriviallyInvolutiveAlgebra r c, TriviallyInvolutiveAlgebra r d) => TriviallyInvolutiveAlgebra r (a, b, c, d) Source # | |
(TriviallyInvolutiveAlgebra r a, TriviallyInvolutiveAlgebra r b, TriviallyInvolutiveAlgebra r c, TriviallyInvolutiveAlgebra r d, TriviallyInvolutiveAlgebra r e) => TriviallyInvolutiveAlgebra r (a, b, c, d, e) Source # | |
class (CocommutativeCoalgebra r a, TriviallyInvolutive r, InvolutiveCoalgebra r a) => TriviallyInvolutiveCoalgebra r a Source #
(TriviallyInvolutive r, InvolutiveSemiring r) => TriviallyInvolutiveCoalgebra r () Source # | |
(TriviallyInvolutiveCoalgebra r a, TriviallyInvolutiveCoalgebra r b) => TriviallyInvolutiveCoalgebra r (a, b) Source # | |
(TriviallyInvolutiveCoalgebra r a, TriviallyInvolutiveCoalgebra r b, TriviallyInvolutiveCoalgebra r c) => TriviallyInvolutiveCoalgebra r (a, b, c) Source # | |
(TriviallyInvolutiveCoalgebra r a, TriviallyInvolutiveCoalgebra r b, TriviallyInvolutiveCoalgebra r c, TriviallyInvolutiveCoalgebra r d) => TriviallyInvolutiveCoalgebra r (a, b, c, d) Source # | |
(TriviallyInvolutiveCoalgebra r a, TriviallyInvolutiveCoalgebra r b, TriviallyInvolutiveCoalgebra r c, TriviallyInvolutiveCoalgebra r d, TriviallyInvolutiveCoalgebra r e) => TriviallyInvolutiveCoalgebra r (a, b, c, d, e) Source # | |
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 Source # | |
idempotent algebras
class Algebra r a => IdempotentAlgebra r a Source #
(Semiring r, Band r) => IdempotentAlgebra r () Source # | |
(Semiring r, Band r) => IdempotentAlgebra r IntSet Source # | |
(Semiring r, Band r, Ord a) => IdempotentAlgebra r (Set a) Source # | |
(IdempotentAlgebra r a, IdempotentAlgebra r b) => IdempotentAlgebra r (a, b) Source # | |
(IdempotentAlgebra r a, IdempotentAlgebra r b, IdempotentAlgebra r c) => IdempotentAlgebra r (a, b, c) Source # | |
(IdempotentAlgebra r a, IdempotentAlgebra r b, IdempotentAlgebra r c, IdempotentAlgebra r d) => IdempotentAlgebra r (a, b, c, d) Source # | |
(IdempotentAlgebra r a, IdempotentAlgebra r b, IdempotentAlgebra r c, IdempotentAlgebra r d, IdempotentAlgebra r e) => IdempotentAlgebra r (a, b, c, d, e) Source # | |
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 Source # | |
commutative algebras
class Algebra r a => CommutativeAlgebra r a Source #
(Commutative r, Semiring r) => CommutativeAlgebra r IntSet Source # | |
(Commutative r, Semiring r) => CommutativeAlgebra r () Source # | |
(Commutative r, Semiring r, Ord a) => CommutativeAlgebra r (Set a) Source # | |
(CommutativeAlgebra r a, CommutativeAlgebra r b) => CommutativeAlgebra r (a, b) Source # | |
(CommutativeAlgebra r a, CommutativeAlgebra r b, CommutativeAlgebra r c) => CommutativeAlgebra r (a, b, c) Source # | |
(CommutativeAlgebra r a, CommutativeAlgebra r b, CommutativeAlgebra r c, CommutativeAlgebra r d) => CommutativeAlgebra r (a, b, c, d) Source # | |
(CommutativeAlgebra r a, CommutativeAlgebra r b, CommutativeAlgebra r c, CommutativeAlgebra r d, CommutativeAlgebra r e) => CommutativeAlgebra r (a, b, c, d, e) Source # | |
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 Source # | |
class Coalgebra r c => CocommutativeCoalgebra r c Source #
division algebras
class UnitalAlgebra r a => DivisionAlgebra r a where Source #
recipriocal :: (a -> r) -> a -> r Source #
Hopf alegebras
class Bialgebra r h => HopfAlgebra r h where Source #
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
Ring Properties
Characteristic
class Rig r => Characteristic r where Source #
Characteristic Bool Source # | NB: we're using the boolean semiring, not the boolean ring |
Characteristic Int Source # | |
Characteristic Int8 Source # | |
Characteristic Int16 Source # | |
Characteristic Int32 Source # | |
Characteristic Int64 Source # | |
Characteristic Integer Source # | |
Characteristic Natural Source # | |
Characteristic Word Source # | |
Characteristic Word8 Source # | |
Characteristic Word16 Source # | |
Characteristic Word32 Source # | |
Characteristic Word64 Source # | |
Characteristic () Source # | |
(Characteristic d, GCDDomain d) => Characteristic (Fraction d) Source # | |
(Characteristic a, Characteristic b) => Characteristic (a, b) Source # | |
(Characteristic a, Characteristic b, Characteristic c) => Characteristic (a, b, c) Source # | |
(Characteristic a, Characteristic b, Characteristic c, Characteristic d) => Characteristic (a, b, c, d) Source # | |
(Characteristic a, Characteristic b, Characteristic c, Characteristic d, Characteristic e) => Characteristic (a, b, c, d, e) Source # | |
Order
(<~) :: a -> a -> Bool Source #
(<) :: a -> a -> Bool Source #
(>~) :: a -> a -> Bool Source #
(>) :: a -> a -> Bool Source #
(~~) :: a -> a -> Bool Source #
(/~) :: a -> a -> Bool Source #
order :: a -> a -> Maybe Ordering Source #
comparable :: a -> a -> Bool Source #
Order Bool Source # | |
Order Int Source # | |
Order Int8 Source # | |
Order Int16 Source # | |
Order Int32 Source # | |
Order Int64 Source # | |
Order Integer Source # | |
Order Natural Source # | |
Order Word Source # | |
Order Word8 Source # | |
Order Word16 Source # | |
Order Word32 Source # | |
Order Word64 Source # | |
Order () Source # | |
Ord a => Order (Set a) Source # | |
(Order a, Order b) => Order (a, b) Source # | |
(Order a, Order b, Order c) => Order (a, b, c) Source # | |
(Order a, Order b, Order c, Order d) => Order (a, b, c, d) Source # | |
(Order a, Order b, Order c, Order d, Order e) => Order (a, b, c, d, e) Source # | |
class (AdditiveOrder r, Rig r) => OrderedRig r Source #
OrderedRig Bool Source # | |
OrderedRig Integer Source # | |
OrderedRig Natural Source # | |
OrderedRig () Source # | |
(OrderedRig a, OrderedRig b) => OrderedRig (a, b) Source # | |
(OrderedRig a, OrderedRig b, OrderedRig c) => OrderedRig (a, b, c) Source # | |
(OrderedRig a, OrderedRig b, OrderedRig c, OrderedRig d) => OrderedRig (a, b, c, d) Source # | |
(OrderedRig a, OrderedRig b, OrderedRig c, OrderedRig d, OrderedRig e) => OrderedRig (a, b, c, d, e) Source # | |
class (Additive r, Order r) => AdditiveOrder r Source #
z + x <= z + y = x <= y = x + z <= y + z
AdditiveOrder Bool Source # | |
AdditiveOrder Integer Source # | |
AdditiveOrder Natural Source # | |
AdditiveOrder () Source # | |
(AdditiveOrder a, AdditiveOrder b) => AdditiveOrder (a, b) Source # | |
(AdditiveOrder a, AdditiveOrder b, AdditiveOrder c) => AdditiveOrder (a, b, c) Source # | |
(AdditiveOrder a, AdditiveOrder b, AdditiveOrder c, AdditiveOrder d) => AdditiveOrder (a, b, c, d) Source # | |
(AdditiveOrder a, AdditiveOrder b, AdditiveOrder c, AdditiveOrder d, AdditiveOrder e) => AdditiveOrder (a, b, c, d, e) Source # | |
class Order a => LocallyFiniteOrder a Source #
class Monoidal r => DecidableZero r Source #
DecidableZero Bool Source # | |
DecidableZero Int Source # | |
DecidableZero Int8 Source # | |
DecidableZero Int16 Source # | |
DecidableZero Int32 Source # | |
DecidableZero Int64 Source # | |
DecidableZero Integer Source # | |
DecidableZero Natural Source # | |
DecidableZero Word Source # | |
DecidableZero Word8 Source # | |
DecidableZero Word16 Source # | |
DecidableZero Word32 Source # | |
DecidableZero Word64 Source # | |
DecidableZero () Source # | |
DecidableZero r => DecidableZero (Opposite r) Source # | |
DecidableZero (BasisCoblade m) Source # | |
GCDDomain d => DecidableZero (Fraction d) Source # | |
(DecidableZero a, DecidableZero b) => DecidableZero (a, b) Source # | |
(DecidableZero a, DecidableZero b, DecidableZero c) => DecidableZero (a, b, c) Source # | |
(DecidableZero a, DecidableZero b, DecidableZero c, DecidableZero d) => DecidableZero (a, b, c, d) Source # | |
(DecidableZero a, DecidableZero b, DecidableZero c, DecidableZero d, DecidableZero e) => DecidableZero (a, b, c, d, e) Source # | |
class Unital r => DecidableUnits r Source #
DecidableUnits Bool Source # | |
DecidableUnits Int Source # | |
DecidableUnits Int8 Source # | |
DecidableUnits Int16 Source # | |
DecidableUnits Int32 Source # | |
DecidableUnits Int64 Source # | |
DecidableUnits Integer Source # | |
DecidableUnits Natural Source # | |
DecidableUnits Word Source # | |
DecidableUnits Word8 Source # | |
DecidableUnits Word16 Source # | |
DecidableUnits Word32 Source # | |
DecidableUnits Word64 Source # | |
DecidableUnits () Source # | |
DecidableUnits r => DecidableUnits (Opposite r) Source # | |
DecidableUnits (BasisCoblade m) Source # | |
GCDDomain d => DecidableUnits (Fraction d) Source # | |
(DecidableUnits a, DecidableUnits b) => DecidableUnits (a, b) Source # | |
(DecidableUnits a, DecidableUnits b, DecidableUnits c) => DecidableUnits (a, b, c) Source # | |
(DecidableUnits a, DecidableUnits b, DecidableUnits c, DecidableUnits d) => DecidableUnits (a, b, c, d) Source # | |
(DecidableUnits a, DecidableUnits b, DecidableUnits c, DecidableUnits d, DecidableUnits e) => DecidableUnits (a, b, c, d, e) Source # | |
class Unital r => DecidableAssociates r Source #
Natural numbers
Type representing arbitrary-precision non-negative integers.
Operations whose result would be negative
.throw
(Underflow
:: ArithException
)
Since: 4.8.0.0
Representable Additive
addRep :: (Applicative m, Additive r) => m r -> m r -> m r Source #
`Additive.(+)` default definition
Representable Monoidal
Representable Group
minusRep :: (Applicative m, Group r) => m r -> m r -> m r Source #
`Group.(-)` default definition
subtractRep :: (Applicative m, Group r) => m r -> m r -> m r Source #
subtract
default definition
Representable Multiplicative (via Algebra)
mulRep :: (Representable m, Algebra r (Rep m)) => m r -> m r -> m r Source #
`Multiplicative.(*)` default definition
Representable Unital (via UnitalAlgebra)
oneRep :: (Representable m, Unital r, UnitalAlgebra r (Rep m)) => m r Source #
one
default definition
Representable Rig (via Algebra)
fromNaturalRep :: (UnitalAlgebra r (Rep m), Representable m, Rig r) => Natural -> m r Source #
fromNatural
default definition
Representable Ring (via Algebra)
fromIntegerRep :: (UnitalAlgebra r (Rep m), Representable m, Ring r) => Integer -> m r Source #
fromInteger
default definition
Norm
class Additive r => Quadrance r m where Source #
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 c Source #
invM :: InvolutiveAlgebra r h => h -> Covector r h Source #
coinvM :: InvolutiveCoalgebra r h => h -> Covector r h Source #
antipodeM :: HopfAlgebra r h => h -> Covector r h Source #
convolveM antipodeM return = convolveM return antipodeM = comultM >=> uncurry joinM