Mea Culpa - Cleaning up mistakes from last time ================================= ### R. = ZZ[] S. = R.quotient((x^2 + y^2, 17)) S ### The following computation shows that the result of a computation is not necessarily reduced: (a+b)^17 ### This construction actually has different behaviour: R. = Zmod(17)[] S. = R.quotient((x^2 + y^2,)) S (a+b)^17 New content ========================================================= ###Elimination ideals R. = PolynomialRing(QQ,5) I = R * [x-t,y-t^2,z-t^3,s-x+y^3] J = I.elimination_ideal([t,s]); J ####An example from class #Let’s consider the map F^2 → F^33 given by (t, u) |-> (t(u^2 − t^22), u, u^2 − t^2). What’s a minimal set of equations describing its image? R. = PolynomialRing(QQ, order=’lex’) I = R.ideal([x - t*(u^2 - t^2), y - u, z - (u^2 - t^2)]) I.groebner_basis() # As the last polynomial does not involve u,t, the ideal of polynomials vanishing on the image of \bar F^2 is generated by x^2 - y^2*z^2 + z^3 # Alternative solution: I.elimination_ideal([t, u]) ### (Affine) Algebraic schemes in sage A. = AffineSpace(2, QQ) X = A.subscheme([x^2-y]) Y = A.subscheme([y]) X.union(Y) Z= X.intersection(Y) Z.defining_polynomials() Z.defining_ideal() Z.coordinate_ring() #Other schemes X = A.subscheme([x^2-x]) Y = A.subscheme([x^2-2*x]) X.irreducible_components() C=A.subscheme([x]) C==A ## X = A.subscheme([x^2-x]) Y = A.subscheme([x^2-2*x]) Z= X.intersection(Y) ######An example application of Gröbner bases: # This example shows how we can use Groebner bases over Z to find the primes modulo which a system of equations has a solution, when the system has no solutions over the rationals. #We first form a certain ideal I in Z[x,y,z], and note that the Groebner basis of I over Q contains 1, so there are no solutions over Q or an algebraic closure of it (this is not surprising as there are 4 equations in 3 unknowns). P. = PolynomialRing(ZZ,order='lex') I = ideal(-y^2 - 3*y + z^2 + 3, -2*y*z + z^2 + 2*z + 1, x*z + y*z + z^2, -3*x*y + 2*y*z + 6*z^2) I.change_ring(P.change_ring(QQ)).groebner_basis() #Thus, there are no solutions over Q or an algebraic extension of it. I.groebner_basis() ###Thus we will get a non-trivial Gröbner basis of I mod p for each p dividing 164878 factor(164878) 2 * 7 * 11777 I.change_ring(P.change_ring( GF(2) )).groebner_basis() I.change_ring(P.change_ring( GF(7) )).groebner_basis() I.change_ring(P.change_ring( GF(11777 ))).groebner_basis()