 RegularChains[ChainTools] - Maple Programming Help

Home : Support : Online Help : Mathematics : Factorization and Solving Equations : RegularChains : ChainTools Subpackage : RegularChains/ChainTools/Regularize

RegularChains[ChainTools]

 Regularize
 make a polynomial regular or null with respect to a regular chain

 Calling Sequence Regularize(p, rc, R) Regularize(p, rc, R, 'normalized'='yes') Regularize(p, rc, R, 'normalized'='strongly')

Parameters

 p - polynomial of R rc - regular chain of R R - polynomial ring 'normalized'='yes' - (optional) boolean flag 'normalized'='strongly' - (optional) boolean flag

Description

 • The command Regularize(p, rc, R) returns a list made of two lists. The first one consists of regular chains $\mathrm{reg_i}$ such that p is regular modulo the saturated ideal of $\mathrm{reg_i}$. The second one consists of regular chains $\mathrm{sing_i}$ such that p is null modulo the saturated ideal of $\mathrm{sing_i}$.
 • In addition, the union of the regular chains of these lists is a decomposition of rc in the sense of Kalkbrener.
 • If 'normalized'='yes' is passed, all the returned regular chains are normalized.
 • If 'normalized'='strongly' is passed, all the returned regular chains are strongly normalized.
 • If 'normalized'='yes' is present, rc must be normalized.
 • If 'normalized'='strongly' is present, rc must be strongly normalized.
 • The command RegularizeDim0 implements another algorithm with the same purpose as that of the command Regularize. However it is specialized to zero-dimensional regular chains in prime characteristic. When both algorithms apply, the latter usually outperforms the former one.
 • This command is part of the RegularChains[ChainTools] package, so it can be used in the form Regularize(..) only after executing the command with(RegularChains[ChainTools]).  However, it can always be accessed through the long form of the command by using RegularChains[ChainTools][Regularize](..).

Examples

 > with(RegularChains): with(ChainTools):
 > R := PolynomialRing([x, y, z]);
 ${R}{≔}{\mathrm{polynomial_ring}}$ (1)
 > rc := Empty(R);
 ${\mathrm{rc}}{≔}{\mathrm{regular_chain}}$ (2)
 > rc := Chain([z*(z-1), y*(y-2)], rc, R); Equations(rc, R);
 ${\mathrm{rc}}{≔}{\mathrm{regular_chain}}$
 $\left[{{y}}^{{2}}{-}{2}{}{y}{,}{{z}}^{{2}}{-}{z}\right]$ (3)
 > p := z* x+y;
 ${p}{≔}{z}{}{x}{+}{y}$ (4)
 > reg, sing := op(Regularize(p, rc, R));
 ${\mathrm{reg}}{,}{\mathrm{sing}}{≔}\left[{\mathrm{regular_chain}}{,}{\mathrm{regular_chain}}{,}{\mathrm{regular_chain}}\right]{,}\left[{\mathrm{regular_chain}}\right]$ (5)
 > map(Equations, reg, R);
 $\left[\left[{y}{-}{2}{,}{z}\right]{,}\left[{y}{,}{z}{-}{1}\right]{,}\left[{y}{-}{2}{,}{z}{-}{1}\right]\right]$ (6)
 > map(Equations, sing, R);
 $\left[\left[{y}{,}{z}\right]\right]$ (7)
 > [seq(SparsePseudoRemainder(p, reg[i], R), i=1..nops(reg))];
 $\left[{2}{,}{x}{,}{x}{+}{2}\right]$ (8)
 > seq(SparsePseudoRemainder(p, sing[i], R), i=1..nops(sing));
 ${0}$ (9)