# CASA Function: mnormalf

Compute the normal form of a tuple of polynomials modulo a module.

### Calling Sequence:

• nf := mnormalf(f, G, X)
• nf := mnormalf(f, G, X, torder1)
• nf := mnormalf(f, G, X, torder1, torder2)

### Parameters:

f : list(polynom(rational))
• A polynomial tuple.
G : list(list(polynom(rational)))
• A list of polynomial tuples. Must be a Groebner basis.
X : list(name)
• A list of indeterminates.
torder1 : name
• A power-product-tuple ordering. Either term (for term first) or index (for index first - default).
torder2 : name
• A power-product ordering. Either plex (for pure lexicographic) or tdeg (for total degree - default).

### Result:

nf : list(polynom(rational))
• The normal form of f with respect to the Groebner basis G.

### Description:

• The command mnormalf(f, G, X, torder1, torder2) computes the normal form of the tuple of polynomials f modulo the module generated by G with respect to the indeterminates X and the given orderings.
• Note that G must be a Groebner basis. Therefore, usually first a Groebner basis for a set of polynomial tuples is computed (with mgbasis) and afterwards mnormalf is called.
• If X has the form [x1, x2, ..., xn], then using the pure lexicographic ordering this is interpreted as x1 > x2 > ... > xn. Within the total degree ordering, ties are broken by inverse lexicographic order.

### Examples:

> F:=[[x-1,x*y-1],[x*y-1,y],[y,x-1]]:

> G1:=mgbasis(F,[x,y]):

> mnormalf([x^3*y^2+x^3+1,y^3+x+1],G1,[x,y]); > G2:=mgbasis(F,[x,y],term):

> mnormalf([x^3*y^2+x^3+1,y^3+x+1],G2,[x,y],term); 