### Navigation

- index
- modules |
- next |
- previous |
- Polynomial Rings »
- Multivariate Polynomials and Polynomial Rings »

# Direct low-level access to SINGULAR’s Groebner basis engine via libSINGULAR.

Direct low-level access to SINGULAR’s Groebner basis engine via libSINGULAR.

AUTHOR:

- Martin Albrecht (2007-08-08): initial version

EXAMPLES:

    sage: x,y,z = QQ['x,y,z'].gens()
    sage: I = ideal(x^5 + y^4 + z^3 - 1,  x^3 + y^3 + z^2 - 1)
    sage: I.groebner_basis('libsingular:std')
    [y^6 + x*y^4 + 2*y^3*z^2 + x*z^3 + z^4 - 2*y^3 - 2*z^2 - x + 1,
     x^2*y^3 - y^4 + x^2*z^2 - z^3 - x^2 + 1, x^3 + y^3 + z^2 - 1]

We compute a Groebner basis for cyclic 6, which is a standard benchmark and test ideal:

    sage: R.<x,y,z,t,u,v> = QQ['x,y,z,t,u,v']
    sage: I = sage.rings.ideal.Cyclic(R,6)
    sage: B = I.groebner_basis('libsingular:std')
    sage: len(B)
    45

Two examples from the Mathematica documentation (done in Sage):

- We compute a Groebner basis:

      sage: R.<x,y> = PolynomialRing(QQ, order='lex')
      sage: ideal(x^2 - 2*y^2, x*y - 3).groebner_basis('libsingular:slimgb')
      [x - 2/3*y^3, y^4 - 9/2]

- We show that three polynomials have no common root:

      sage: R.<x,y> = QQ[]
      sage: ideal(x+y, x^2 - 1, y^2 - 2*x).groebner_basis('libsingular:slimgb')
      [1]

`sage.rings.polynomial.multi_polynomial_ideal_libsingular.``interred_libsingular`(I)

  SINGULAR’s `interred()` command.

  INPUT:

  - `I` – a Sage ideal

  EXAMPLES:

      sage: P.<x,y,z> = PolynomialRing(ZZ)
      sage: I = ideal( x^2 - 3*y, y^3 - x*y, z^3 - x, x^4 - y*z + 1 )
      sage: I.interreduced_basis()
      [y^3 - x*y, z^3 - x, x^2 - 3*y, 9*y^2 - y*z + 1]

      sage: P.<x,y,z> = PolynomialRing(QQ)
      sage: I = ideal( x^2 - 3*y, y^3 - x*y, z^3 - x, x^4 - y*z + 1 )
      sage: I.interreduced_basis()
      [y*z^2 - 81*x*y - 9*y - z, z^3 - x, x^2 - 3*y, y^2 - 1/9*y*z + 1/9]

`sage.rings.polynomial.multi_polynomial_ideal_libsingular.``kbase_libsingular`(I)

  SINGULAR’s `kbase()` algorithm.

  INPUT:

  - `I` – a groebner basis of an ideal

  OUTPUT:

  Computes a vector space basis (consisting of monomials) of the quotient ring by the ideal, resp. of a free module by the module, in case it is finite dimensional and if the input is a standard basis with respect to the ring ordering. If the input is not a standard basis, the leading terms of the input are used and the result may have no meaning.

  EXAMPLES:

      sage: R.<x,y> = PolynomialRing(QQ, order='lex')
      sage: I = R.ideal(x^2-2*y^2, x*y-3)
      sage: I.normal_basis()
      [y^3, y^2, y, 1]

`sage.rings.polynomial.multi_polynomial_ideal_libsingular.``slimgb_libsingular`(I)

  SINGULAR’s `slimgb()` algorithm.

  INPUT:

  - `I` – a Sage ideal

`sage.rings.polynomial.multi_polynomial_ideal_libsingular.``std_libsingular`(I)

  SINGULAR’s `std()` algorithm.

  INPUT:

  - `I` – a Sage ideal

### Navigation

- index
- modules |
- next |
- previous |
- Polynomial Rings »
- Multivariate Polynomials and Polynomial Rings »