up previous next
MinPolyQuot, MinPolyQuotDef, MinPolyQuotElim, MinPolyQuotMat

compute a minimal polynomial

Syntax
MinPolyQuot(f: RINGELEM, I: IDEAL, z: RINGELEM): 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
This 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 Minimal polynomial (coming soon)

Verbosity: MinPolyQuot uses modular methods when coefficients are in QQ . At level 1 gives a warning when a prime gives an incompatible answer with the others (extremely rare); at level 2 is lists all primes used.

Example
/**/ use P ::= QQ[x,y];
/**/ I := IdealOfPoints(P, mat([[1,2], [3,4], [5,6]]));
/**/ MinPolyQuotDef(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);
/**/ MinPolyQuotDef(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(2);
/**/ 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);
/**/ MinPolyQuotDef(f, I, indet(RingQQt(1),1));
t^3

See Also