next | previous | forward | backward | up | index | toc

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

## Synopsis

• Function: cone
• Usage:
cone(A, x)
cone(A, h)
• Inputs:
• x, , that is a variable in the ring of $A$, or a Symbol that will become a variable in the ring of the new hyperplane arrangement
• Outputs:
• , constructed by adding a linear hyperplane and homogenizing the given hyperplane equations with respect to it

## 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 = {y, x, x - y} 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