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

From ApCoCoAWiki
(New page: <command> <title>NCo.BGB</title> <short_description> Enumerate a (partial) Groebner basis of a finitely generated two-sided ideal in a free monoid ring over the binary field F_{2}={0,1} vi...)
 
m (replaced <quotes> tag by real quotes)
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
{{Version|1}}
 
<command>
 
<command>
 
<title>NCo.BGB</title>
 
<title>NCo.BGB</title>
 
<short_description>
 
<short_description>
 
Enumerate a (partial) Groebner basis of a finitely generated two-sided ideal in a free monoid ring over the binary field F_{2}={0,1} via the Buchberger procedure.  
 
Enumerate a (partial) Groebner basis of a finitely generated two-sided ideal in a free monoid ring over the binary field F_{2}={0,1} via the Buchberger procedure.  
<par/>
 
Given a word ordering <tt>Ordering</tt>, a set <tt>Gb</tt> of non-zero polynomials is called a <em>Groebner basis</em> with respect to <tt>Ordering</tt> if the leading word set <tt>LW{Gb}</tt> generates the leading word ideal <tt>LW(&lt;Gb&gt;)</tt>. Note that a two-sided ideal can not have finite Groebner bases.
 
 
</short_description>
 
</short_description>
 
<syntax>
 
<syntax>
Line 10: Line 9:
 
</syntax>
 
</syntax>
 
<description>
 
<description>
 +
Given a word ordering <tt>Ordering</tt>, a set <tt>Gb</tt> of non-zero polynomials is called a <em>Groebner basis</em> with respect to <tt>Ordering</tt> if the leading word set <tt>BLW{Gb}</tt> generates the leading word ideal <tt>BLW(&lt;Gb&gt;)</tt>. Note that a two-sided ideal can not have finite Groebner bases.
 +
<par/>
 
<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 <em>alphabet</em> (or set of indeterminates) <tt>X</tt> and <em>word ordering</em> via the functions <ref>NCo.SetX</ref> and <ref>NCo.SetOrdering</ref>, respectively, before calling this function. The default ordering is the length-lexicographic ordering (<quotes>LLEX</quotes>). For more information, please check the relevant functions.
+
Please set ring environment <em>alphabet</em> (or set of indeterminates) <tt>X</tt> and <em>word ordering</em> via the functions <ref>ApCoCoA-1:NCo.SetX|NCo.SetX</ref> and <ref>ApCoCoA-1:NCo.SetOrdering|NCo.SetOrdering</ref>, respectively, before calling this function. The default ordering is the length-lexicographic ordering ("LLEX"). For more information, please check the relevant functions.
 
<itemize>
 
<itemize>
<item>@param <em>G:</em> a LIST of non-zero polynomials generating a two-sided ideal in the free monoid ring <tt>F_{2}&lt;X&gt;</tt>. Each polynomial is represented as a LIST of words (or terms) in <tt>&lt;X&gt;</tt>. Each word is represented as a STRING. For example, <tt>xy^2x</tt> is represented as <quotes>xyyx</quotes>, and the identity is represented as the empty string <quotes></quotes>. Thus, the polynomial <tt>f=xy-y+1</tt> is represented as F:=[<quotes>xy</quotes>, <quotes>y</quotes>, <quotes></quotes>]. The zero polynomial <tt>0</tt> is represented as the empty LIST [].</item>
+
<item>@param <em>G:</em> a LIST of non-zero polynomials generating a two-sided ideal in the free monoid ring <tt>F_{2}&lt;X&gt;</tt>. Each polynomial is represented as a LIST of words (or terms) in <tt>&lt;X&gt;</tt>. Each word is represented as a STRING. For example, <tt>xy^2x</tt> is represented as "xyyx", and the identity is represented as the empty string "". Thus, the polynomial <tt>f=xy-y+1</tt> is represented as F:=["xy", "y", ""]. The zero polynomial <tt>0</tt> is represented as the empty LIST [].</item>
  
 
<item>@return: a LIST of polynomials, which is a Groebner basis with respect to the current word ordering if there exists a finite Groebner basis and the enumerating procedure doesn't terminate due to reaching the degree bound DB or the loop bound LB, and is a partial Groebner basis otherwise.</item>
 
<item>@return: a LIST of polynomials, which is a Groebner basis with respect to the current word ordering if there exists a finite Groebner basis and the enumerating procedure doesn't terminate due to reaching the degree bound DB or the loop bound LB, and is a partial Groebner basis otherwise.</item>
Line 27: Line 28:
 
