Singular’s Groebner Strategy Objects#
AUTHORS:
Martin Albrecht (2009-07): initial implementation
Michael Brickenstein (2009-07): initial implementation
Hans Schoenemann (2009-07): initial implementation
- class sage.libs.singular.groebner_strategy.GroebnerStrategy[source]#
Bases:
SageObject
A Wrapper for Singular’s Groebner Strategy Object.
This object provides functions for normal form computations and other functions for Groebner basis computation.
ALGORITHM:
Uses Singular via libSINGULAR
- ideal()[source]#
Return the ideal this strategy object is defined for.
EXAMPLES:
sage: from sage.libs.singular.groebner_strategy import GroebnerStrategy sage: P.<x,y,z> = PolynomialRing(GF(32003)) sage: I = Ideal([x + z, y + z]) sage: strat = GroebnerStrategy(I) sage: strat.ideal() Ideal (x + z, y + z) of Multivariate Polynomial Ring in x, y, z over Finite Field of size 32003
>>> from sage.all import * >>> from sage.libs.singular.groebner_strategy import GroebnerStrategy >>> P = PolynomialRing(GF(Integer(32003)), names=('x', 'y', 'z',)); (x, y, z,) = P._first_ngens(3) >>> I = Ideal([x + z, y + z]) >>> strat = GroebnerStrategy(I) >>> strat.ideal() Ideal (x + z, y + z) of Multivariate Polynomial Ring in x, y, z over Finite Field of size 32003
- normal_form(p)[source]#
Compute the normal form of
p
with respect to the generators of this object.EXAMPLES:
sage: from sage.libs.singular.groebner_strategy import GroebnerStrategy sage: P.<x,y,z> = PolynomialRing(QQ) sage: I = Ideal([x + z, y + z]) sage: strat = GroebnerStrategy(I) sage: strat.normal_form(x*y) # indirect doctest z^2 sage: strat.normal_form(x + 1) -z + 1
>>> from sage.all import * >>> from sage.libs.singular.groebner_strategy import GroebnerStrategy >>> P = PolynomialRing(QQ, names=('x', 'y', 'z',)); (x, y, z,) = P._first_ngens(3) >>> I = Ideal([x + z, y + z]) >>> strat = GroebnerStrategy(I) >>> strat.normal_form(x*y) # indirect doctest z^2 >>> strat.normal_form(x + Integer(1)) -z + 1
- ring()[source]#
Return the ring this strategy object is defined over.
EXAMPLES:
sage: from sage.libs.singular.groebner_strategy import GroebnerStrategy sage: P.<x,y,z> = PolynomialRing(GF(32003)) sage: I = Ideal([x + z, y + z]) sage: strat = GroebnerStrategy(I) sage: strat.ring() Multivariate Polynomial Ring in x, y, z over Finite Field of size 32003
>>> from sage.all import * >>> from sage.libs.singular.groebner_strategy import GroebnerStrategy >>> P = PolynomialRing(GF(Integer(32003)), names=('x', 'y', 'z',)); (x, y, z,) = P._first_ngens(3) >>> I = Ideal([x + z, y + z]) >>> strat = GroebnerStrategy(I) >>> strat.ring() Multivariate Polynomial Ring in x, y, z over Finite Field of size 32003
- class sage.libs.singular.groebner_strategy.NCGroebnerStrategy[source]#
Bases:
SageObject
A Wrapper for Singular’s Groebner Strategy Object.
This object provides functions for normal form computations and other functions for Groebner basis computation.
ALGORITHM:
Uses Singular via libSINGULAR
- ideal()[source]#
Return the ideal this strategy object is defined for.
EXAMPLES:
sage: from sage.libs.singular.groebner_strategy import NCGroebnerStrategy sage: A.<x,y,z> = FreeAlgebra(QQ, 3) sage: H.<x,y,z> = A.g_algebra({y*x:x*y-z, z*x:x*z+2*x, z*y:y*z-2*y}) sage: I = H.ideal([y^2, x^2, z^2-H.one()]) sage: strat = NCGroebnerStrategy(I) sage: strat.ideal() == I True
>>> from sage.all import * >>> from sage.libs.singular.groebner_strategy import NCGroebnerStrategy >>> A = FreeAlgebra(QQ, Integer(3), names=('x', 'y', 'z',)); (x, y, z,) = A._first_ngens(3) >>> H = A.g_algebra({y*x:x*y-z, z*x:x*z+Integer(2)*x, z*y:y*z-Integer(2)*y}, names=('x', 'y', 'z',)); (x, y, z,) = H._first_ngens(3) >>> I = H.ideal([y**Integer(2), x**Integer(2), z**Integer(2)-H.one()]) >>> strat = NCGroebnerStrategy(I) >>> strat.ideal() == I True
- normal_form(p)[source]#
Compute the normal form of
p
with respect to the generators of this object.EXAMPLES:
sage: A.<x,y,z> = FreeAlgebra(QQ, 3) sage: H.<x,y,z> = A.g_algebra({y*x:x*y-z, z*x:x*z+2*x, z*y:y*z-2*y}) sage: JL = H.ideal([x^3, y^3, z^3 - 4*z]) sage: JT = H.ideal([x^3, y^3, z^3 - 4*z], side='twosided') sage: from sage.libs.singular.groebner_strategy import NCGroebnerStrategy sage: SL = NCGroebnerStrategy(JL.std()) sage: ST = NCGroebnerStrategy(JT.std()) sage: SL.normal_form(x*y^2) x*y^2 sage: ST.normal_form(x*y^2) y*z
>>> from sage.all import * >>> A = FreeAlgebra(QQ, Integer(3), names=('x', 'y', 'z',)); (x, y, z,) = A._first_ngens(3) >>> H = A.g_algebra({y*x:x*y-z, z*x:x*z+Integer(2)*x, z*y:y*z-Integer(2)*y}, names=('x', 'y', 'z',)); (x, y, z,) = H._first_ngens(3) >>> JL = H.ideal([x**Integer(3), y**Integer(3), z**Integer(3) - Integer(4)*z]) >>> JT = H.ideal([x**Integer(3), y**Integer(3), z**Integer(3) - Integer(4)*z], side='twosided') >>> from sage.libs.singular.groebner_strategy import NCGroebnerStrategy >>> SL = NCGroebnerStrategy(JL.std()) >>> ST = NCGroebnerStrategy(JT.std()) >>> SL.normal_form(x*y**Integer(2)) x*y^2 >>> ST.normal_form(x*y**Integer(2)) y*z
- ring()[source]#
Return the ring this strategy object is defined over.
EXAMPLES:
sage: from sage.libs.singular.groebner_strategy import NCGroebnerStrategy sage: A.<x,y,z> = FreeAlgebra(QQ, 3) sage: H.<x,y,z> = A.g_algebra({y*x:x*y-z, z*x:x*z+2*x, z*y:y*z-2*y}) sage: I = H.ideal([y^2, x^2, z^2-H.one()]) sage: strat = NCGroebnerStrategy(I) sage: strat.ring() is H True
>>> from sage.all import * >>> from sage.libs.singular.groebner_strategy import NCGroebnerStrategy >>> A = FreeAlgebra(QQ, Integer(3), names=('x', 'y', 'z',)); (x, y, z,) = A._first_ngens(3) >>> H = A.g_algebra({y*x:x*y-z, z*x:x*z+Integer(2)*x, z*y:y*z-Integer(2)*y}, names=('x', 'y', 'z',)); (x, y, z,) = H._first_ngens(3) >>> I = H.ideal([y**Integer(2), x**Integer(2), z**Integer(2)-H.one()]) >>> strat = NCGroebnerStrategy(I) >>> strat.ring() is H True
- sage.libs.singular.groebner_strategy.unpickle_GroebnerStrategy0(I)[source]#
EXAMPLES:
sage: from sage.libs.singular.groebner_strategy import GroebnerStrategy sage: P.<x,y,z> = PolynomialRing(GF(32003)) sage: I = Ideal([x + z, y + z]) sage: strat = GroebnerStrategy(I) sage: loads(dumps(strat)) == strat # indirect doctest True
>>> from sage.all import * >>> from sage.libs.singular.groebner_strategy import GroebnerStrategy >>> P = PolynomialRing(GF(Integer(32003)), names=('x', 'y', 'z',)); (x, y, z,) = P._first_ngens(3) >>> I = Ideal([x + z, y + z]) >>> strat = GroebnerStrategy(I) >>> loads(dumps(strat)) == strat # indirect doctest True
- sage.libs.singular.groebner_strategy.unpickle_NCGroebnerStrategy0(I)[source]#
EXAMPLES:
sage: from sage.libs.singular.groebner_strategy import NCGroebnerStrategy sage: A.<x,y,z> = FreeAlgebra(QQ, 3) sage: H.<x,y,z> = A.g_algebra({y*x:x*y-z, z*x:x*z+2*x, z*y:y*z-2*y}) sage: I = H.ideal([y^2, x^2, z^2-H.one()]) sage: strat = NCGroebnerStrategy(I) sage: loads(dumps(strat)) == strat # indirect doctest True
>>> from sage.all import * >>> from sage.libs.singular.groebner_strategy import NCGroebnerStrategy >>> A = FreeAlgebra(QQ, Integer(3), names=('x', 'y', 'z',)); (x, y, z,) = A._first_ngens(3) >>> H = A.g_algebra({y*x:x*y-z, z*x:x*z+Integer(2)*x, z*y:y*z-Integer(2)*y}, names=('x', 'y', 'z',)); (x, y, z,) = H._first_ngens(3) >>> I = H.ideal([y**Integer(2), x**Integer(2), z**Integer(2)-H.one()]) >>> strat = NCGroebnerStrategy(I) >>> loads(dumps(strat)) == strat # indirect doctest True