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 - pwith 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 - pwith 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