HaskellForMaths-0.4.9: Combinatorics, group theory, commutative algebra, non-commutative algebra

Safe HaskellNone
LanguageHaskell98

Math.Combinatorics.IncidenceAlgebra

Synopsis

Documentation

data Interval a Source #

A type to represent an interval in a poset. The (closed) interval [x,y] is the set {z | x <= z <= y} within the poset. Note that the "empty interval" is not an interval - that is, the interval [x,y] is only defined for x <= y. The (closed) intervals within a poset form a basis for the incidence algebra as a k-vector space.

Constructors

Iv (Poset a) (a, a) 
Instances
(Eq k, Num k, Ord a) => Coalgebra k (Interval a) Source # 
Instance details

Defined in Math.Combinatorics.IncidenceAlgebra

Methods

counit :: Vect k (Interval a) -> k Source #

comult :: Vect k (Interval a) -> Vect k (Tensor (Interval a) (Interval a)) Source #

(Eq k, Num k, Ord a) => Algebra k (Interval a) Source #

The incidence algebra of a poset is the free k-vector space having as its basis the set of intervals in the poset, with multiplication defined by concatenation of intervals. The incidence algebra can also be thought of as the vector space of functions from intervals to k, with multiplication defined by the convolution (f*g)(x,y) = sum [ f(x,z) g(z,y) | x <= z <= y ].

Instance details

Defined in Math.Combinatorics.IncidenceAlgebra

Methods

unit :: k -> Vect k (Interval a) Source #

mult :: Vect k (Tensor (Interval a) (Interval a)) -> Vect k (Interval a) Source #

Eq a => Eq (Interval a) Source # 
Instance details

Defined in Math.Combinatorics.IncidenceAlgebra

Methods

(==) :: Interval a -> Interval a -> Bool #

(/=) :: Interval a -> Interval a -> Bool #

Ord a => Ord (Interval a) Source # 
Instance details

Defined in Math.Combinatorics.IncidenceAlgebra

Methods

compare :: Interval a -> Interval a -> Ordering #

(<) :: Interval a -> Interval a -> Bool #

(<=) :: Interval a -> Interval a -> Bool #

(>) :: Interval a -> Interval a -> Bool #

(>=) :: Interval a -> Interval a -> Bool #

max :: Interval a -> Interval a -> Interval a #

min :: Interval a -> Interval a -> Interval a #

Show a => Show (Interval a) Source # 
Instance details

Defined in Math.Combinatorics.IncidenceAlgebra

Methods

showsPrec :: Int -> Interval a -> ShowS #

show :: Interval a -> String #

showList :: [Interval a] -> ShowS #

(Eq k, Fractional k, Ord a, Show a) => HasInverses (Vect k (Interval a)) Source # 
Instance details

Defined in Math.Combinatorics.IncidenceAlgebra

Methods

inverse :: Vect k (Interval a) -> Vect k (Interval a) Source #

intervalIsos :: (Ord a, Ord b) => Interval a -> Interval b -> [[(a, b)]] Source #

intervalIsoClasses :: Ord a => Poset a -> [Interval a] Source #

List representatives of the order isomorphism classes of intervals in a poset

unitIA :: (Eq k, Num k, Ord a) => Poset a -> Vect k (Interval a) Source #

The unit of the incidence algebra of a poset

basisIA :: Num k => Poset a -> [Vect k (Interval a)] Source #

zetaIA :: (Eq k, Num k, Ord a) => Poset a -> Vect k (Interval a) Source #

The zeta function of a poset

muIA1 :: (Num k, Eq k, Ord a, Show a) => Poset a -> Vect k (Interval a) Source #

muIA :: (Eq k, Num k, Ord a) => Poset a -> Vect k (Interval a) Source #

The Mobius function of a poset

invIA1 :: (Fractional a, Ord t, Eq a) => Vect a (Interval t) -> Vect a (Interval t) Source #

invIA :: (Eq k, Fractional k, Ord a) => Vect k (Interval a) -> Maybe (Vect k (Interval a)) Source #

The inverse of an element in the incidence algebra of a poset. This is only defined for elements which are non-zero on all intervals (x,x)

numChainsIA :: (Ord a, Show a) => Poset a -> Vect Q (Interval a) Source #

A function (ie element of the incidence algebra) that counts the total number of chains in each interval

etaIA :: (Num k, Ord a, Eq k) => Poset a -> Vect k (Interval a) Source #

numMaximalChainsIA :: (Ord a, Show a) => Poset a -> Vect Q (Interval a) Source #

A function (ie element of the incidence algebra) that counts the number of maximal chains in each interval

muC :: (Eq k, Num k) => Int -> Vect k (Interval Int) Source #

muB :: (Eq k, Num k) => Int -> Vect k (Interval [Int]) Source #

muL :: (Ord a, Num a) => Int -> [a] -> Vect Int (Interval [[a]]) Source #

toIsoClasses :: (Eq k, Num k, Ord a) => Vect k (Interval a) -> Vect k (Interval a) Source #

toIsoClasses is the linear map from the incidence Hopf algebra of a poset to itself, in which each interval is mapped to (the minimal representative of) its isomorphism class. Thus the result can be considered as a linear combination of isomorphism classes of intervals, rather than of intervals themselves. Note that if this operation is to be performed repeatedly for the same poset, then it is more efficient to use toIsoClasses' poset, which memoizes the isomorphism class lookup table.

toIsoClasses' :: (Eq k, Num k, Ord a) => Poset a -> Vect k (Interval a) -> Vect k (Interval a) Source #

Given a poset, toIsoClasses' poset is the linear map from the incidence Hopf algebra of the poset to itself, in which each interval is mapped to (the minimal representative of) its isomorphism class.