Macaulay2 » Documentation
Packages » HyperplaneArrangements :: cone(Arrangement,RingElement)
next | previous | forward | backward | up | index | toc

cone(Arrangement,RingElement) -- creates an associated central hyperplane arrangement

Synopsis

Description

For any hyperplane arrangement $A$, the cone of $A$ is an associated central hyperplane arrangement constructed by adding a new hyperplane and homogenizing the hyperplane equations in $A$ with respect to it. By definition, the cone of $A$ contains one more hyperplane that $A$.

When the underlying ring of the input arrangement $A$ has a variable not appearing in the its linear equations, one can construct the cone over $A$ using that variable.

i1 : S = QQ[w,x,y,z];
i2 : A = arrangement{x, y, x-y, x-1, y-1}

o2 = {x, y, x - y, x - 1, y - 1}

o2 : Hyperplane Arrangement 
i3 : assert not isCentral A
i4 : cA = cone(A, z)

o4 = {x, y, x - y, x - z, y - z, z}

o4 : Hyperplane Arrangement 
i5 : assert isCentral cA
i6 : assert(# hyperplanes cA === 1 + # hyperplanes A)
i7 : assert(ring cA === ring A)
i8 : deCone(cA, z)

o8 = {x, y, x - y, x - 1, y - 1}

o8 : Hyperplane Arrangement 
i9 : cA' = cone(A, w)

o9 = {x, y, x - y, - w + x, - w + y, w}

o9 : Hyperplane Arrangement 
i10 : assert isCentral cA'
i11 : assert(cA != cA')
i12 : assert(# hyperplanes cA' === 1 + # hyperplanes A)

This method does not verify that the given RingElement produces a simple hyperplane arrangement. Hence, one gets unexpected output when the chosen variable already appears in the linear equations for $A$.

i13 : cone(A, x)

o13 = {x, y, x - y, 0, - x + y, x}

o13 : Hyperplane Arrangement 
i14 : cA'' = trim cone(A, x)

o14 = {x - y, y, x}

o14 : Hyperplane Arrangement 
i15 : assert isCentral cA''
i16 : assert(# hyperplanes cA'' =!= 1 + # hyperplanes A)

When the second input is a Symbol, this method creates a new ring from the underlying ring of $A$ by adjoining the symbol as a variable and constructs the cone in this new ring.

i17 : S = QQ[x,y];
i18 : A = arrangement{x, y, x-y, x-1, y-1}

o18 = {x, y, x - y, x - 1, y - 1}

o18 : Hyperplane Arrangement 
i19 : assert not isCentral A
i20 : cA = cone(A, symbol z)

o20 = {x, y, x - y, x - z, y - z, z}

o20 : Hyperplane Arrangement 
i21 : assert isCentral cA
i22 : assert(# hyperplanes cA === 1 + # hyperplanes A)
i23 : ring cA

o23 = QQ[x..z]

o23 : PolynomialRing
i24 : assert(ring cA =!= ring A)
i25 : deCone(cA, 5)

o25 = {x, y, x - y, x - 1, y - 1}

o25 : Hyperplane Arrangement 
i26 : assert not isCentral A
i27 : cA' = cone(A, symbol w)

o27 = {x, y, x - y, x - w, y - w, w}

o27 : Hyperplane Arrangement 
i28 : assert isCentral cA'
i29 : assert(# hyperplanes cA' === 1 + # hyperplanes A)
i30 : ring cA'

o30 = QQ[x..y, w]

o30 : PolynomialRing

See also

Ways to use this method: