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

Safe Haskell | None

Math.Combinatorics.IncidenceAlgebra

Synopsis

- data Interval a = Iv (Poset a) (a, a)
- ivPoset :: Interval t -> Poset t
- intervalIsos :: (Ord a1, Ord a) => Interval a -> Interval a1 -> [[(a, a1)]]
- isIntervalIso :: (Eq a, Eq b) => Interval a -> Interval b -> Bool
- intervalIsoMap :: Ord a => Poset a -> Map (Interval a) (Maybe (Interval a))
- intervalIsoClasses :: Ord a => Poset a -> [Interval a]
- unitIA :: (Eq k, Num k, Ord a) => Poset a -> Vect k (Interval a)
- basisIA :: Num k => Poset a -> [Vect k (Interval a)]
- zetaIA :: (Eq k, Num k, Ord a) => Poset a -> Vect k (Interval a)
- muIA1 :: (Eq k, Num k, Ord a, Show a) => Poset a -> Vect k (Interval a)
- muIA :: (Eq k, Num k, Ord a) => Poset a -> Vect k (Interval a)
- invIA1 :: (Eq a, Fractional a, Ord t) => Vect a (Interval t) -> Vect a (Interval t)
- invIA :: (Eq k, Fractional k, Ord a) => Vect k (Interval a) -> Maybe (Vect k (Interval a))
- numChainsIA :: (Ord a, Show a) => Poset a -> Vect Q (Interval a)
- etaIA :: (Eq k, Num k, Ord a) => Poset a -> Vect k (Interval a)
- numMaximalChainsIA :: (Ord a, Show a) => Poset a -> Vect Q (Interval a)
- muC :: (Eq k, Num k) => Int -> Vect k (Interval Int)
- muB :: (Eq k, Num k) => Int -> Vect k (Interval [Int])
- muL :: (Ord fq, FiniteField fq) => Int -> [fq] -> Vect Int (Interval [[fq]])
- toIsoClasses :: (Eq k, Num k, Ord a) => Vect k (Interval a) -> Vect k (Interval a)
- toIsoClasses' :: (Eq k, Num k, Ord a) => Poset a -> Vect k (Interval a) -> Vect k (Interval a)

# 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) |

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

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 ].

Eq a => Eq (Interval a) |
Ord a => Ord (Interval a) |
Show a => Show (Interval a) |
(Eq k, Fractional k, Ord a, Show a) => HasInverses (Vect k (Interval a)) |

ivPoset :: Interval t -> Poset tSource

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

isIntervalIso :: (Eq a, Eq b) => Interval a -> Interval b -> Bool Source

intervalIsoMap :: Ord a => Poset a -> Map (Interval a) (Maybe (Interval a))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 :: (Eq k, Num 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 :: (Eq a, Fractional a, Ord t) => 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 :: (Eq k, Num k, Ord a) => 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 fq, FiniteField fq) => Int -> [fq] -> Vect Int (Interval [[fq]])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.