</itemize>
 
</itemize>
 
<example>
 
<example>
NCo.SetX(<quotes>ab</quotes>);
+
NCo.SetX("ab");
NCo.SetOrdering(<quotes>LLEX</quotes>);
+
NCo.SetOrdering("LLEX");
F1:=[<quotes>aa</quotes>, <quotes></quotes>];
+
F1:=["aa", ""];
F2:=[<quotes>bbb</quotes>, <quotes></quotes>];
+
F2:=["bbb", ""];
F3:=[<quotes>abababbabbabababbabb</quotes>, <quotes></quotes>];
+
F3:=["abababbabbabababbabb", ""];
 
G:=[F1,F2,F3];
 
G:=[F1,F2,F3];
 
NCo.BGB(G);
 
NCo.BGB(G);
  
[[<quotes>aa</quotes>, <quotes></quotes>], [<quotes>bbb</quotes>, <quotes></quotes>], [<quotes>abbabbabab</quotes>, <quotes>bbabbababa</quotes>] [<quotes>abbabababb</quotes>, <quotes>babbabbaba</quotes>]  
+
[["aa", ""], ["bbb", ""], ["abbabbabab", "bbabbababa"] ["abbabababb", "babbabbaba"]  
[<quotes>ababbabbab</quotes>, <quotes>bbabababba</quotes>] [<quotes>abababbabb</quotes>, <quotes>bababbabba</quotes>] [<quotes>babbabbabab</quotes>, <quotes>abbababa</quotes>]  
+
["ababbabbab", "bbabababba"] ["abababbabb", "bababbabba"] ["babbabbabab", "abbababa"]  
[<quotes>ababbabbaba</quotes>, <quotes>bbabababb</quotes>] [<quotes>bbabbabababb</quotes>, <quotes>abbabbaba</quotes>] [<quotes>bbabababbabb</quotes>, <quotes>ababbabba</quotes>]  
+
["ababbabbaba", "bbabababb"] ["bbabbabababb", "abbabbaba"] ["bbabababbabb", "ababbabba"]  
[<quotes>ababbabbabab</quotes>, <quotes>bbababa</quotes>] [<quotes>bababbabbabab</quotes>, <quotes>ababa</quotes>] [<quotes>abababbababab</quotes>, <quotes>babababbababa</quotes>]  
+
["ababbabbabab", "bbababa"] ["bababbabbabab", "ababa"] ["abababbababab", "babababbababa"]  
[<quotes>ababababbabab</quotes>, <quotes>bababbabababa</quotes>] [<quotes>abbababababbab</quotes>, <quotes>babbababababba</quotes>] [<quotes>ababbababababb</quotes>, <quotes>bbababababbaba</quotes>]  
+
["ababababbabab", "bababbabababa"] ["abbababababbab", "babbababababba"] ["ababbababababb", "bbababababbaba"]  
[<quotes>abababbabbabab</quotes>, <quotes>baba</quotes>] [<quotes>ababababbababa</quotes>, <quotes>bababbababab</quotes>] [<quotes>bbabababbababab</quotes>, <quotes>abababbababa</quotes>]  
+
["abababbabbabab", "baba"] ["ababababbababa", "bababbababab"] ["bbabababbababab", "abababbababa"]  
[<quotes>bababbababababb</quotes>, <quotes>ababababbaba</quotes>] [<quotes>ababbababababba</quotes>, <quotes>bbababababbab</quotes>] [<quotes>abababbabbababa</quotes>, <quotes>bab</quotes>]  
+
["bababbababababb", "ababababbaba"] ["ababbababababba", "bbababababbab"] ["abababbabbababa", "bab"]  
[<quotes>bbabbababababbab</quotes>, <quotes>abbababababba</quotes>] [<quotes>abababbababbabab</quotes>, <quotes>bababbababbababa</quotes>] [<quotes>abababbabbabababb</quotes>, <quotes>ba</quotes>]  
+
["bbabbababababbab", "abbababababba"] ["abababbababbabab", "bababbababbababa"] ["abababbabbabababb", "ba"]  
[<quotes>bbabababbababbabab</quotes>, <quotes>ababbababbababa</quotes>] [<quotes>babbabbabbabbabbab</quotes>, <quotes>abbababababababba</quotes>] [<quotes>abbabbabbabbabbaba</quotes>, <quotes>bbabbababababababb</quotes>]  
+
["bbabababbababbabab", "ababbababbababa"] ["babbabbabbabbabbab", "abbababababababba"] ["abbabbabbabbabbaba", "bbabbababababababb"]  
[<quotes>abbababbababbababa</quotes>, <quotes>bababbabababababab</quotes>] [<quotes>abbabababababababb</quotes>, <quotes>babbabababababbaba</quotes>] [<quotes>ababbabababababbab</quotes>, <quotes>bbabababababababba</quotes>]  
+
["abbababbababbababa", "bababbabababababab"] ["abbabababababababb", "babbabababababbaba"] ["ababbabababababbab", "bbabababababababba"]  
[<quotes>abababbabbabababba</quotes>, <quotes>b</quotes>] [<quotes>bbabbababbababbabab</quotes>, <quotes>ababbababababababa</quotes>] [<quotes>bbabbababababababba</quotes>, <quotes>abbabbabbabbabbab</quotes>]  
+
["abababbabbabababba", "b"] ["bbabbababbababbabab", "ababbababababababa"] ["bbabbababababababba", "abbabbabbabbabbab"]  
[<quotes>bababbababbababbabb</quotes>, <quotes>abababababababbaba</quotes>] [<quotes>bababbabababababbab</quotes>, <quotes>abababababababba</quotes>] [<quotes>bababbababababababa</quotes>, <quotes>abbababbababbabab</quotes>]  
+
["bababbababbababbabb", "abababababababbaba"] ["bababbabababababbab", "abababababababba"] ["bababbababababababa", "abbababbababbabab"]  
[<quotes>ababbababbababbabba</quotes>, <quotes>bbabababababababbab</quotes>] [<quotes>ababbabababababbaba</quotes>, <quotes>bbabababababababb</quotes>] [<quotes>bbabbabababababababb</quotes>, <quotes>abbabababababbaba</quotes>]  
+
["ababbababbababbabba", "bbabababababababbab"] ["ababbabababababbaba", "bbabababababababb"] ["bbabbabababababababb", "abbabababababbaba"]  
[<quotes>bbabababababababbaba</quotes>, <quotes>ababbababbababbabb</quotes>] [<quotes>bababbababbababbabba</quotes>, <quotes>abababababababbab</quotes>] [<quotes>abababbabbabababbabb</quotes>, <quotes></quotes>]  
+
["bbabababababababbaba", "ababbababbababbabb"] ["bababbababbababbabba", "abababababababbab"] ["abababbabbabababbabb", ""]  
[<quotes>abbababababababababbab</quotes>, <quotes>babbababababababababba</quotes>] [<quotes>ababbababbabababababab</quotes>, <quotes>bababbababbabababababa</quotes>]  
+
["abbababababababababbab", "babbababababababababba"] ["ababbababbabababababab", "bababbababbabababababa"]  
[<quotes>ababbababababababababb</quotes>, <quotes>bbababababababababbaba</quotes>] [<quotes>babbababbababbababbabab</quotes>, <quotes>abbabababababababababa</quotes>]  
+
["ababbababababababababb", "bbababababababababbaba"] ["babbababbababbababbabab", "abbabababababababababa"]  
[<quotes>bababbababbababbababbab</quotes>, <quotes>ababababababababababba</quotes>] [<quotes>abbababababababababbaba</quotes>, <quotes>babbababababababababb</quotes>]  
+
["bababbababbababbababbab", "ababababababababababba"] ["abbababababababababbaba", "babbababababababababb"]  
[<quotes>ababbababbababbababbaba</quotes>, <quotes>bbababababababababababb</quotes>] [<quotes>ababbababababababababab</quotes>, <quotes>babbabababababababababa</quotes>]  
+
["ababbababbababbababbaba", "bbababababababababababb"] ["ababbababababababababab", "babbabababababababababa"]  
[<quotes>ababababababababababbab</quotes>, <quotes>babababababababababbaba</quotes>] [<quotes>bbabbababababababababbab</quotes>, <quotes>abbababababababababba</quotes>]  
+
["ababababababababababbab", "babababababababababbaba"] ["bbabbababababababababbab", "abbababababababababba"]  
[<quotes>bbabbabababababababababa</quotes>, <quotes>abbababbababbababbabab</quotes>] [<quotes>bbababababababababababba</quotes>, <quotes>ababbababbababbababbab</quotes>]  
+
["bbabbabababababababababa", "abbababbababbababbabab"] ["bbababababababababababba", "ababbababbababbababbab"]  
[<quotes>abbababababababababababb</quotes>, <quotes>babbababbababbababbaba</quotes>] [<quotes>ababababababababababbaba</quotes>, <quotes>babababababababababbab</quotes>]  
+
["abbababababababababababb", "babbababbababbababbaba"] ["ababababababababababbaba", "babababababababababbab"]  
[<quotes>abababababababababababab</quotes>, <quotes>babababababababababababa</quotes>] [<quotes>abbababababababababababab</quotes>, <quotes>babababababababababababba</quotes>]  
+
["abababababababababababab", "babababababababababababa"] ["abbababababababababababab", "babababababababababababba"]  
[<quotes>ababababababababababababb</quotes>, <quotes>bbabababababababababababa</quotes>] [<quotes>bbabababababababababababab</quotes>, <quotes>abababababababababababa</quotes>]  
+
["ababababababababababababb", "bbabababababababababababa"] ["bbabababababababababababab", "abababababababababababa"]  
[<quotes>ababababababababababababba</quotes>, <quotes>bbababababababababababab</quotes>]]
+
["ababababababababababababba", "bbababababababababababab"]]
 
