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, 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.
  
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 or 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 09:37, 23 July 2010

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.


Generally, 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.