Safe Haskell | None |
---|---|
Language | Haskell98 |
- newtype Poset t = Poset ([t], t -> t -> Bool)
- implies :: Bool -> Bool -> Bool
- isReflexive :: ([t], t -> t -> Bool) -> Bool
- isAntisymmetric :: Eq a => ([a], a -> a -> Bool) -> Bool
- isTransitive :: ([t], t -> t -> Bool) -> Bool
- isPoset :: Eq t => ([t], t -> t -> Bool) -> Bool
- poset :: Eq t => ([t], t -> t -> Bool) -> Poset t
- intervals :: Poset t -> [(t, t)]
- interval :: Poset t -> (t, t) -> [t]
- chainN :: Int -> Poset Int
- antichainN :: Int -> Poset Int
- divides :: Integral a => a -> a -> Bool
- divisors :: Integral a => a -> [a]
- posetD :: Int -> Poset Int
- powerset :: [t] -> [[t]]
- posetB :: Int -> Poset [Int]
- partitions :: [t] -> [[[t]]]
- isRefinement :: Ord a => [[a]] -> [[a]] -> Bool
- posetP :: Int -> Poset [[Int]]
- intervalPartitions :: (Num a, Eq a) => [a] -> [[[a]]]
- isInterval :: (Num a, Eq a) => [a] -> Bool
- intervalPartitions2 :: [t] -> [[[t]]]
- integerPartitions :: (Ord t, Num t) => t -> [[t]]
- isIPRefinement :: (Ord a, Num a) => [a] -> [a] -> Bool
- posetIP :: Int -> Poset [Int]
- subspaces :: (Num a, Eq a) => [a] -> Int -> [[[a]]]
- isSubspace :: (Num a, Eq a) => [[a]] -> [[a]] -> Bool
- posetL :: (Eq fq, Num fq) => Int -> [fq] -> Poset [[fq]]
- subposet :: Poset a -> (a -> Bool) -> Poset a
- dsum :: Poset a -> Poset b -> Poset (Either a b)
- dprod :: Poset a -> Poset b -> Poset (a, b)
- dual :: Poset a -> Poset a
- hasseDigraph :: Eq a => Poset a -> Digraph a
- reachabilityPoset :: Ord a => Digraph a -> Poset a
- isOrderPreserving :: (a -> b) -> Poset a -> Poset b -> Bool
- orderIsos01 :: Poset a -> Poset a1 -> [[(a, a1)]]
- isOrderIso :: (Ord a, Ord b) => Poset a -> Poset b -> Bool
- orderIsos :: (Ord a, Ord b) => Poset a -> Poset b -> [[(a, b)]]
- orderAuts1 :: Ord b => Poset b -> [[(b, b)]]
- isLinext :: Poset t -> [t] -> Bool
- linexts :: Poset a -> [[a]]
Documentation
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
isReflexive :: ([t], t -> t -> Bool) -> Bool Source
isAntisymmetric :: Eq a => ([a], a -> a -> Bool) -> Bool Source
isTransitive :: ([t], t -> t -> Bool) -> Bool Source
chainN :: Int -> Poset Int Source
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 (<=)
antichainN :: Int -> Poset Int Source
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.
posetB :: Int -> Poset [Int] Source
posetB n is the lattice of subsets of [1..n] ordered by inclusion
partitions :: [t] -> [[[t]]] Source
isRefinement :: Ord a => [[a]] -> [[a]] -> Bool Source
posetP :: Int -> Poset [[Int]] Source
posetP n is the lattice of set partitions of [1..n], ordered by refinement
intervalPartitions :: (Num a, Eq a) => [a] -> [[[a]]] Source
isInterval :: (Num a, Eq a) => [a] -> Bool Source
intervalPartitions2 :: [t] -> [[[t]]] Source
integerPartitions :: (Ord t, Num t) => t -> [[t]] Source
isIPRefinement :: (Ord a, Num a) => [a] -> [a] -> Bool Source
posetIP :: Int -> Poset [Int] Source
posetIP n is the poset of integer partitions of n, ordered by refinement
isSubspace :: (Num a, Eq a) => [[a]] -> [[a]] -> Bool Source
posetL :: (Eq fq, Num 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. Example usage: posetL 2 f3
hasseDigraph :: Eq a => Poset a -> Digraph a Source
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 a Source
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 -> Bool Source
orderIsos01 :: Poset a -> Poset a1 -> [[(a, a1)]] Source
isOrderIso :: (Ord a, Ord b) => Poset a -> Poset b -> Bool Source
Are the two posets order-isomorphic?
orderIsos :: (Ord a, Ord b) => Poset a -> Poset b -> [[(a, b)]] Source
Find all order isomorphisms between two posets
orderAuts1 :: Ord b => Poset b -> [[(b, b)]] Source