Difference between revisions of "ApCoCoA-1:NCo.PrefixSaturation"

From ApCoCoAWiki
m (fixed links to namespace ApCoCoA)
m (replaced <quotes> tag by real quotes)
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
 +
{{Version|1}}
 
<command>
 
<command>
 
<title>NCo.PrefixSaturation</title>
 
<title>NCo.PrefixSaturation</title>
Line 10: Line 11:
 
<em>Please note:</em> The function(s) explained on this page is/are using the <em>ApCoCoAServer</em>. You will have to start the ApCoCoAServer in order to use it/them.
 
<em>Please note:</em> The function(s) explained on this page is/are using the <em>ApCoCoAServer</em>. You will have to start the ApCoCoAServer in order to use it/them.
 
<par/>
 
<par/>
Please set ring environment coefficient field <tt> K</tt>, alphabet (or set of indeterminates) <tt>X</tt>, rewrite relations <tt>Relations</tt> and word ordering <tt>Ordering</tt> through the functions <ref>ApCoCoA-1:NCo.SetFp|NCo.SetFp</ref>, <ref>ApCoCoA-1:NCo.SetX|NCo.SetX</ref>, <ref>ApCoCoA-1:NCo.SetRelations|NCo.SetRelations</ref> and <ref>ApCoCoA-1:NCo.SetOrdering|NCo.SetOrdering</ref>, 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 <quotes>LLEX</quotes>. For more information, please check the relevant functions.
+
Please set ring environment coefficient field <tt> K</tt>, alphabet (or set of indeterminates) <tt>X</tt>, rewrite relations <tt>Relations</tt> and word ordering <tt>Ordering</tt> through the functions <ref>ApCoCoA-1:NCo.SetFp|NCo.SetFp</ref>, <ref>ApCoCoA-1:NCo.SetX|NCo.SetX</ref>, <ref>ApCoCoA-1:NCo.SetRelations|NCo.SetRelations</ref> and <ref>ApCoCoA-1:NCo.SetOrdering|NCo.SetOrdering</ref>, 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.
 
<itemize>
 
<itemize>
<item>@param <em>F:</em> a LIST represents a polynomial in the monoid ring. Each polynomial is represented as a LIST of LISTs, i.e. as <tt>[[C1,W1],...,[Cs,Ws]]</tt> where, for each i, Wi is a term represented as a STRING and Ci is the coefficient of Wi. For example, polynomial <tt>f=xy-y+1</tt> is represented as F:=[[1,<quotes>xy</quotes>], [-1, <quotes>y</quotes>], [1,<quotes></quotes>]]. The zero polynomial <tt>0</tt> is represented as the empty LIST [].</item>
+
<item>@param <em>F:</em> a LIST represents a polynomial in the monoid ring. Each polynomial is represented as a LIST of LISTs, i.e. as <tt>[[C1,W1],...,[Cs,Ws]]</tt> where, for each i, Wi is a term represented as a STRING and Ci is the coefficient of Wi. For example, polynomial <tt>f=xy-y+1</tt> is represented as F:=[[1,"xy"], [-1, "y"], [1,""]]. The zero polynomial <tt>0</tt> is represented as the empty LIST [].</item>
  
 
<item>@return: a LIST of polynomials, which is a prefix saturation of F. <em>Warn</em> that the procedure might not terminate!</item>
 
<item>@return: a LIST of polynomials, which is a prefix saturation of F. <em>Warn</em> that the procedure might not terminate!</item>
Line 23: Line 24:
 
</itemize>
 
</itemize>
 
<example>
 
<example>
NCo.SetX(<quotes>abc</quotes>);
+
NCo.SetX("abc");
NCo.SetOrdering(<quotes>LLEX</quotes>);
+
NCo.SetOrdering("LLEX");
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>]]);
+
NCo.SetRelations([["aa",""], ["bb",""], ["ab","c"], ["ac", "b"], ["cb", "a"]]);
F := [[1,<quotes>a</quotes>],[1,<quotes>b</quotes>],[1,<quotes>c</quotes>]];
+
F := [[1,"a"],[1,"b"],[1,"c"]];
 
NCo.PrefixSaturation(F);
 
NCo.PrefixSaturation(F);
  
[[[1, <quotes>a</quotes>], [1, <quotes>c</quotes>], [1, <quotes></quotes>]], [[1, <quotes>a</quotes>], [1, <quotes>b</quotes>], [1, <quotes>c</quotes>]], [[1, <quotes>cc</quotes>], [1, <quotes>b</quotes>], [1, <quotes>c</quotes>]],  
+
[[[1, "a"], [1, "c"], [1, ""]], [[1, "a"], [1, "b"], [1, "c"]], [[1, "cc"], [1, "b"], [1, "c"]],  
[[1, <quotes>ca</quotes>], [1, <quotes>a</quotes>], [1, <quotes></quotes>]], [[1, <quotes>bc</quotes>], [1, <quotes>cc</quotes>], [1, <quotes>b</quotes>]], [[1, <quotes>ba</quotes>], [1, <quotes>ca</quotes>], [1, <quotes></quotes>]]]
+
[[1, "ca"], [1, "a"], [1, ""]], [[1, "bc"], [1, "cc"], [1, "b"]], [[1, "ba"], [1, "ca"], [1, ""]]]
 
-------------------------------
 
-------------------------------
 
</example>
 
</example>

Latest revision as of 13:44, 29 October 2020

This article is about a function from ApCoCoA-1.

NCo.PrefixSaturation

Compute a prefix saturation of a polynomial in a finitely presented monoid ring.

Syntax

NCo.PrefixSaturation(F:LIST[, LB:INT, OFlag:INT]):LIST

Description

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 F: a LIST represents a polynomial 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 polynomials, which is a prefix saturation of F. Warn that the procedure might not terminate!

About 2 optional parameters: in general, we can not know whether a polynomial in a monoid ring has a finite saturation or not. The function offers 2 optional parameters for controlling computing precess. Note that at the moment all of the following 2 additional optional parameters must be used at the same time.

  • @param LB: a positive INT, which gives a bound for the main loop in saturation computation. When it runs through the main loop LB times, the function stops and returns a set of polynomials.

  • @param OFlag: a non-negative INT, which is a switch for the output of ApCoCoAServer. If OFlag=0, the server prints nothing on the screen. If OFlag=1, the server prints basic information about computing procedure. Note that the initial idea of OFlag is to use it as a tool for debugging and tracing the computing process.

Example

NCo.SetX("abc");
NCo.SetOrdering("LLEX");
NCo.SetRelations([["aa",""], ["bb",""], ["ab","c"], ["ac", "b"], ["cb", "a"]]);
F := [[1,"a"],[1,"b"],[1,"c"]];
NCo.PrefixSaturation(F);

[[[1, "a"], [1, "c"], [1, ""]], [[1, "a"], [1, "b"], [1, "c"]], [[1, "cc"], [1, "b"], [1, "c"]], 
[[1, "ca"], [1, "a"], [1, ""]], [[1, "bc"], [1, "cc"], [1, "b"]], [[1, "ba"], [1, "ca"], [1, ""]]]
-------------------------------

See also

NCo.PrefixGB

NCo.PrefixInterreduction

NCo.PrefixNR

NCo.PrefixReducedGB

NCo.SetFp

NCo.SetOrdering

NCo.SetRelations

NCo.SetX

Introduction to CoCoAServer