a field is a thing which acts like the rational numbers: addition, subtraction, multiplication, and division work, along with their normal properties: associativity, commutativity, distributive law, undefinedness of division by zero. the rational numbers and the real numbers are two common fields.
UPDATE: most of the following is incorrect. constructing a field extension requires an irreducible polynomial, not just any polynomial. often, determining whether a polynomial factors over a base field is nontrivial.
starting with a base field, one can create a new field, a "field extension", by choosing a polynomial, any polynomial, as a reduction polynomial. the coefficients of the polynomial come from the base field. the elements of the field extension are all the polynomials modulo the reduction polynomial. then, this new field can serve as a base field to construct another field extension, repeatable as many times as you wish. we demonstrate this below.
popular base fields from which to start are real numbers, rationals, or finite fields of size p where p is a prime number. incidentally, the field of complex numbers is the real numbers extended with the polynomial z^2+1. the p-adic numbers are another possibility for the base field, but I don't understand them.
something special happens if the reduction polynomial factors over the field of its coefficients, but I don't understand what. if the base field is the complex numbers, then by the fundamental theorem of algebra, all polynomials completely factor into linear terms.
UPDATE: the special thing that happens when the reduction polynomial factors is that the resulting "field extension" is not actually a field: there will exist nonzero elements that don't have reciprocals. here is an explicit example. a polynomial which does not factor over the base field is called irreducible. without the constraint that the reduction polynomial be irreducible, what we are constructing are commutative rings. (previously on ring theory: I'm pretty sure we are not constructing integral domains.) also, because of the fundamental theorem of algebra, our construction can never produce a field extension of the complex numbers. in fact, no "finite-dimensional" field extension of the complex numbers is possible. if we start with the base field of rational numbers, I think this gloriously hierarchical construction of fields upon fields upon fields remains possible, but it requires finding an irreducible polynomial for each lower field, which I don't know how to do. the Pari/GP function polisirreducible looks promising, but in the construction below, polisirreducible(m3) yields the error message "polisirreducible: sorry, factor for general polynomials is not yet implemented.".
with lots of flexibility in constructing fields (upon fields), there are definitely a vast infinitude of them. everyone can have their one of their own. previously: everyone can have their own entire function, their own subset of the integers (future post ipwyvyeh), their own slice of the sky. having your own number field seems bigger than all of these.
what overlaps are there, fields which look different but are actually the same (in some way that needs to be defined)? all finite fields of size p^n (field extensions of the base field integers mod p) are isomorphic: the reduction polynomial in a sense doesn't matter. (but I don't understand why this is true.)
it's a little surprising that fields are so easy to construct. (UPDATE: they are not so easy to construct, because one needs an irreducible polynomial.) compared to, say, groups, fields have to satisfy more axioms, so you would think fields would be hard to construct. maybe there are lots of overlaps, as there are mentioned above with finite field extensions, so maybe it's hard to construct a unique field different from everybody else's.
fields act like the real numbers, but it is possible to define an analogue of the integers in the field (keep adding one to itself), and then one can do some subset of number theory with those integers. what subset depends on the field in a way I don't understand: ring theory.
under what conditions can one do some analogue of calculus in a field?
some fields are more interesting than others. in what ways? what are some techniques to construct interesting fields?
we demonstrate the recursive construction of fields in Pari/GP. we start with the field of rational numbers and extend 3 times.
we need to tell Pari/GP which polynomial variables are outside of which:
? y=varhigher("y",'x);
? z=varhigher("z",'y);
this function creates a random polynomial in the variable "x" of degree n-1 with coefficients selected between -9 and 9. even though coefficients can be any rational, we start with integer coefficients to initially keep things simple. fractions will naturally show up in coefficients when we try division.
? xpoly(n)=my(s=List()); for(i=0,n-1, listput(s,random(19)-9)); Pol(Vec(s),x);
this function creates a random monic polynomial of degree n (coefficient of x^n term is 1). the reduction polynomial does not have to be monic, but if it is, then fractions won't show up when doing multiplication.
? getmod1(n)=x^n + xpoly(n);
the magic begins. this function creates a random polynomial of degree n-1 in the variable "y", with coefficients which are themselves the random polynomials in "x" constructed above. the second argument "m" is the reduction polynomial in "x".
? ypoly(n,m)=my(s=List()); my(mmax=poldegree(m)); for(i=0,n-1, listput(s,Mod(xpoly(mmax),m))); Pol(Vec(s),y);
this function creates a monic random polynomial in "y".
? getmod2(n,m)=Mod(1,m)*y^n + ypoly(n,m);
and repeat a third time, creating a random and monic random polynomial in the variable "z", with coefficients which are random polynomials in "y" constructed above. m1 is the reduction polynomial in "x"; m2 is the reduction polynomial in "y".
? zpoly(n,m1,m2)=my(s=List()); my(mmax=poldegree(m2)); for(i=0,n-1, listput(s,Mod(ypoly(mmax,m1),m2))); Pol(Vec(s),z);
? getmod3(n,m1,m2)=Mod(1,m2)*z^n + zpoly(n,m1,m2);
we construct a random monic cubic polynomial in "x" to be the reduction polynomial for the field of polynomials in "x".
? onesize=3;
? m1=getmod1(onesize)
x^3 + 4*x^2 + 2*x + 9
we construct a random monic quartic polynomial in "y" to be the reduction polynomial for the field of polynomials in "y".
? twosize=4;
? m2=getmod2(twosize,m1)
Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9)
we construct a random monic quintic polynomial in "z" to be the reduction polynomial for the field of polynomials in "z".
? threesize=5;
? m3=getmod3(threesize,m1,m2)
Mod(1, Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z^5 + Mod(Mod(3*x^2 + 5*x + 8, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(x^2 - 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(5*x^2 + 8*x + 7, x^3 + 4*x^2 + 2*x + 9)*y + Mod(7*x^2 - 9*x - 8, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z^4 + Mod(Mod(2*x^2 - 9*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(-5*x^2 + 9*x - 6, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-x^2 - 9*x + 9, x^3 + 4*x^2 + 2*x + 9)*y + Mod(x^2 + 8*x + 2, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z^3 + Mod(Mod(-9*x^2 - x + 8, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(-4*x^2 + 2*x - 6, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-9*x^2 - 2*x - 3, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-x^2 + 8*x + 1, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z^2 + Mod(Mod(-9*x^2 - 2*x + 6, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(6*x^2 - 5*x - 1, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(8*x^2 + 9, x^3 + 4*x^2 + 2*x + 9)*y + Mod(2*x^2 + 5*x - 1, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z + Mod(Mod(6*x^2 + 7*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(4*x^2 - x - 1, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(6*x^2 + x + 4, x^3 + 4*x^2 + 2*x + 9)*y + Mod(3*x^2 + 8, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))
next we pick two random polynomials in "z" to do arithmetic.
? r1=Mod(zpoly(twosize,m1,m2),m3)
Mod(Mod(Mod(-5*x^2 - 6*x - 5, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(-5*x^2 - 2*x - 2, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-x^2 - 6*x - 5, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-5*x^2 + 6*x, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z^3 + Mod(Mod(8*x^2 + 8*x + 1, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(-x^2 + 9*x - 9, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(9*x^2 - 4*x - 5, x^3 + 4*x^2 + 2*x + 9)*y + Mod(8*x^2 + 5*x + 8, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z^2 + Mod(Mod(5*x^2 - 8*x + 5, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(8*x^2 + 5*x + 2, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-4*x^2 - 3*x - 2, x^3 + 4*x^2 + 2*x + 9)*y + Mod(x + 6, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z + Mod(Mod(3*x^2 + 4*x + 4, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 7*x + 7, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(4*x^2 - 8*x - 4, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-x^2 + 2*x - 4, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9)), Mod(1, Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z^5 + Mod(Mod(3*x^2 + 5*x + 8, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(x^2 - 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(5*x^2 + 8*x + 7, x^3 + 4*x^2 + 2*x + 9)*y + Mod(7*x^2 - 9*x - 8, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z^4 + Mod(Mod(2*x^2 - 9*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(-5*x^2 + 9*x - 6, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-x^2 - 9*x + 9, x^3 + 4*x^2 + 2*x + 9)*y + Mod(x^2 + 8*x + 2, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z^3 + Mod(Mod(-9*x^2 - x + 8, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(-4*x^2 + 2*x - 6, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-9*x^2 - 2*x - 3, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-x^2 + 8*x + 1, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z^2 + Mod(Mod(-9*x^2 - 2*x + 6, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(6*x^2 - 5*x - 1, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(8*x^2 + 9, x^3 + 4*x^2 + 2*x + 9)*y + Mod(2*x^2 + 5*x - 1, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z + Mod(Mod(6*x^2 + 7*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(4*x^2 - x - 1, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(6*x^2 + x + 4, x^3 + 4*x^2 + 2*x + 9)*y + Mod(3*x^2 + 8, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9)))
? r2=Mod(zpoly(twosize,m1,m2),m3)
Mod(Mod(Mod(2*x + 4, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(4*x^2 - 9*x - 9, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(9*x^2 - x - 3, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-4*x^2 + 2*x + 8, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z^3 + Mod(Mod(6*x^2 - 6*x + 5, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 7*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(9*x^2 + 7*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - x - 6, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z^2 + Mod(Mod(6*x^2 + 8*x + 1, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(-2*x^2 + 7*x - 3, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(2*x^2 - 4*x + 6, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 7*x - 1, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z + Mod(Mod(-5*x^2 - 4*x + 3, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(5*x^2 + 5*x - 2, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-3*x^2 + 9*x + 1, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-3*x^2 + 7*x, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9)), Mod(1, Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z^5 + Mod(Mod(3*x^2 + 5*x + 8, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(x^2 - 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(5*x^2 + 8*x + 7, x^3 + 4*x^2 + 2*x + 9)*y + Mod(7*x^2 - 9*x - 8, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z^4 + Mod(Mod(2*x^2 - 9*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(-5*x^2 + 9*x - 6, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-x^2 - 9*x + 9, x^3 + 4*x^2 + 2*x + 9)*y + Mod(x^2 + 8*x + 2, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z^3 + Mod(Mod(-9*x^2 - x + 8, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(-4*x^2 + 2*x - 6, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-9*x^2 - 2*x - 3, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-x^2 + 8*x + 1, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z^2 + Mod(Mod(-9*x^2 - 2*x + 6, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(6*x^2 - 5*x - 1, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(8*x^2 + 9, x^3 + 4*x^2 + 2*x + 9)*y + Mod(2*x^2 + 5*x - 1, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z + Mod(Mod(6*x^2 + 7*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(4*x^2 - x - 1, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(6*x^2 + x + 4, x^3 + 4*x^2 + 2*x + 9)*y + Mod(3*x^2 + 8, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9)))
here is the product. Pari/GP automatically computes polynomial division and remainder to reduce products of polynomials by the reduction polynomials.
? product=r1*r2
Mod(Mod(Mod(-42275535498922442099655*x^2 + 2292990558153737295406*x - 93847403138001063597491, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(-19524288108000283627290*x^2 + 1058981520398668091781*x - 43341940344347874204407, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(20875500836647903604149*x^2 - 1132270174098385401674*x + 46341495651696929935245, x^3 + 4*x^2 + 2*x + 9)*y + Mod(544383857977375274674*x^2 - 29526895183765484952*x + 1208476931528623956049, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z^4 + Mod(Mod(-92090346391619002365609*x^2 + 4994905256266838228959*x - 204431233655047219653444, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(-42530471485938223585937*x^2 + 2306818000441874063193*x - 94413335219476375889120, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(45473867614031714359758*x^2 - 2466465453507091139345*x + 100947376240832771636948, x^3 + 4*x^2 + 2*x + 9)*y + Mod(1185851247245738197825*x^2 - 64319631056487773887*x + 2632469676472831095732, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z^3 + Mod(Mod(156505417609288760886301*x^2 - 8488726416794692960126*x + 347426161707879034315955, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(72279554356831335861229*x^2 - 3920384096807496492177*x + 160453283794980346566608, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-77281788157528951483733*x^2 + 4191701136493885686014*x - 171557735601681513556952, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2015326816658715981604*x^2 + 109309824709039732418*x - 4473821064237411479121, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z^2 + Mod(Mod(156226513634432685276510*x^2 - 8473598879138314986830*x + 346807023124112695698305, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(72150746957050881838741*x^2 - 3913397710443806626772*x + 160167344402058329344331, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-77144066415870078545696*x^2 + 4184231236088318213448*x - 171252007290227294175498, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2011735363979356549968*x^2 + 109115004174675286227*x - 4465848391530289261617, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z + Mod(Mod(-71347009230404103561784*x^2 + 3869803752090711013555*x - 158383127761049605872977, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(-32950488923764941753119*x^2 + 1787207721954809824620*x - 73146745363975008448930, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(35230885528222825528183*x^2 - 1910894511185582410674*x + 78208994563851198262561, x^3 + 4*x^2 + 2*x + 9)*y + Mod(918738430111787991486*x^2 - 49831698523981637296*x + 2039505978384278828555, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9)), Mod(1, Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z^5 + Mod(Mod(3*x^2 + 5*x + 8, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(x^2 - 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(5*x^2 + 8*x + 7, x^3 + 4*x^2 + 2*x + 9)*y + Mod(7*x^2 - 9*x - 8, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z^4 + Mod(Mod(2*x^2 - 9*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(-5*x^2 + 9*x - 6, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-x^2 - 9*x + 9, x^3 + 4*x^2 + 2*x + 9)*y + Mod(x^2 + 8*x + 2, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z^3 + Mod(Mod(-9*x^2 - x + 8, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(-4*x^2 + 2*x - 6, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-9*x^2 - 2*x - 3, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-x^2 + 8*x + 1, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z^2 + Mod(Mod(-9*x^2 - 2*x + 6, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(6*x^2 - 5*x - 1, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(8*x^2 + 9, x^3 + 4*x^2 + 2*x + 9)*y + Mod(2*x^2 + 5*x - 1, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z + Mod(Mod(6*x^2 + 7*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(4*x^2 - x - 1, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(6*x^2 + x + 4, x^3 + 4*x^2 + 2*x + 9)*y + Mod(3*x^2 + 8, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9)))
internally, Pari/GP stores these objects as type POLMOD.
? type(product)
"t_POLMOD"
the magic, the hard part, happens in division. we first check that division works.
? (product/r1)==r2
1
here is the reciprocal of r1.
? r1recip=1/r1
Mod(Mod(Mod(134202707714379365581103908842462812542851953283132991425500350923591895820697334075070141649585952234352909534546823524217543625363949332839885098160689021090593088840173841222761187232216538377407146192323566898250501281904030956611523440136788211195099112547/4142140753785339668022016445297818595244732062598646726500646177014966913794783466279595279785080518003804262641463522329202029236703194745340489668249979344404324459184730125445270690164549526871129608532591184314686659962005289462914167069556715346320303302616290*x^2 + 250062760221943228767271882901289297434073782885440034440178764216134064800434645815890354210608877646242882399093794556253209593792684882396646443398685704477114687837664361841207148841037799254012538011442068256514810156852584981047676280657642320495268711628/2071070376892669834011008222648909297622366031299323363250323088507483456897391733139797639892540259001902131320731761164601014618351597372670244834124989672202162229592365062722635345082274763435564804266295592157343329981002644731457083534778357673160151651308145*x - 162043850219557108138451542485649707294263039833540637488713985345383761176809031046445613612643208240726018882378743172339885452274149312702911537957271122982361152632876038181461790394526623842224114652493065880920820040511031889232374009094135292522166280697/4142140753785339668022016445297818595244732062598646726500646177014966913794783466279595279785080518003804262641463522329202029236703194745340489668249979344404324459184730125445270690164549526871129608532591184314686659962005289462914167069556715346320303302616290, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(-134422849011532993913963367253267098913751994796612897824827378224915584760725720652920074578352398349314039818140930822630213532369711236097314227502924886414137495581992576987102600841143606959200257352156061327221239904795215015279928596718571369391841928759/414214075378533966802201644529781859524473206259864672650064617701496691379478346627959527978508051800380426264146352232920202923670319474534048966824997934440432445918473012544527069016454952687112960853259118431468665996200528946291416706955671534632030330261629*x^2 - 1614331579887702731260445913085585476075795733216089262845799941515587858601758174762470456491734293196169846093738535613343096858418056681283035589110759395259229206175320737236739428372463931122939413347977287226187747646027798133385854530880112760617990762545/828428150757067933604403289059563719048946412519729345300129235402993382758956693255919055957016103600760852528292704465840405847340638949068097933649995868880864891836946025089054138032909905374225921706518236862937331992401057892582833413911343069264060660523258*x - 1775553012634455569186411654477944439510169091372767458107701677001223993472908515781195007116078232903225971562402973847423145040545513393439975569868895998573734896298039859562127572429081921935539609506362045514161890744124659703604745842364183332510331749547/828428150757067933604403289059563719048946412519729345300129235402993382758956693255919055957016103600760852528292704465840405847340638949068097933649995868880864891836946025089054138032909905374225921706518236862937331992401057892582833413911343069264060660523258, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-469681651770696444234681989472692407624753330368467926757469468955590919279721848826438157747715672569579759902413811139574340465129498389317524726385790626328590414585706322111013618466583228748302011983594322707645746913847234242662668372367939515958632869833/828428150757067933604403289059563719048946412519729345300129235402993382758956693255919055957016103600760852528292704465840405847340638949068097933649995868880864891836946025089054138032909905374225921706518236862937331992401057892582833413911343069264060660523258*x^2 - 677237277327916719418934851527683390116908149290698817150870971053806661179241003886606195918820294698640960013721619114872071655850342537248067854054295744100750343364776830951075461311562217293013974555949677813583100506190386720874404491199386857318408917935/414214075378533966802201644529781859524473206259864672650064617701496691379478346627959527978508051800380426264146352232920202923670319474534048966824997934440432445918473012544527069016454952687112960853259118431468665996200528946291416706955671534632030330261629*x + 2417848931981469446651899449116128012868887037376745126044072716151334551024820139878492871755063574397456337213022282463969817196523562442214202340862248058517597944430882240074953767508237715076517444837995087089197384976894522657693333595525908285023732945999/828428150757067933604403289059563719048946412519729345300129235402993382758956693255919055957016103600760852528292704465840405847340638949068097933649995868880864891836946025089054138032909905374225921706518236862937331992401057892582833413911343069264060660523258, x^3 + 4*x^2 + 2*x + 9)*y + Mod(476818196185182063655477536912014545807001743460616285503276705118671428179181564412394441609684554592335229009371453805900784564698211315307656763128343625800897943949786624750845722842745147882864717923061286567690712989272999711673161304380750663252298578677/1380713584595113222674005481765939531748244020866215575500215392338322304598261155426531759928360172667934754213821174109734009745567731581780163222749993114801441486394910041815090230054849842290376536177530394771562219987335096487638055689852238448773434434205430*x^2 + 939093988247281689877907623017874239223673835842275388828636717979636282212798857569252969123222703244926633236412349671704606110069385650373565365636767375930124647914459808033085023404614948379130631831858094734797952845730524631624002058374331512279643545393/690356792297556611337002740882969765874122010433107787750107696169161152299130577713265879964180086333967377106910587054867004872783865790890081611374996557400720743197455020907545115027424921145188268088765197385781109993667548243819027844926119224386717217102715*x - 536470383871403892749673704467144824640451506199807660570833439597627460489332864695166287362634681641312337250082604772662519945113087699807895678104612836149435796374975781425680533932164035178094710182895985145837930167612135206670097746636171274144343777457/1380713584595113222674005481765939531748244020866215575500215392338322304598261155426531759928360172667934754213821174109734009745567731581780163222749993114801441486394910041815090230054849842290376536177530394771562219987335096487638055689852238448773434434205430, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z^4 + Mod(Mod(-1245554377643364840110518915445238267363011341069981575321845193766116180097420586679157167109207465798787648558755927053551426658676750431548710090176742442062815344287266899741503154704054852771670575558973090025802007665996439648186520237996131811718503779711/1380713584595113222674005481765939531748244020866215575500215392338322304598261155426531759928360172667934754213821174109734009745567731581780163222749993114801441486394910041815090230054849842290376536177530394771562219987335096487638055689852238448773434434205430*x^2 - 4073265741585527306692879087055499103115026368639852590228499374025886303522456202442594822302900511533893084194793862216645741133336778903527214568077792525261928880021791085908242269080559967034422513987383780434983888658913897679097211293362409558059925348573/1380713584595113222674005481765939531748244020866215575500215392338322304598261155426531759928360172667934754213821174109734009745567731581780163222749993114801441486394910041815090230054849842290376536177530394771562219987335096487638055689852238448773434434205430*x + 2379042142162866959240947914983502509686871719798977405738216466510764701172161387673183675311722196607241728300841038139116655172011704271548684932141525752656405508003894967116752218868831507892485679380284047945321414502947866791920954552049913865752558713173/690356792297556611337002740882969765874122010433107787750107696169161152299130577713265879964180086333967377106910587054867004872783865790890081611374996557400720743197455020907545115027424921145188268088765197385781109993667548243819027844926119224386717217102715, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(15131211115555374434719999466842688974866653425297287312757277124093673462200218214998537403852409174555969271593076945235895311949883490038061181023042772135163971215004336806013840145309472176805071490698384080031657136904200816423238377337867004343639231661537/828428150757067933604403289059563719048946412519729345300129235402993382758956693255919055957016103600760852528292704465840405847340638949068097933649995868880864891836946025089054138032909905374225921706518236862937331992401057892582833413911343069264060660523258*x^2 + 29592503256367783245600100829460700960377042087147984542877005876342889980701695809680399111298693899087305067836867552827621570008222556897555093343759125447749370768456037804035917579587493706348901477609991980198832527643579025966177198915930173925683608669335/414214075378533966802201644529781859524473206259864672650064617701496691379478346627959527978508051800380426264146352232920202923670319474534048966824997934440432445918473012544527069016454952687112960853259118431468665996200528946291416706955671534632030330261629*x + 43081883686584264702421773704213097638559722136088885726891951017594316815442303444913639922722267161361489646165711286049139667417966175693986402018883847803155741108003269092184373482619637677734231122617058537723969099134113892815899396452724428762893211138997/828428150757067933604403289059563719048946412519729345300129235402993382758956693255919055957016103600760852528292704465840405847340638949068097933649995868880864891836946025089054138032909905374225921706518236862937331992401057892582833413911343069264060660523258, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(12020889561240865655631076457796602805092158825121135888509827641880335082355633736405293758295398090877933126890900218543924775366270766341907463339126018651225270016376306387571601778069450941648077164559572010932305375332378831350210788455252521606734903569693/828428150757067933604403289059563719048946412519729345300129235402993382758956693255919055957016103600760852528292704465840405847340638949068097933649995868880864891836946025089054138032909905374225921706518236862937331992401057892582833413911343069264060660523258*x^2 + 14818832946231373264836239979922049637925253340301960139537739382486547927440504831394216821954338136819743739250517855642829190775529464335438038974375332291035423236022919812872893059675407874804327957004537150579380985400235197619108064659895260627269433918973/828428150757067933604403289059563719048946412519729345300129235402993382758956693255919055957016103600760852528292704465840405847340638949068097933649995868880864891836946025089054138032909905374225921706518236862937331992401057892582833413911343069264060660523258*x - 55265999395294946662657736922121402258255758748067770126988882998934479848661201310074574776174095136306517927060384409439778688287542410940603433684277121803686553562218503547523543499498843526003267269660232498274730563393913301929446844049287931130217456840164/414214075378533966802201644529781859524473206259864672650064617701496691379478346627959527978508051800380426264146352232920202923670319474534048966824997934440432445918473012544527069016454952687112960853259118431468665996200528946291416706955671534632030330261629, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-63058278070159454573120860727035573042220859302175735542527146750216208205276639789662688129278721437209837064055564910376764925386111754782382158856523113490065280632895495351870812405177375805835773943129649920259114186280478878497571856735198717005252058707089/4142140753785339668022016445297818595244732062598646726500646177014966913794783466279595279785080518003804262641463522329202029236703194745340489668249979344404324459184730125445270690164549526871129608532591184314686659962005289462914167069556715346320303302616290*x^2 - 195955114681597055775568971992268372747854045832156675384825179686579762229737311491310752647483278961466186330132384995972189896272161575242683380943539271517713673858185770095032232750952090808506787488898620635443883250916550191189523421527187994249014477766927/4142140753785339668022016445297818595244732062598646726500646177014966913794783466279595279785080518003804262641463522329202029236703194745340489668249979344404324459184730125445270690164549526871129608532591184314686659962005289462914167069556715346320303302616290*x + 53626566318553431060768977246110855724238925590834900023054117891200319991865807554776486956198321309696398472927329033887391033397646954763935102151082916322976090454366109320190827721350630233828574467353141520188163546388437056294028087114695456518852144862107/2071070376892669834011008222648909297622366031299323363250323088507483456897391733139797639892540259001902131320731761164601014618351597372670244834124989672202162229592365062722635345082274763435564804266295592157343329981002644731457083534778357673160151651308145, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z^3 + Mod(Mod(947991457733658069923992550973430424557548338050714861343240573914118115694783823087756661922787254313510084227997910008053283287407656539686225038505608131969307056092948649774647323646277489457985688078019800691042590938120622631664419157290099406545729708293/1380713584595113222674005481765939531748244020866215575500215392338322304598261155426531759928360172667934754213821174109734009745567731581780163222749993114801441486394910041815090230054849842290376536177530394771562219987335096487638055689852238448773434434205430*x^2 + 1471272310773031477131403796421411203903869596107460430418250988674866913809626398926281532176664315074496405768807226048817577436340693166448264393993680271551343893117327933827692817349954438407421497837490213530262486564397079722744174246635089980792474539987/690356792297556611337002740882969765874122010433107787750107696169161152299130577713265879964180086333967377106910587054867004872783865790890081611374996557400720743197455020907545115027424921145188268088765197385781109993667548243819027844926119224386717217102715*x - 2832426555665875872796117030757752196957229204840727165014358321339785525907186641019821157962484283654380830740581514515977873186831655370663706927632145325600924704426216525087044149072644368389210561682757663206891314879141561243408950104865374454417293045203/1380713584595113222674005481765939531748244020866215575500215392338322304598261155426531759928360172667934754213821174109734009745567731581780163222749993114801441486394910041815090230054849842290376536177530394771562219987335096487638055689852238448773434434205430, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(-2742077969874418629957692825249383200022228240319129435553102861165686609749152210040159402010319349775420074581686493925339726688264449316723091523164882540231424554930915831486201670935572117170914990380708891600562103904912200273502501051568156568471305168512/414214075378533966802201644529781859524473206259864672650064617701496691379478346627959527978508051800380426264146352232920202923670319474534048966824997934440432445918473012544527069016454952687112960853259118431468665996200528946291416706955671534632030330261629*x^2 - 40280001885126808910253767488864288092724521980722255126106050695418505494114862543407854110146331708347585340646208659730130273296269392558294364889893562885956124346571114352808651594536009179377218924894712341755389034963074803302705030237909563076197351002357/828428150757067933604403289059563719048946412519729345300129235402993382758956693255919055957016103600760852528292704465840405847340638949068097933649995868880864891836946025089054138032909905374225921706518236862937331992401057892582833413911343069264060660523258*x - 20102395391961799889123643781966691412128109528162712795196294644337521003886632886224090567049001312309220310929189691819256069865108602418638669092019317523360963428118854721693663720319904342615473750431614234422545614141285757818594587520410487216769889394681/828428150757067933604403289059563719048946412519729345300129235402993382758956693255919055957016103600760852528292704465840405847340638949068097933649995868880864891836946025089054138032909905374225921706518236862937331992401057892582833413911343069264060660523258, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-3685610675183460314223496998088903992387573022988851676522115725771897345287791178922311327963394218944149250403439753949017485403112034515999718574180815439775164222713584281061101063781345526768839278978866721560881102117326608495530255378834810609137401792469/828428150757067933604403289059563719048946412519729345300129235402993382758956693255919055957016103600760852528292704465840405847340638949068097933649995868880864891836946025089054138032909905374225921706518236862937331992401057892582833413911343069264060660523258*x^2 - 663704758791441705982551840011794735657430365072034822768510666804371316530456204302619870681597666210289405907675664458669097553354123269031967630687619520929878760714945915858347208455063417004453568089523338022512635390221887339528787742390281899650714205867/414214075378533966802201644529781859524473206259864672650064617701496691379478346627959527978508051800380426264146352232920202923670319474534048966824997934440432445918473012544527069016454952687112960853259118431468665996200528946291416706955671534632030330261629*x + 69457370132846054577757608120391419926252387676761422748708887474245254138603907647159187893173635352974787359600173718138146494929477332873433000603457360550342877598033302633322933169633094894597584445872133787790852006627926173266755546362416286984858308766395/828428150757067933604403289059563719048946412519729345300129235402993382758956693255919055957016103600760852528292704465840405847340638949068097933649995868880864891836946025089054138032909905374225921706518236862937331992401057892582833413911343069264060660523258, x^3 + 4*x^2 + 2*x + 9)*y + Mod(34672375766413458114639736597920438586280099505593302257769238844103433365651022826116628823123158780250291203265702959012163914237669433950200731183106975050162728181706860461045620058846269782623587225986400434081870319042808969887186092112394687611675907202807/4142140753785339668022016445297818595244732062598646726500646177014966913794783466279595279785080518003804262641463522329202029236703194745340489668249979344404324459184730125445270690164549526871129608532591184314686659962005289462914167069556715346320303302616290*x^2 + 55502805574996056330444217056256370082420906862720006592795006428963710258014567202697908962878662434955396195525266106575343977489132389406626608409019055448831745242112247209086836846815115402811820662740985853303874591850727542640963601785880971202201944975513/2071070376892669834011008222648909297622366031299323363250323088507483456897391733139797639892540259001902131320731761164601014618351597372670244834124989672202162229592365062722635345082274763435564804266295592157343329981002644731457083534778357673160151651308145*x - 248780357670477538858779820170491050308408272362752154384644150665935407985432621564661792453564715071843129962913622056188971535011957946526508232550111055914591951853702955942447969556638449869451238050209280261932518354829867817702337735499498940941399193603607/4142140753785339668022016445297818595244732062598646726500646177014966913794783466279595279785080518003804262641463522329202029236703194745340489668249979344404324459184730125445270690164549526871129608532591184314686659962005289462914167069556715346320303302616290, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z^2 + Mod(Mod(137733710989341576440514635063468727850576821091829535729441837609076395350417759912374583176852029711731020402830986512428692919303139158660271987646076809349602895582028834716921515089288805138999761000137907470479764829940127031296470653326943013119911800803/828428150757067933604403289059563719048946412519729345300129235402993382758956693255919055957016103600760852528292704465840405847340638949068097933649995868880864891836946025089054138032909905374225921706518236862937331992401057892582833413911343069264060660523258*x^2 + 90812164555028274666806566252731214724131481897051048974471627010072694028692282937434450232441359132903076252154965396989812893334025832329332794258465892983995832439201099153191622760239396438522478502772771816176623482457740615352296524207151735961106191347/828428150757067933604403289059563719048946412519729345300129235402993382758956693255919055957016103600760852528292704465840405847340638949068097933649995868880864891836946025089054138032909905374225921706518236862937331992401057892582833413911343069264060660523258*x - 1017918918070819069456751812548624984072629966246159096967522062605261936060243215179671788603965724070835803964569562329443833328905120245946237138350974360953865060573795769305352915987815358126262956456918614497546125869480909607291962795698659555561941663838/414214075378533966802201644529781859524473206259864672650064617701496691379478346627959527978508051800380426264146352232920202923670319474534048966824997934440432445918473012544527069016454952687112960853259118431468665996200528946291416706955671534632030330261629, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(-6271425976441498330630720435935759094266933566205873393011724366828023466721896539709600017165609562712884779165383597923199238335846684094247220030235007735024084110798483451081840171168478712354962840822390358714230119504669717878413275811811473890171185152117/828428150757067933604403289059563719048946412519729345300129235402993382758956693255919055957016103600760852528292704465840405847340638949068097933649995868880864891836946025089054138032909905374225921706518236862937331992401057892582833413911343069264060660523258*x^2 - 10252417449725478535895644978224891693982381162035138714188950261420981902239728457420913924829552640450812263457658905059236530193388193149372854447271390972040657144167223399592437974412970601445262582710145326336214175323897244942470314808472163988726291591792/414214075378533966802201644529781859524473206259864672650064617701496691379478346627959527978508051800380426264146352232920202923670319474534048966824997934440432445918473012544527069016454952687112960853259118431468665996200528946291416706955671534632030330261629*x + 4823943854979316638536062981108204853439840698169393048275170752066037630551387612589106376853074001047667525282879202995888917332069538422797300466314773356376170182526599469177476165159992391428139688091937156251347426001130872855507144277430481878938925864245/828428150757067933604403289059563719048946412519729345300129235402993382758956693255919055957016103600760852528292704465840405847340638949068097933649995868880864891836946025089054138032909905374225921706518236862937331992401057892582833413911343069264060660523258, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(1345232116525120824363087771647729110910971901822844828928853763019199248407163692941281312206724757777467294666223140403574122618409193674381969168193468976358514104115878789821851384858399605907382514325228989356342964427107887768135809841507271300484037204431/828428150757067933604403289059563719048946412519729345300129235402993382758956693255919055957016103600760852528292704465840405847340638949068097933649995868880864891836946025089054138032909905374225921706518236862937331992401057892582833413911343069264060660523258*x^2 + 16318513204000757001904545637112845388200309457155038296044152843126303552991756553420223620430177833021912198626044130197145839102387324475517944592502998784052569926788248848950280546268685089250481766537249502831104054227450085819920416227353175218422447208521/828428150757067933604403289059563719048946412519729345300129235402993382758956693255919055957016103600760852528292704465840405847340638949068097933649995868880864891836946025089054138032909905374225921706518236862937331992401057892582833413911343069264060660523258*x + 19254527303434807108719402759675761227266920604682804740587082546450353736310449801195756829477645757552616656397790217050425365311371138206355505506252879803496690229701354859686154387318866232801039386554325111639566699088151941980179643234087967644439497132173/414214075378533966802201644529781859524473206259864672650064617701496691379478346627959527978508051800380426264146352232920202923670319474534048966824997934440432445918473012544527069016454952687112960853259118431468665996200528946291416706955671534632030330261629, x^3 + 4*x^2 + 2*x + 9)*y + Mod(184494387656080929120707119754047645588556945950176051553078280272941663127706860316352801803208296780203726460842853340065263589257987041420538992692387796144259183701711664631474567126689839382254451345793542799627843869707438811625608053512559216561170029585/828428150757067933604403289059563719048946412519729345300129235402993382758956693255919055957016103600760852528292704465840405847340638949068097933649995868880864891836946025089054138032909905374225921706518236862937331992401057892582833413911343069264060660523258*x^2 - 10177425641435014508121842471446229655889273429132047003367275829462079278464317909349778290372499680687223491640707922220821901105541810497837955588505572947341050911310123377717370747920233070923174009907112150527062969224143659097401630851126565137675068103215/828428150757067933604403289059563719048946412519729345300129235402993382758956693255919055957016103600760852528292704465840405847340638949068097933649995868880864891836946025089054138032909905374225921706518236862937331992401057892582833413911343069264060660523258*x - 18426363257142322406300582316983757473327174073484353811170249277729758247877176201970729082765406016081472507233108231546378710399922626050749268599155516659034408306298921009508138592530857664272597939041575914027200302621365622156582728613079575889963630118630/414214075378533966802201644529781859524473206259864672650064617701496691379478346627959527978508051800380426264146352232920202923670319474534048966824997934440432445918473012544527069016454952687112960853259118431468665996200528946291416706955671534632030330261629, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z + Mod(Mod(-698268000384102019395763551199019477074424525520107801689638439676083986113422830600950410533724771560067485507871947073607162680030326330924805151730108928803099482655533554384435800381803723399600776070543149494950627333646334160656501676563415861984286946541/4142140753785339668022016445297818595244732062598646726500646177014966913794783466279595279785080518003804262641463522329202029236703194745340489668249979344404324459184730125445270690164549526871129608532591184314686659962005289462914167069556715346320303302616290*x^2 - 461468343332129856294069373901433473205227127334554286338148147458894579325087881089247340818206112557230353528929072805670811652614412722139167328826722179424139338498822347271054458214819629777689948897433992686794045475955039481352110393439420418305456471289/2071070376892669834011008222648909297622366031299323363250323088507483456897391733139797639892540259001902131320731761164601014618351597372670244834124989672202162229592365062722635345082274763435564804266295592157343329981002644731457083534778357673160151651308145*x + 6761486018050361577056451538704121100431835000666430609119660958878519760703074527708978586807101376871857418426647582596564522995714597909241989857183108629703590384381506952016603323045769155726898753412605763556392185629214959150323970287272981486184516114481/4142140753785339668022016445297818595244732062598646726500646177014966913794783466279595279785080518003804262641463522329202029236703194745340489668249979344404324459184730125445270690164549526871129608532591184314686659962005289462914167069556715346320303302616290, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(152879896542353290266025453899898721864999116056359821328387356056511456185807639417997019232790653012151259913185097193146719376422312427519120699016604434393768519549437434667748453458709077892194543743539604551168714184557646560422890905800937330834377139189/46023786153170440755800182725531317724941467362207185850007179744610743486608705180884391997612005755597825140460705803657800324852257719392672107424999770493381382879830334727169674335161661409679217872584346492385407332911169882921268522995074614959114481140181*x^2 + 1655119301489062360318094910221345373574649661559527963926278399470166040612552607286253733533847171428127233238280786762045811509226638210132206018018237110714071668842270938861112562779788153966544939341825495269092036849326298259656147534930480809833711181541/92047572306340881511600365451062635449882934724414371700014359489221486973217410361768783995224011511195650280921411607315600649704515438785344214849999540986762765759660669454339348670323322819358435745168692984770814665822339765842537045990149229918228962280362*x - 643417500912183050086160145801683635187844866796463047790548749893748143529260954660391684264186786739060729342901468938391692424827559249846000057461380689860542147861798886671391208695407388710685031788063553538977182335653849918769232697839489128868562129771/92047572306340881511600365451062635449882934724414371700014359489221486973217410361768783995224011511195650280921411607315600649704515438785344214849999540986762765759660669454339348670323322819358435745168692984770814665822339765842537045990149229918228962280362, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-680542780573546604746861704412312695632623665127349326970023703339241534584166145358476759574441428293221415336966426652494043840084085937581177832558066867495885187790210787100871670232223202666244691411738007158128357531167318940413502673756404237711648802221/276142716919022644534801096353187906349648804173243115100043078467664460919652231085306351985672034533586950842764234821946801949113546316356032644549998622960288297278982008363018046010969968458075307235506078954312443997467019297527611137970447689754686886841086*x^2 - 1834118398923834757739138314092110671181234795292238098496848280948180092232814975954867333704009309205012437377407904937015741749061323302554471667390402385624516686308115155529955713650636023876540806241297477895923723719153922724551913946088704853296386450856/138071358459511322267400548176593953174824402086621557550021539233832230459826115542653175992836017266793475421382117410973400974556773158178016322274999311480144148639491004181509023005484984229037653617753039477156221998733509648763805568985223844877343443420543*x - 3305486330795782629553159702459054544146030683831468984045535871171318527941694090086200497196421763523116139814815117776296140766060239712295129522210910036651785205151301191470963166376016561252659127090179387014807847864336179717357371004549214780170791669873/276142716919022644534801096353187906349648804173243115100043078467664460919652231085306351985672034533586950842764234821946801949113546316356032644549998622960288297278982008363018046010969968458075307235506078954312443997467019297527611137970447689754686886841086, x^3 + 4*x^2 + 2*x + 9)*y + Mod(10449404429263305978270192717829481799378622697960803501816759366298822178613460161302736946613000890401698075589075468733954141284215119218560350854147887323068199070714092895644924496544537510677875912081217042838797858322125395624823709728736229898441727531837/4142140753785339668022016445297818595244732062598646726500646177014966913794783466279595279785080518003804262641463522329202029236703194745340489668249979344404324459184730125445270690164549526871129608532591184314686659962005289462914167069556715346320303302616290*x^2 + 39099085294410887579072647520316543180327784226965961733600258672588758000371546274288127617699174953422263032360375678308093100379352971587407932727001246384992440482875736244204687796205798792621109839561801602149053630579113628167227358435231426122687822445518/2071070376892669834011008222648909297622366031299323363250323088507483456897391733139797639892540259001902131320731761164601014618351597372670244834124989672202162229592365062722635345082274763435564804266295592157343329981002644731457083534778357673160151651308145*x + 198696167830789816946324344663142568928542828605677525689565374599471011422151479353711924874716110696215768125175098423047296296399002835721934453598090805025759971148746604971817570887050110584456715754765820620130358535225673879262073049888683453227807659149153/4142140753785339668022016445297818595244732062598646726500646177014966913794783466279595279785080518003804262641463522329202029236703194745340489668249979344404324459184730125445270690164549526871129608532591184314686659962005289462914167069556715346320303302616290, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9)), Mod(1, Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z^5 + Mod(Mod(3*x^2 + 5*x + 8, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(x^2 - 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(5*x^2 + 8*x + 7, x^3 + 4*x^2 + 2*x + 9)*y + Mod(7*x^2 - 9*x - 8, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z^4 + Mod(Mod(2*x^2 - 9*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(-5*x^2 + 9*x - 6, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-x^2 - 9*x + 9, x^3 + 4*x^2 + 2*x + 9)*y + Mod(x^2 + 8*x + 2, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z^3 + Mod(Mod(-9*x^2 - x + 8, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(-4*x^2 + 2*x - 6, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-9*x^2 - 2*x - 3, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-x^2 + 8*x + 1, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z^2 + Mod(Mod(-9*x^2 - 2*x + 6, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(6*x^2 - 5*x - 1, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(8*x^2 + 9, x^3 + 4*x^2 + 2*x + 9)*y + Mod(2*x^2 + 5*x - 1, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9))*z + Mod(Mod(6*x^2 + 7*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(4*x^2 - x - 1, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(6*x^2 + x + 4, x^3 + 4*x^2 + 2*x + 9)*y + Mod(3*x^2 + 8, x^3 + 4*x^2 + 2*x + 9), Mod(1, x^3 + 4*x^2 + 2*x + 9)*y^4 + Mod(8*x^2 + 8*x + 9, x^3 + 4*x^2 + 2*x + 9)*y^3 + Mod(2*x^2 - 6*x - 8, x^3 + 4*x^2 + 2*x + 9)*y^2 + Mod(-2*x^2 + 5*x, x^3 + 4*x^2 + 2*x + 9)*y + Mod(-2*x^2 - 9*x - 5, x^3 + 4*x^2 + 2*x + 9)))
check that multiplying by the reciprocal does the same thing as division.
? (r1recip*product)==r2
1
? (product*r1recip)==r2
1
here some checks of the basic arithmetic laws, field axioms, for this pair of polynomials.
subtraction works, and zero, the additive inverse, exists:
? Mod(0,m3) == (r1-r1)
1
commutativity of addition:
? (r1+r2)==(r2+r1)
1
commutativity of multiplication:
? (r2*r1)==product
1
we need one additional random element for further checks.
? c=Mod(zpoly(twosize,m1,m2),m3);
multiplication distributes over addition:
? (c*(r1+r2))==(c*r1+c*r2)
1
associativity of addition:
? ((c+r1)+r2) == (c+(r1+r2))
1
associativity of multiplication:
? ((c*r1)*r2) == (c*(r1*r2))
1
to do: multiplication by zero, multiplication by one, adding zero.
note: these are just demonstrations of the field axioms holding for our randomly chosen elements. the demonstrations aren't proofs.
previously computing division using linear algebra.
No comments :
Post a Comment