next | previous | forward | backward | up | top | index | toc | Macaulay2 website
Macaulay2Doc :: dual(MonomialIdeal)

dual(MonomialIdeal) -- the Alexander dual of a monomial ideal



If Iis a square free monomial ideal then I is the Stanley-Reisner ideal of a simplicial complex. In this case, dual I is the Stanley-Reisner ideal associated to the dual complex. In particular, dual I is obtained by switching the roles of minimal generators and prime components.
i1 : QQ[a,b,c,d];
i2 : I = monomialIdeal(a*b, b*c, c*d)

o2 = monomialIdeal (a*b, b*c, c*d)

o2 : MonomialIdeal of QQ[a..d]
i3 : dual I

o3 = monomialIdeal (a*c, b*c, b*d)

o3 : MonomialIdeal of QQ[a..d]
i4 : intersect(monomialIdeal(a,b), 

o4 = monomialIdeal (a*c, b*c, b*d)

o4 : MonomialIdeal of QQ[a..d]
i5 : dual dual I

o5 = monomialIdeal (a*b, b*c, c*d)

o5 : MonomialIdeal of QQ[a..d]

For a general monomial ideal, the Alexander dual defined as follows: Given two list of nonnegative integers a and bfor which a_i >= b_i for all i let a\b denote the list whose i-th entry is a_i+1-b_iif b_i >= 1and 0otherwise. The Alexander dual with respect to a is the ideal generated by a monomial x^a\b for each irreducible component (x_i^b_i) of I. If a is not provided, it is assumed to be the least common multiple of the minimal generators of I.

i6 : QQ[x,y,z];
i7 : I = monomialIdeal(x^3, x*y, y*z^2)

                     3          2
o7 = monomialIdeal (x , x*y, y*z )

o7 : MonomialIdeal of QQ[x..z]
i8 : dual(I, {4,4,4})

                     2 4   4 3
o8 = monomialIdeal (x y , x z )

o8 : MonomialIdeal of QQ[x..z]
i9 : intersect( monomialIdeal(x^2),
     	       monomialIdeal(x^4, y^4),
     	       monomialIdeal(y^4, z^3))

                     2 4   4 3
o9 = monomialIdeal (x y , x z )

o9 : MonomialIdeal of QQ[x..z]

One always has dual( dual(I, a), a) == I however dual dual Imay not equal I.

i10 : QQ[x,y,z];
i11 : J = monomialIdeal( x^3*y^2, x*y^4, x*z, y^2*z)

                      3 2     4        2
o11 = monomialIdeal (x y , x*y , x*z, y z)

o11 : MonomialIdeal of QQ[x..z]
i12 : dual dual J

                      3      3
o12 = monomialIdeal (x y, x*y , x*z, y*z)

o12 : MonomialIdeal of QQ[x..z]
i13 : dual( dual(J, {3,4,1}), {3,4,1})

                      3 2     4        2
o13 = monomialIdeal (x y , x*y , x*z, y z)

o13 : MonomialIdeal of QQ[x..z]

See Ezra Miller's Ph.D. thesis 'Resolutions and Duality for Monomial Ideals'.

Implemented by Greg Smith.

The computation is done by calling the frobby library, written by B. H. Roune; setting gbTrace to a positive value will cause a message to be printed when it is called.