Helper Functions For Freeness Of Hyperplane Arrangements#
This contains the algorithms to check for freeness of a hyperplane
arrangement. See
sage.geometry.hyperplane_arrangement.HyperplaneArrangementElement.is_free()
for details.
Note
This could be extended to a freeness check for more general modules over a polynomial ring.
- sage.geometry.hyperplane_arrangement.check_freeness.construct_free_chain(A)#
Construct the free chain for the hyperplanes
A
.ALGORITHM:
We follow Algorithm 6.5 in [BC2012].
INPUT:
A
– a hyperplane arrangement
EXAMPLES:
sage: from sage.geometry.hyperplane_arrangement.check_freeness import construct_free_chain sage: H.<x,y,z> = HyperplaneArrangements(QQ) sage: A = H(z, y+z, x+y+z) sage: construct_free_chain(A) [ [1 0 0] [ 1 0 0] [ 0 1 0] [0 1 0] [ 0 z -1] [y + z 0 -1] [0 0 z], [ 0 y 1], [ x 0 1] ]
- sage.geometry.hyperplane_arrangement.check_freeness.less_generators(X)#
Reduce the generator matrix of the module defined by
X
.This is Algorithm 6.4 in [BC2012] and relies on the row syzygies of the matrix
X
.EXAMPLES:
sage: from sage.geometry.hyperplane_arrangement.check_freeness import less_generators sage: R.<x,y,z> = QQ[] sage: m = matrix([[1, 0, 0], [0, z, -1], [0, 0, 0], [0, y, 1]]) sage: less_generators(m) [ 1 0 0] [ 0 z -1] [ 0 y 1]