# hibiRing -- produces the Hibi ring of a poset

## Synopsis

• Usage:
H = hibiRing P
H = hibiRing(P, Strategy => "kernel")
H = hibiRing(P, Strategy => "4ti2")
• Inputs:
• P, an instance of the type Poset,
• Optional inputs:
• CoefficientRing => a ring, default value QQ, which specifies the coefficient ring of the PolynomialRing $H$
• Strategy => , default value kernel, which specifies whether to use Macaulay2's native kernel method (Strategy => "kernel") or the package FourTiTwo (Strategy => "4ti2")
• Outputs:
• H, , the toric algebra which is isomorphic to the Hibi ring of $P$

## Description

The Hibi ring of $P$ is a monomial algebra generated by the monomials which generate the Hibi ideal (hibiIdeal). That is, the monomials built in $2n$ variables $x_0, \ldots, x_{n-1}, y_0, \ldots, y_{n-1}$, where $n$ is the size of the ground set of $P$. The monomials are in bijection with order ideals in $P$. Let $I$ be an order ideal of $P$. Then the associated monomial is the product of the $x_i$ associated with members of $I$ and the $y_i$ associated with non-members of $I$.

This method returns the toric quotient algebra isomorphic to the Hibi ring. The ideal is the ideal of Hibi relations. The generators of the PolynomialRing $H$ is built over are of the form $t_I$ where $I$ is an order ideal of $P$.

 i1 : hibiRing booleanLattice 2 QQ[t , t , t , t , t , t ] {} {0} {0, 1} {0, 1, 2} {0, 2} {0, 1, 2, 3} o1 = ---------------------------------------------------------- t t - t t {0} {0, 1, 2} {0, 1} {0, 2} o1 : QuotientRing

The Hibi ring of the $n$ chain is just a polynomial ring in $n+1$ variables.

 i2 : hibiRing chain 4 o2 = QQ[t , t , t , t , t ] {} {0} {0, 1} {0, 1, 2} {0, 1, 2, 3} o2 : PolynomialRing

In some cases, it may be faster to use the FourTiTwo method toricGroebner to generate the Hibi relations. Using the Strategy "4ti2" tells the method to use this approach.

 i3 : hibiRing(divisorPoset 6, Strategy => "4ti2") QQ[t , t , t , t , t , t ] {} {0} {0, 1} {0, 1, 2} {0, 2} {0, 1, 2, 3} o3 = ---------------------------------------------------------- - t t + t t {0} {0, 1, 2} {0, 1} {0, 2} o3 : QuotientRing

## Ways to use hibiRing :

• "hibiRing(Poset)"

## For the programmer

The object hibiRing is .