Macaulay2 » Documentation
Packages » NumericalSemigroups :: coneEquations
next | previous | forward | backward | up | index | toc

coneEquations -- Find the equations of the Kunz cones

Synopsis

Description

Let S be the numerical semigroup defined by a list sgrp, have multiplicity m and apery set a_1,\dots,a_(m-1) and set mu_i = (a_i -i)//m. The homogeneous Kunz cone of semigroups of multiplity m is the convex polyhedral cone defined by the inequalities of the form

a_i + a_j - a_(i+j) \geq 0.

where 1\leq i,j\leq m-1 and i+j\neq m is interpreted mod m. The function coneEquations m returns an m-1 x d matrix of ZZ whose columns are the coefficients of the left hand sides of these inequalities. The function coneEquations sgrp does the same, with additional columns representing the additional inequalities of this type that are satisfied by the Apery set apery(sgrp). For m = 3, the semigroup {3,4,5} is interior (and thus satisfies no further equations), while the semigroups {3,4} and {3,5} are on the two extremal rays of the cone.

i1 : coneEquations 3

o1 = | 2  -1 |
     | -1 2  |

              2       2
o1 : Matrix ZZ  <-- ZZ
i2 : coneEquations {3,4,5}

o2 = | 2  -1 |
     | -1 2  |

              2       2
o2 : Matrix ZZ  <-- ZZ
i3 : coneEquations {3,4}

o3 = | 2  -1 -2 |
     | -1 2  1  |

              2       3
o3 : Matrix ZZ  <-- ZZ
i4 : coneEquations {3,5}

o4 = | 2  -1 1  |
     | -1 2  -2 |

              2       3
o4 : Matrix ZZ  <-- ZZ
i5 : allSemigroups 3

o5 = (| 3 3 |, | 4  5 |)
      | 3 6 |  | 4  8 |
      | 6 3 |  | 7  5 |
               | 10 5 |

o5 : Sequence

The inhomogeneous Kunz cone does the same, but for the numbers mu_i instead of a_i. Thus when i+j > m the inequality mu_i+mu_j-mu_(i+j) \geq 0 is replaced by the inequality

mu_i+mu_j - mu_(i+j) -1.

The function coneEquations(m, "Inhomogeneous" => true) returns the same matrix as in the homogeneous case, with one more row, where the last row represents the constant terms of this inquality:

i6 : eq=coneEquations(3, "Inhomogeneous" => true)

o6 = | 2  -1 |
     | -1 2  |
     | 0  -1 |

              3       2
o6 : Matrix ZZ  <-- ZZ
i7 : coneEquations({3,4,5}, "Inhomogeneous" => true)

o7 = | 2  -1 |
     | -1 2  |
     | 0  -1 |

              3       2
o7 : Matrix ZZ  <-- ZZ
i8 : coneEquations({3,4}, "Inhomogeneous" => true)

o8 = | 2  -1 -2 |
     | -1 2  1  |
     | 0  -1 0  |

              3       3
o8 : Matrix ZZ  <-- ZZ
i9 : coneEquations({3,5}, "Inhomogeneous" => true)

o9 = | 2  -1 1  |
     | -1 2  -2 |
     | 0  -1 1  |

              3       3
o9 : Matrix ZZ  <-- ZZ
i10 : (H,M)=allSemigroups 3

o10 = (| 3 3 |, | 4  5 |)
       | 3 6 |  | 4  8 |
       | 6 3 |  | 7  5 |
                | 10 5 |

o10 : Sequence
i11 : (H,M)=allSemigroups 4

o11 = (| 4  0 4  |, | 5  6  7  |)
       | 4  4 4  |  | 5  6  11 |
       | 4  4 8  |  | 5  10 7  |
       | 4  8 4  |  | 5  10 11 |
       | 4  8 8  |  | 5  10 15 |
       | 4  8 12 |  | 9  6  7  |
       | 8  4 4  |  | 9  10 7  |
       | 8  8 4  |  | 9  14 7  |
       | 12 8 4  |  | 13 6  7  |
                    | 13 10 7  |
                    | 13 14 7  |
                    | 17 10 7  |
                    | 17 14 7  |
                    | 21 14 7  |

o11 : Sequence
i12 : M1=(M|matrix apply(rank target M,i->{-1}))

o12 = | 5  6  7  -1 |
      | 5  6  11 -1 |
      | 5  10 7  -1 |
      | 5  10 11 -1 |
      | 5  10 15 -1 |
      | 9  6  7  -1 |
      | 9  10 7  -1 |
      | 9  14 7  -1 |
      | 13 6  7  -1 |
      | 13 10 7  -1 |
      | 13 14 7  -1 |
      | 17 10 7  -1 |
      | 17 14 7  -1 |
      | 21 14 7  -1 |

               14       4
o12 : Matrix ZZ   <-- ZZ
i13 : eqInh=coneEquations(4, "Inhomogeneous" => true)

o13 = | 2  1  -1 0  |
      | -1 1  1  -1 |
      | 0  -1 1  2  |
      | 0  0  -1 -1 |

               4       4
o13 : Matrix ZZ  <-- ZZ
i14 : eqh=coneEquations(4)

o14 = | 2  1  -1 0  |
      | -1 1  1  -1 |
      | 0  -1 1  2  |

               3       4
o14 : Matrix ZZ  <-- ZZ
i15 : M1*eqInh

o15 = | 4  4  9  9  |
      | 4  0  13 17 |
      | 0  8  13 5  |
      | 0  4  17 13 |
      | 0  0  21 21 |
      | 12 8  5  9  |
      | 8  12 9  5  |
      | 4  16 13 1  |
      | 20 12 1  9  |
      | 16 16 5  5  |
      | 12 20 9  1  |
      | 24 20 1  5  |
      | 20 24 5  1  |
      | 28 28 1  1  |

               14       4
o15 : Matrix ZZ   <-- ZZ
i16 : H*eqh

o16 = | 8  0  0  8  |
      | 4  4  4  4  |
      | 4  0  8  12 |
      | 0  8  8  0  |
      | 0  4  12 8  |
      | 0  0  16 16 |
      | 12 8  0  4  |
      | 8  12 4  0  |
      | 16 16 0  0  |

               9       4
o16 : Matrix ZZ  <-- ZZ

All entries of M1*eqInh and H*eqh are non-negative as desired.

References

Kunz, Ernst: Klassification numerische Halbgruppen

Caveat

See also

Ways to use coneEquations:

For the programmer

The object coneEquations is a method function with options.