# Poset -- a class for partially ordered sets (posets)

## Description

This class is a type of HashTable which represents finite posets. It consists of a ground set, a list of relationships $\{a,b\}$ where $a \leq b$, and a matrix encoding these relations.

 i1 : G = {1,2,3,4}; -- the ground set i2 : R = {{1,2},{1,3},{2,4},{3,4}}; -- a list of cover relations i3 : P = poset(G, R) -- the poset with its relations matrix computed o3 = P o3 : Poset

• poset -- creates a new Poset object

## Functions and methods returning an object of class Poset :

• "adjoinMax(Poset)" -- see adjoinMax -- computes the poset with a new maximum element
• "adjoinMax(Poset,Thing)" -- see adjoinMax -- computes the poset with a new maximum element
• "adjoinMin(Poset)" -- see adjoinMin -- computes the poset with a new minimum element
• "adjoinMin(Poset,Thing)" -- see adjoinMin -- computes the poset with a new minimum element
• "augmentPoset(Poset)" -- see augmentPoset -- computes the poset with an adjoined minimum and maximum
• "augmentPoset(Poset,Thing,Thing)" -- see augmentPoset -- computes the poset with an adjoined minimum and maximum
• "booleanLattice(ZZ)" -- see booleanLattice -- generates the boolean lattice on $n$ elements
• "chain(ZZ)" -- see chain -- generates the chain poset on $n$ elements
• "closedInterval(Poset,Thing,Thing)" -- see closedInterval -- computes the subposet contained between two points
• "diamondProduct(Poset,Poset)" -- see diamondProduct -- computes the diamond product of two ranked posets
• "dilworthLattice(Poset)" -- see dilworthLattice -- computes the Dilworth lattice of a poset
• "distributiveLattice(Poset)" -- see distributiveLattice -- computes the lattice of order ideals of a poset
• "divisorPoset(ZZ)" -- see divisorPoset -- generates the poset of divisors
• divisorPoset(List,List,PolynomialRing) -- generates the poset of divisors
• divisorPoset(RingElement) -- generates the poset of divisors
• divisorPoset(RingElement,RingElement) -- generates the poset of divisors with a lower and upper bound
• "dominanceLattice(ZZ)" -- see dominanceLattice -- generates the dominance lattice of partitions of $n$
• "dropElements(Poset,Function)" -- see dropElements -- computes the induced subposet of a poset given a list of elements to remove
• "dropElements(Poset,List)" -- see dropElements -- computes the induced subposet of a poset given a list of elements to remove
• dual(Poset) -- produces the derived poset with relations reversed
• "facePoset(SimplicialComplex)" -- see facePoset -- generates the face poset of a simplicial complex
• "flagPoset(Poset,List)" -- see flagPoset -- computes the subposet of specified ranks of a ranked poset
• "gapConvertPoset(Array)" -- see gapConvertPoset -- converts between Macaulay2's Posets and GAP's Posets
• "gapConvertPoset(String)" -- see gapConvertPoset -- converts between Macaulay2's Posets and GAP's Posets
• "indexLabeling(Poset)" -- see indexLabeling -- relabels a poset with the labeling based on the indices of the vertices
• "intersectionLattice(List,Ring)" -- see intersectionLattice -- generates the intersection lattice of a hyperplane arrangement
• "labelPoset(Poset,HashTable)" -- see labelPoset -- relabels a poset with the specified labeling
• "lcmLattice(Ideal)" -- see lcmLattice -- generates the lattice of lcms in an ideal
• "naturalLabeling(Poset)" -- see naturalLabeling -- relabels a poset with a natural labeling
• "naturalLabeling(Poset,ZZ)" -- see naturalLabeling -- relabels a poset with a natural labeling
• "ncpLattice(ZZ)" -- see ncpLattice -- computes the non-crossing partition lattice of set-partitions of size $n$
• "openInterval(Poset,Thing,Thing)" -- see openInterval -- computes the subposet contained strictly between two points
• "partitionLattice(ZZ)" -- see partitionLattice -- computes the lattice of set-partitions of size $n$
• "plueckerPoset(ZZ)" -- see plueckerPoset -- computes a poset associated to the Plücker relations
• "poset(List)" -- see poset -- creates a new Poset object
• "poset(List,Function)" -- see poset -- creates a new Poset object
• "poset(List,List)" -- see poset -- creates a new Poset object
• "poset(List,List,Matrix)" -- see poset -- creates a new Poset object
• product(Poset,Poset) -- computes the product of two posets
• "projectivizeArrangement(List,Ring)" -- see projectivizeArrangement -- computes the intersection poset of a projectivized hyperplane arrangement
• "randomPoset(List)" -- see randomPoset -- generates a random poset with a given relation probability
• "randomPoset(ZZ)" -- see randomPoset -- generates a random poset with a given relation probability
• "resolutionPoset(ChainComplex)" -- see resolutionPoset -- generates a poset from a resolution
• "resolutionPoset(Ideal)" -- see resolutionPoset -- generates a poset from a resolution
• "resolutionPoset(MonomialIdeal)" -- see resolutionPoset -- generates a poset from a resolution
• "standardMonomialPoset(MonomialIdeal)" -- see standardMonomialPoset -- generates the poset of divisibility in the monomial basis of an ideal
• "standardMonomialPoset(MonomialIdeal,ZZ,ZZ)" -- see standardMonomialPoset -- generates the poset of divisibility in the monomial basis of an ideal
• "subposet(Poset,List)" -- see subposet -- computes the induced subposet of a poset given a list of elements
• "transitiveOrientation(Graph)" -- see transitiveOrientation -- generates a poset whose comparability graph is the given graph
• "union(Poset,Poset)" -- see union -- computes the union of two posets
• "youngSubposet(List)" -- see youngSubposet -- generates a subposet of Young's lattice
• "youngSubposet(List,List)" -- see youngSubposet -- generates a subposet of Young's lattice
• "youngSubposet(ZZ)" -- see youngSubposet -- generates a subposet of Young's lattice

