#### D.15.20.5 sagbiDefIdealByDegree

Procedure from library `sagbiNormaliz.lib` (see sagbiNormaliz_lib).

Return:
  An instance of

  newstruct("sagbiResult","int success, ideal sagbiBasis, ideal defIdeal");

  success has the value 0, if the full Sagbi basis has not been reached, 1 if this is unknown, and 2 if the full Sagbi basis has been computed.

  sagbiBasis is the Sagbi basis encodeed as an ideal in the polynomial ring that was active when sagbiDefIdealByDegree was called.

  defIdeal contains the defining ideal (as far as computed). It lives in the ring (name of the result).r_defIdeal; See example for the activation of this ring. The defining ideal has been minimized.

  Note: sorting, if set at all, must be 0.

Example:

    LIB "sagbiNormaliz.lib";
    ring R = 0,(x(1..2)(1..5)), dp;
    matrix M[2][5] = x(1..2)(1..5);
    ideal P = minor(M,2);
    int degree_bound = 15;
    def Result = sagbiDefIdealByDegree(P, degree_bound, 0, 1);
    ==> Sorting not allowed for defining ideal and swiched off
    ==> complete subduction applied to size 10
    ==> polynomials 10 minimal so far 10
    ==> subduced size 10
    ==> Size defining ideal so far (not minimized) 0
    ==> Initial subduction dione
    ==> Making new tete-a-tete
    ==> Evaluating tete-a-tete
    ==> Computing 5 binomials
    ==> Binomials computed
    ==> Generators extended
    ==> Degree increased to 2
    ==> complete subduction applied to size 15
    ==> polynomials 15 minimal so far 10
    ==> polynomials 10 minimal so far 10
    ==> subduced size 10
    ==> Size defining ideal so far (not minimized) 5
    ==> *********************
    ==> Round 2 with 10 generators
    ==> Degree >= 3
    ==> Exploiting existing tete-a-tete
    ==> Tete-a-tete empty
    ==> Evaluating tete-a-tete
    ==> Computing 0 binomials
    ==> Binomials computed
    ==> Sagbi basis computed
    "Note: success = 2 <==> Sagbi basis and defining ideal completee";
    ==> Note: success = 2 <==> Sagbi basis and defining ideal completee
    "success", Result.success;
    ==> success 2
    "Sagbi basis";
    ==> Sagbi basis
    Result.sagbiBasis;
    ==> _[1]=x(1)(5)*x(2)(4)-x(1)(4)*x(2)(5)
    ==> _[2]=x(1)(5)*x(2)(3)-x(1)(3)*x(2)(5)
    ==> _[3]=x(1)(5)*x(2)(2)-x(1)(2)*x(2)(5)
    ==> _[4]=x(1)(5)*x(2)(1)-x(1)(1)*x(2)(5)
    ==> _[5]=x(1)(4)*x(2)(3)-x(1)(3)*x(2)(4)
    ==> _[6]=x(1)(4)*x(2)(2)-x(1)(2)*x(2)(4)
    ==> _[7]=x(1)(4)*x(2)(1)-x(1)(1)*x(2)(4)
    ==> _[8]=x(1)(3)*x(2)(2)-x(1)(2)*x(2)(3)
    ==> _[9]=x(1)(3)*x(2)(1)-x(1)(1)*x(2)(3)
    ==> _[10]=x(1)(2)*x(2)(1)-x(1)(1)*x(2)(2)
    def motherRing = Result.r_defIdeal;
    setring motherRing;
    "defining ideal";
    ==> defining ideal
    Result.defIdeal;
    ==> _[1]=y(7)*y(8)-y(6)*y(9)-y(5)*y(10)
    ==> _[2]=y(4)*y(8)-y(3)*y(9)-y(2)*y(10)
    ==> _[3]=y(4)*y(6)-y(3)*y(7)+y(1)*y(10)
    ==> _[4]=y(4)*y(5)-y(2)*y(7)-y(1)*y(9)
    ==> _[5]=y(3)*y(5)-y(2)*y(6)-y(1)*y(8)

User manual for Singular version 4.4.1p2, 2025, generated by texi2html.