-------------------------------
 
-------------------------------
 
</example>
 
</example>
 
</description>
 
</description>
 
<seealso>
 
<seealso>
<see>NCo.GIsGB</see>
+
<see>ApCoCoA-1:NCo.BIsGB|NCo.BIsGB</see>
<see>NCo.GReducedGB</see>
+
<see>ApCoCoA-1:NCo.BLW|NCo.BLW</see>
<see>NCo.GTruncatedGB</see>
+
<see>ApCoCoA-1:NCo.BReducedGB|NCo.BReducedGB</see>
<see>NCo.SetOrdering</see>
+
<see>ApCoCoA-1:NCo.BTruncatedGB|NCo.BTruncatedGB</see>
<see>NCo.SetX</see>
+
<see>ApCoCoA-1:NCo.SetOrdering|NCo.SetOrdering</see>
<see>Introduction to CoCoAServer</see>
+
<see>ApCoCoA-1:NCo.SetX|NCo.SetX</see>
 +
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see>
 
</seealso>
 
</seealso>
 
<types>
 
<types>
Line 79: Line 81:
 
<key>NCo.BGB</key>
 
<key>NCo.BGB</key>
 
<key>BGB</key>
 
<key>BGB</key>
<wiki-category>Package_gbmr</wiki-category>
+
<wiki-category>ApCoCoA-1:Package_gbmr</wiki-category>
 