## Methods that use an object of class Poset :

• "allRelations(Poset)" -- see allRelations -- computes all relations of a poset
• "allRelations(Poset,Boolean)" -- see allRelations -- computes all relations of a poset
• "antichains(Poset)" -- see antichains -- computes all antichains of a poset
• "antichains(Poset,ZZ)" -- see antichains -- computes all antichains of a poset
• "areIsomorphic(Poset,Poset)" -- see areIsomorphic -- determines if two posets are isomorphic
• "Poset == Poset" -- see areIsomorphic -- determines if two posets are isomorphic
• "atoms(Poset)" -- see atoms -- computes the list of elements covering the minimal elements of a poset
• "chains(Poset)" -- see chains -- computes all chains of a poset
• "chains(Poset,ZZ)" -- see chains -- computes all chains of a poset
• "characteristicPolynomial(Poset)" -- see characteristicPolynomial -- computes the characteristic polynomial of a ranked poset with a unique minimal element
• "comparabilityGraph(Poset)" -- see comparabilityGraph -- produces the comparability graph of a poset
• "compare(Poset,Thing,Thing)" -- see compare -- compares two elements in a poset
• connectedComponents(Poset) -- generates a list of connected components of a poset
• "coveringRelations(Poset)" -- see coveringRelations -- computes the minimal list of generating relations of a poset
• "coxeterPolynomial(Poset)" -- see coxeterPolynomial -- computes the Coxeter polynomial of a poset
• "dilworthNumber(Poset)" -- see dilworthNumber -- computes the Dilworth number of a poset
• "displayPoset(Poset)" -- see displayPoset -- generates a PDF representation of a poset and attempts to display it
• "Poset - List" -- see dropElements -- computes the induced subposet of a poset given a list of elements to remove
• "filter(Poset,List)" -- see filter -- computes the elements above given elements in a poset
• "filtration(Poset)" -- see filtration -- generates the filtration of a poset
• "flagChains(Poset,List)" -- see flagChains -- computes the maximal chains in a list of flags of a ranked poset
• "flagfPolynomial(Poset)" -- see flagfPolynomial -- computes the flag-f polynomial of a ranked poset
• "flaghPolynomial(Poset)" -- see flaghPolynomial -- computes the flag-h polynomial of a ranked poset
• "fPolynomial(Poset)" -- see fPolynomial -- computes the f-polynomial of a poset
• "gapConvertPoset(Poset)" -- see gapConvertPoset -- converts between Macaulay2's Posets and GAP's Posets
• "greeneKleitmanPartition(Poset)" -- see greeneKleitmanPartition -- computes the Greene-Kleitman partition of a poset
• "hasseDiagram(Poset)" -- see hasseDiagram -- produces the Hasse diagram of a poset
• height(Poset) -- computes the height of a poset
• "hibiIdeal(Poset)" -- see hibiIdeal -- produces the Hibi ideal of a poset
• "hibiRing(Poset)" -- see hibiRing -- produces the Hibi ring of a poset
• "hPolynomial(Poset)" -- see hPolynomial -- computes the h-polynomial of a poset
• "incomparabilityGraph(Poset)" -- see incomparabilityGraph -- produces the incomparability graph of a poset
• "isAntichain(Poset,List)" -- see isAntichain -- determines if a given list of vertices is an antichain of a poset
• "isAtomic(Poset)" -- see isAtomic -- determines if a lattice is atomic
• "isBounded(Poset)" -- see isBounded -- determines if a poset is bounded
• isConnected(Poset) -- determines if a poset is connected
• "isDistributive(Poset)" -- see isDistributive -- determines if a lattice is distributive
• isEulerian(Poset) -- determines if a ranked poset is Eulerian
• "isGeometric(Poset)" -- see isGeometric -- determines if a lattice is geometric
• "isLattice(Poset)" -- see isLattice -- determines if a poset is a lattice
• "isLowerSemilattice(Poset)" -- see isLowerSemilattice -- determines if a poset is a lower (or meet) semilattice
• "isLowerSemimodular(Poset)" -- see isLowerSemimodular -- determines if a ranked lattice is lower semimodular
• "isModular(Poset)" -- see isModular -- determines if a lattice is modular
• "isomorphism(Poset,Poset)" -- see isomorphism -- computes an isomorphism between isomorphic posets
• "isRanked(Poset)" -- see isRanked -- determines if a poset is ranked
• "isSperner(Poset)" -- see isSperner -- determines if a ranked poset has the Sperner property
• "isStrictSperner(Poset)" -- see isStrictSperner -- determines if a ranked poset has the strict Sperner property
• "isUpperSemilattice(Poset)" -- see isUpperSemilattice -- determines if a poset is an upper (or join) semilattice
• "isUpperSemimodular(Poset)" -- see isUpperSemimodular -- determines if a lattice is upper semimodular
• "joinExists(Poset,Thing,Thing)" -- see joinExists -- determines if the join exists for two elements of a poset
• "joinIrreducibles(Poset)" -- see joinIrreducibles -- determines the join irreducible elements of a poset
• "linearExtensions(Poset)" -- see linearExtensions -- computes all linear extensions of a poset
• "maximalAntichains(Poset)" -- see maximalAntichains -- computes all maximal antichains of a poset
• "maximalChains(Poset)" -- see maximalChains -- computes all maximal chains of a poset
• "maximalElements(Poset)" -- see maximalElements -- determines the maximal elements of a poset
• "meetExists(Poset,Thing,Thing)" -- see meetExists -- determines if the meet exists for two elements of a poset
• "meetIrreducibles(Poset)" -- see meetIrreducibles -- determines the meet irreducible elements of a poset
• "minimalElements(Poset)" -- see minimalElements -- determines the minimal elements of a poset
• "moebiusFunction(Poset)" -- see moebiusFunction -- computes the Moebius function at every pair of elements of a poset
• "orderComplex(Poset)" -- see orderComplex -- produces the order complex of a poset
• "orderIdeal(Poset,List)" -- see orderIdeal -- computes the elements below given elements in a poset
• "outputTexPoset(Poset,String)" -- see outputTexPoset -- writes a LaTeX file with a TikZ-representation of a poset
• "poincare(Poset)" -- see poincarePolynomial -- computes the Poincare polynomial of a ranked poset with a unique minimal element
• "poincarePolynomial(Poset)" -- see poincarePolynomial -- computes the Poincare polynomial of a ranked poset with a unique minimal element
• Poset _ List -- returns elements of the ground set
• Poset _ ZZ -- returns an element of the ground set
• Poset _* -- returns the ground set of a poset
• "vertices(Poset)" -- see Poset _* -- returns the ground set of a poset
• "posetJoin(Poset,Thing,Thing)" -- see posetJoin -- determines the join for two elements of a poset
• "posetMeet(Poset,Thing,Thing)" -- see posetMeet -- determines the meet for two elements of a poset
• "pPartitionRing(Poset)" -- see pPartitionRing -- produces the p-partition ring of a poset
• "principalFilter(Poset,Thing)" -- see principalFilter -- computes the elements above a given element in a poset
• "principalOrderIdeal(Poset,Thing)" -- see principalOrderIdeal -- computes the elements below a given element in a poset
• "Poset * Poset" -- see product(Poset,Poset) -- computes the product of two posets
• "rankFunction(Poset)" -- see rankFunction -- computes the rank function of a ranked poset
• "rankGeneratingFunction(Poset)" -- see rankGeneratingFunction -- computes the rank generating function of a ranked poset
• "rank(Poset)" -- see rankPoset -- generates a list of lists representing the ranks of a ranked poset
• "rankPoset(Poset)" -- see rankPoset -- generates a list of lists representing the ranks of a ranked poset
• "tex(Poset)" -- see texPoset -- generates a string containing a TikZ-figure of a poset
• "texPoset(Poset)" -- see texPoset -- generates a string containing a TikZ-figure of a poset
• "tuttePolynomial(Poset)" -- see tuttePolynomial -- computes the Tutte polynomial of a poset
• "Poset + Poset" -- see union -- computes the union of two posets
• vertexSet(Poset) (missing documentation)
• "zetaPolynomial(Poset)" -- see zetaPolynomial -- computes the zeta polynomial of a poset

## For the programmer

The object Poset is a type, with ancestor classes HashTable < Thing.