X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=mjo%2Fpolynomial.py;h=55ada9a2f5d5ed259277fb8bceeb53f43a1b30e1;hb=1bbade9f41ffbfe366b15d0db657f666bc1f025d;hp=2b8dc2aa4cb825c06c6e0e09dc8582da0533817b;hpb=e0b910b5ab926b37605a8f606fce3f13bbf827ab;p=sage.d.git diff --git a/mjo/polynomial.py b/mjo/polynomial.py index 2b8dc2a..55ada9a 100644 --- a/mjo/polynomial.py +++ b/mjo/polynomial.py @@ -140,7 +140,8 @@ def multidiv(f, gs): sage: x,y,z = R.gens() sage: s = ZZ.random_element(1,5).abs() sage: gs = [ R.random_element() for idx in range(s) ] - sage: f = R.random_element(ZZ.random_element(10).abs()) + sage: # hack for SageMath Trac #28855 + sage: f = R(R.random_element(ZZ.random_element(10).abs())) sage: (qs, r) = multidiv(f,gs) sage: r != 0 or f in R.ideal(gs) True @@ -151,10 +152,10 @@ def multidiv(f, gs): sage: set_random_seed() sage: R = PolynomialRing(QQ, 'x,y,z') - sage: x,y,z = R.gens() sage: s = ZZ.random_element(1,5).abs() sage: gs = [ R.random_element() for idx in range(s) ] - sage: f = R.random_element(ZZ.random_element(10).abs()) + sage: # hack for SageMath Trac #28855 + sage: f = R(R.random_element(ZZ.random_element(10).abs())) sage: (qs, r) = multidiv(f,gs) sage: r + sum( qs[i]*gs[i] for i in range(len(gs)) ) == f True @@ -162,6 +163,20 @@ def multidiv(f, gs): ....: for g in gs )) True + Exercise 8 in Section 2.4 of Cox, Little, and O'Shea says that we + should always get a zero remainder if we divide an element of a + monomial ideal by its generators:: + + sage: set_random_seed() + sage: R = PolynomialRing(QQ,'x,y,z') + sage: gs = R.random_element().monomials() + sage: I = R.ideal(gs) + sage: # hack for SageMath Trac #28855 + sage: f = R(I.random_element(ZZ.random_element(5).abs())) + sage: (qs, r) = multidiv(f, gs) + sage: r.is_zero() + True + """ R = f.parent() s = len(gs)