Difference between revisions of "Category:ApCoCoA-1:Package gbmr"

From ApCoCoAWiki
Line 1: Line 1:
Package gbmr is designed to enable us to do basic operations (for instance addition, subtraction, multiplication, normal remainder, leading term, etc.) over Non-Commutative algebra, i.e. finitely presented monoid rings, compute (partial) Groebner bases of finitely generated (one-sided/two-sided) ideals, and experiment on applications of Groebner bases.
+
Package gbmr is designed to enable us to do basic operations, for instance addition, subtraction and multiplication of two polynomials, computing normal remainder, leading term and leading coefficient, (partial) Groebner basis computation, and so on, over Non-Commutative algebra, i.e. finitely presented monoid rings, group rings, and free associative algbra. As a consequence, the package can also be applied to many algebraic applications.
  
 
+
Generally speaking, a finitely presented monoid ring is defined by <tt>P=K<X|R>=K<X>/<R></tt>, where <tt>K</tt> is a field, <tt>X</tt> is a finite alphabet (a finite set of letters), and <tt>R</tt> is a finite set of relations. If <tt>R</tt> is empty, then <tt>P</tt> becomes a free associative <tt>K</tt>-algebra.
Generally, a finitely presented monoid ring is defined by <tt>P=K<X|R>=K<X>/<R></tt>, where <tt>K</tt> is a field, <tt>X</tt> is a finite alphabet (a finite set of letters), and <tt>R</tt> is a finite set of relations. If <tt>R</tt> is empty, then <tt>P</tt> becomes a free associative <tt>K</tt>-algebra.
 
  
  

Revision as of 10:07, 11 December 2010

Package gbmr is designed to enable us to do basic operations, for instance addition, subtraction and multiplication of two polynomials, computing normal remainder, leading term and leading coefficient, (partial) Groebner basis computation, and so on, over Non-Commutative algebra, i.e. finitely presented monoid rings, group rings, and free associative algbra. As a consequence, the package can also be applied to many algebraic applications.

Generally speaking, a finitely presented monoid ring is defined by P=K<X|R>=K<X>/<R>, where K is a field, X is a finite alphabet (a finite set of letters), and R is a finite set of relations. If R is empty, then P becomes a free associative K-algebra.


Things to know about this package.

(a) Predefined alias for this package is

             Alias NC := $apcocoa/gbmr;


(b) K is field of rational number Q by default. It can be set to a finite field Fp through the functions

             NC.SetFp(); and NC.SetFp(Prime);

where Primeis a prime number. The prevouse one sets finite field to F_{2}=Z/(2) and the later to F_{Prime}=Z/(Prime). And K can be reset to field of rational number through the function

             NC.UnsetFp();


(c) X (or Alphabet) is represented as a STRING of letters. Every letter in X should have a unique occurrence. The order of letters in X is important since it induces an admissible ordering specified by Ordering. X can be set through the function

             NC.SetX(X);

where X is a STRING of letters. And X can be reset to empty through the function

             NC.UnsetX();

However I fail to find a proper situation to use it currently.


(d) Ordering is a STRING indicating which ordering we are working with. In the package we use admissible orderings. Currently, the package only supports length-lexicographic ordering ("LLEX") and elimination ordering ("ELIM") induced from the order of letters in X. The default ordering is "LLEX".

For example, X:="abc"; Ordering:="ELIM"; means elimination ordering induced from a>b>c.

Ordering can be set through the function

             NC.SetOrdering(Ordering);

where Ordering is the ordering supported by the package. And Ordering can be reset to "LLEX" through the function

             NC.UnsetOrdering();


(e) Relations, which is a finite generating set, is represented as a LIST of relations. Each relation of Relations is represented as a LIST (pair) composting of two words in X*.

      (e0) Each word (term) in X* is represented as a STRING with all letters coming from X.

      For example, X := "abc"; W := "ba"; means W=ba.

      Note that unit in X* is empty word represented as an empty STRING "".

For example, X := "abc"; Relations := [["ba","ab"], ["ca","ac"], ["cb","bc"]]; means Relations generated by {ba=ab, ca=ac, cb=bc}.

Relations can be set through the function

             NC.SetRelations(Relations);

where Relations is a properly represented Relations. And Relations can be reset to empty through the function

             NC.UnsetRelations();

which might be a tricky way to change a monoid ring to a free associative K-algebra.


(f) Rules, which is also a finite generating set, is represented as a LIST of (rewriting) rules. Each rule of Rules is represented as a LIST (pair) consisting of one word in X* and one polynomial in K<X> (or K<X|R>).

      (f0) Each polynomial in K<X> (or K<X|R>) is represented as a LIST of monomials, and each monomial is represented as a LIST (pair) consisting of one coefficient in K and one word (term) in X*.

      For example, X := "abc"; P := [[1,"ab"], [1,""]]; means P=ab+1.

      Note that 0 polynomial is represented as an empty LIST [].

For example, X := "ab"; Rules := [["ba", [[1,"ab"], [1,""]]]]; means Rules generated by {ba=ab+1}.

Rules can be set through the function

             NC.SetRules(Rules);

where Rules is a properly represented Rules. And Rules can be reset to empty through the function

             NC.UnsetRules();


(g) There is a function to get general information about ring environment.

             NC.RingEnv();


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.