# ApCoCoA-1:NCo.PrefixInterreduction

## NCo.PrefixInterreduction

Prefix interreduction of a LIST of polynomials in a finitely presented monoid ring.

### Syntax

NCo.PrefixInterreduction(G:LIST):LIST

### Description

Let `P=K<X|R>` be a finitely presented monoid ring. A subset set `G` of non-zero polynomials in `P` is said to be *prefix interreduced* if no element of Supp(g) is a multiply of the leading word of any element in `R`, and if no element of Supp(g) contains the leading word of any elements in `{G\{g}}` as a prefix.

*Please note:* The function(s) explained on this page is/are using the *ApCoCoAServer*. You will have to start the ApCoCoAServer in order to use it/them.

Please set ring environment coefficient field ` K`, alphabet (or set of indeterminates) `X`, rewrite relations `Relations` and word ordering `Ordering` through the functions NCo.SetFp, NCo.SetX, NCo.SetRelations and NCo.SetOrdering, respectively, before using this function. The default coefficient field is the field of rational numbers, i.e. RAT in CoCoAL, and the default ordering is the length-lexicographic ordering "LLEX". For more information, please check the relevant functions.

@param

*G:*a LIST of non-zero polynomials in the monoid ring. Each polynomial is represented as a LIST of LISTs, i.e. as`[[C1,W1],...,[Cs,Ws]]`where, for each i, Wi is a term represented as a STRING and Ci is the coefficient of Wi. For example, polynomial`f=xy-y+1`is represented as F:=[[1,"xy"], [-1, "y"], [1,""]]. The zero polynomial`0`is represented as the empty LIST [].@return: a LIST of prefix interreduced polynomials.

#### Example

NCo.SetX(<quotes>abc</quotes>); NCo.SetOrdering(<quotes>LLEX</quotes>); NCo.SetRelations([[<quotes>aa</quotes>,<quotes></quotes>], [<quotes>bb</quotes>,<quotes></quotes>], [<quotes>ab</quotes>,<quotes>c</quotes>], [<quotes>ac</quotes>, <quotes>b</quotes>], [<quotes>cb</quotes>, <quotes>a</quotes>]]); G:=[[[1,<quotes>b</quotes>],[1,<quotes></quotes>]], [[1,<quotes>c</quotes>]],[[1,<quotes>ba</quotes>]]]; NCo.PrefixInterreduction(G); [[[1, <quotes>b</quotes>], [1, <quotes></quotes>]], [[1, <quotes>c</quotes>]], [[1, <quotes>a</quotes>]]] -------------------------------

### See also