</command>
 
</command>

Latest revision as of 13:37, 29 October 2020

This article is about a function from ApCoCoA-1.

NCo.BGB

Enumerate a (partial) Groebner basis of a finitely generated two-sided ideal in a free monoid ring over the binary field F_{2}={0,1} via the Buchberger procedure.

Syntax

NCo.BGB(G:LIST[, DB:INT, LB:INT, OFlag:INT]):LIST

Description

Given a word ordering Ordering, a set Gb of non-zero polynomials is called a Groebner basis with respect to Ordering if the leading word set BLW{Gb} generates the leading word ideal BLW(<Gb>). Note that a two-sided ideal can not have finite Groebner bases.

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 alphabet (or set of indeterminates) X and word ordering via the functions NCo.SetX and NCo.SetOrdering, respectively, before calling this function. 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 generating a two-sided ideal in the free monoid ring F_{2}<X>. Each polynomial is represented as a LIST of words (or terms) in <X>. Each word is represented as a STRING. For example, xy^2x is represented as "xyyx", and the identity is represented as the empty string "". Thus, the polynomial f=xy-y+1 is represented as F:=["xy", "y", ""]. The zero polynomial 0 is represented as the empty LIST [].

  • @return: a LIST of polynomials, which is a Groebner basis with respect to the current word ordering if there exists a finite Groebner basis and the enumerating procedure doesn't terminate due to reaching the degree bound DB or the loop bound LB, and is a partial Groebner basis otherwise.

