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

Math.Combinatorics.Poset

Synopsis

# Documentation

newtype Poset t Source

A poset is represented as a pair (set,po), where set is the underlying set of the poset, and po is the partial order relation

Constructors

 Poset ([t], t -> t -> Bool)

Instances

 Eq t => Eq (Poset t) Show t => Show (Poset t)

A chain is a poset in which every pair of elements is comparable (ie either x <= y or y <= x). It is therefore a linear or total order. chainN n is the poset consisting of the numbers [1..n] ordered by (<=)

An antichain is a poset in which distinct elements are incomparable. antichainN n is the poset consisting of [1..n], with x <= y only when x == y.

posetD n is the lattice of (positive) divisors of n

posetB :: Int -> Poset [Int]Source

posetB n is the lattice of subsets of [1..n] ordered by inclusion

posetP :: Int -> Poset [[Int]]Source

posetP n is the lattice of partitions of [1..n] ordered by refinement

posetL :: FiniteField fq => Int -> [fq] -> Poset [[fq]]Source

posetL n fq is the lattice of subspaces of the vector space Fq^n, ordered by inclusion. Subspaces are represented by their reduced row echelon form.

subposet :: Poset a -> (a -> Bool) -> Poset aSource

The subposet of a poset satisfying a predicate

dsum :: Poset a -> Poset b -> Poset (Either a b)Source

The direct sum of two posets

dprod :: Poset a -> Poset b -> Poset (a, b)Source

The direct product of two posets

dual :: Poset a -> Poset aSource

The dual of a poset

hasseDigraph :: Eq a => Poset a -> Digraph aSource

Given a poset (X,<=), we say that y covers x, written x -< y, if x < y and there is no z in X with x < z < y. The Hasse digraph of a poset is the digraph whose vertices are the elements of the poset, with an edge between every pair (x,y) with x -< y. The Hasse digraph can be represented diagrammatically as a Hasse diagram, by drawing x below y whenever x -< y.

reachabilityPoset :: Ord a => Digraph a -> Poset aSource

Given a DAG (directed acyclic graph), return the poset consisting of the vertices of the DAG, ordered by reachability. This can be used to recover a poset from its Hasse digraph.

isOrderPreserving :: (a -> b) -> Poset a -> Poset b -> BoolSource

isOrderIso :: (Eq a, Eq b) => Poset a -> Poset b -> BoolSource

Are the two posets order-isomorphic?