up previous next
 MinPolyQuot

minimal polynomial in quotient ring

 Syntax
 ```MinPolyQuot(f: RINGELEM, I: IDEAL, z: RINGELEM): RINGELEM MinPolyQuot(f: RINGELEM, I: IDEAL, z: RINGELEM, VerificationLevel: INT): RINGELEM MinPolyQuotDef(f: RINGELEM, I: IDEAL, z: RINGELEM): RINGELEM MinPolyQuotElim(f: RINGELEM, I: IDEAL, z: RINGELEM): RINGELEM MinPolyQuotMat(f: RINGELEM, I: IDEAL, z: RINGELEM): RINGELEM```

 Description
These functions return the minimal polynomial (in the indeterminate z ) of the element f modulo the 0-dimensional ideal I .

See article Abbott, Bigatti, Palezzato, Robbiano "Computing and Using Minimal Polynomials" ( https://arxiv.org/abs/1702.07262 )

When coefficients are in QQ , MinPolyQuot uses modular methods. If called with VerificationLevel equal to n>=0 the result polynomial is verified over FF_p , with n different primes (if n=0, not verified).

Verbosity: At level 80 it lists all primes used, indicating any which are bad.

 Example
 ```/**/ use P ::= QQ[x,y]; /**/ I := IdealOfPoints(P, mat([[1,2], [3,4], [5,6]])); /**/ MinPolyQuot(x,I,x); -- the smallest x-univariate poly in I x^3 -9*x^2 +23*x -15 /**/ indent(factor(It)); record[ RemainingFactor := 1, factors := [x -1, x -3, x -5], multiplicities := [1, 1, 1] ] /**/ f := x+y; /**/ I := ideal(x^2, y^2); /**/ MinPolyQuot(f,I,x); x^3 /**/ subst(It, x, f) isin I; true /**/ use QQ[x,y]; /**/ I := ideal(x^3-5,y^2-3); /**/ f := x+y; /**/ SetVerbosityLevel(80); /**/ MinPolyQuot(f, I, x); 1: prime is 32009 2: prime is 32027 x^6 -9*x^4 -10*x^3 +27*x^2 -90*x -2 ---- this is how to use an indet in another ring: /**/ QQt := RingQQt(1); /**/ MinPolyQuot(f, I, indet(RingQQt(1),1)); t^3 ```