About 3 optional parameters: for most cases we do not know whether or not there exists a finite Groebner basis beforehand. Thus, the function offers 3 optional parameters for the enumerating procedure. Note that at the moment all of the following 3 optional parameters must be used at the same time.

  • @param DB: a positive INT, which gives a degree bound of S-polynomials (or obstructions) during the enumerating procedure. When the degree bound is reached, the procedure will be interrupted and return a partial Groebner basis.

  • @param LB: a positive INT, which gives a loop bound of enumerating steps. When the LB-th enumerating step finishes, the procedure will be interrupted and return a partial Groebner basis.

  • @param OFlag: a non-negative INT, which is a multi-switch for the output of the ApCoCoAServer. If OFlag=0, the server displaces nothing on the screen. If OFlag=1, the server prints basic information on the enumerating procedure, such as the number of enumerating steps has been proceeded, the number of elements in partial Groebner basis, the number of unselected obstructions; the total number of obstructions, the number of selected obstructions, and the number of unnecessary obstructions. If OFlag=2, besides the information as OFlag=1, the server also displays explicitly the elements in partial Groebner basis and the current selected S-polynonial. Note that the initial idea of using OFlag is to trace and debug the enumerating procedure.

Example

NCo.SetX("ab");
NCo.SetOrdering("LLEX");
F1:=["aa", ""];
F2:=["bbb", ""];
F3:=["abababbabbabababbabb", ""];
G:=[F1,F2,F3];
NCo.BGB(G);

[["aa", ""], ["bbb", ""], ["abbabbabab", "bbabbababa"] ["abbabababb", "babbabbaba"] 
["ababbabbab", "bbabababba"] ["abababbabb", "bababbabba"] ["babbabbabab", "abbababa"] 
["ababbabbaba", "bbabababb"] ["bbabbabababb", "abbabbaba"] ["bbabababbabb", "ababbabba"] 
["ababbabbabab", "bbababa"] ["bababbabbabab", "ababa"] ["abababbababab", "babababbababa"] 
["ababababbabab", "bababbabababa"] ["abbababababbab", "babbababababba"] ["ababbababababb", "bbababababbaba"] 
["abababbabbabab", "baba"] ["ababababbababa", "bababbababab"] ["bbabababbababab", "abababbababa"] 
["bababbababababb", "ababababbaba"] ["ababbababababba", "bbababababbab"] ["abababbabbababa", "bab"] 
["bbabbababababbab", "abbababababba"] ["abababbababbabab", "bababbababbababa"] ["abababbabbabababb", "ba"] 
["bbabababbababbabab", "ababbababbababa"] ["babbabbabbabbabbab", "abbababababababba"] ["abbabbabbabbabbaba", "bbabbababababababb"] 
["abbababbababbababa", "bababbabababababab"] ["abbabababababababb", "babbabababababbaba"] ["ababbabababababbab", "bbabababababababba"] 
["abababbabbabababba", "b"] ["bbabbababbababbabab", "ababbababababababa"] ["bbabbababababababba", "abbabbabbabbabbab"] 
["bababbababbababbabb", "abababababababbaba"] ["bababbabababababbab", "abababababababba"] ["bababbababababababa", "abbababbababbabab"] 
["ababbababbababbabba", "bbabababababababbab"] ["ababbabababababbaba", "bbabababababababb"] ["bbabbabababababababb", "abbabababababbaba"] 
["bbabababababababbaba", "ababbababbababbabb"] ["bababbababbababbabba", "abababababababbab"] ["abababbabbabababbabb", ""] 
["abbababababababababbab", "babbababababababababba"] ["ababbababbabababababab", "bababbababbabababababa"] 
["ababbababababababababb", "bbababababababababbaba"] ["babbababbababbababbabab", "abbabababababababababa"] 
["bababbababbababbababbab", "ababababababababababba"] ["abbababababababababbaba", "babbababababababababb"] 
["ababbababbababbababbaba", "bbababababababababababb"] ["ababbababababababababab", "babbabababababababababa"] 
["ababababababababababbab", "babababababababababbaba"] ["bbabbababababababababbab", "abbababababababababba"] 
["bbabbabababababababababa", "abbababbababbababbabab"] ["bbababababababababababba", "ababbababbababbababbab"] 
["abbababababababababababb", "babbababbababbababbaba"] ["ababababababababababbaba", "babababababababababbab"] 
["abababababababababababab", "babababababababababababa"] ["abbababababababababababab", "babababababababababababba"] 
["ababababababababababababb", "bbabababababababababababa"] ["bbabababababababababababab", "abababababababababababa"] 
["ababababababababababababba", "bbababababababababababab"]]
-------------------------------

See also

NCo.BIsGB

NCo.BLW

NCo.BReducedGB

NCo.BTruncatedGB

NCo.SetOrdering

NCo.SetX

Introduction to CoCoAServer