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

Line 15: | Line 15: | ||

− | (b) The alphabet <tt>X</tt> is represented as a STRING of letters. Every letter in <tt>X</tt> should have a unique occurrence. The order of letters in <tt>X</tt> is important since it induces an admissible ordering specified by Ordering. The alphabet <tt>X</tt> is set through the function | + | (b) By default, the field <tt>K</tt> is rational number. It can be set to a finite field <tt>Fp</tt> through the functions |

+ | |||

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

+ | |||

+ | where <tt>Prime</tt> is a prime number. The prevouse one sets finite field to <tt>F2=Z/(2)</tt> and the latter to <tt>F_{Prime}=Z/(Prime)</tt>. One can reset <tt>K</tt> to rational number via the function | ||

+ | |||

+ | NC.UnsetFp(); | ||

+ | |||

+ | |||

+ | (c) The alphabet <tt>X</tt> is represented as a STRING of letters. Every letter in <tt>X</tt> should have a unique occurrence. The order of letters in <tt>X</tt> is important since it induces an admissible ordering specified by Ordering. The alphabet <tt>X</tt> is set through the function | ||

NC.SetX(X); | NC.SetX(X); | ||

Line 21: | Line 30: | ||

where <tt>X</tt> is a STRING of letters. | where <tt>X</tt> is a STRING of letters. | ||

− | ( | + | (c.1) Each word (term) in the free monoid <tt><X></tt> is represented as a STRING with all letters coming from <tt>X</tt>. |

For example, X := "abc"; W := "ba"; means a word <tt>W=ba</tt>. | For example, X := "abc"; W := "ba"; means a word <tt>W=ba</tt>. | ||

Line 27: | Line 36: | ||

Note that the identity element in <tt><X></tt> is the empty word which is represented as an empty STRING "". | Note that the identity element in <tt><X></tt> is the empty word which is represented as an empty STRING "". | ||

+ | (c.2) Each polynomial in <tt>K<X></tt> (or <tt>K<X|R></tt>) is represented as a LIST of monomials, and each monomial is represented as a LIST consisting of an element (coefficient) in <tt>K</tt> and a word (term) in <tt><X></tt>. | ||

− | + | For example, X := "abc"; P := [[1,"ab"],[1,"bb"],[1,""]]; means a polynomial<tt>P=ab+b^2+1</tt>. | |

− | |||

− | | ||

− | |||

− | |||

− | | + | Note that the zero polynomial is represented as an empty LIST []. Also note that, in the case that <tt>K=F2</tt>, every polynomial can be represented as a LIST of words (terms) in <tt><X></tt>. For example, polynomial <tt>P=ab+b^2+1</tt> in <tt>F_{2}<a,b></tt> is represented as P := ["ab","bb",""]. We refer to the examples of functions in free group rings (functions with the prefix "G") for more details. |

Line 50: | Line 56: | ||

− | (e) A set <tt>Relations</tt> of relations is a finite set represented as a LIST. Each relation in <tt>Relations</tt> is represented as a LIST | + | (e) A set <tt>Relations</tt> of relations is a finite set represented as a LIST. Each relation in <tt>Relations</tt> is represented as a LIST composed of two words in <tt><X></tt>. |

For example, X := "abc"; Relations := [["ba","ab"], ["ca","ac"], ["cb","bc"]]; means <tt>Relations</tt> containing <tt>ba=ab</tt>, <tt>ca=ac</tt> and <tt>cb=bc</tt>. | For example, X := "abc"; Relations := [["ba","ab"], ["ca","ac"], ["cb","bc"]]; means <tt>Relations</tt> containing <tt>ba=ab</tt>, <tt>ca=ac</tt> and <tt>cb=bc</tt>. | ||

Line 62: | Line 68: | ||

NC.UnsetRelations(); | NC.UnsetRelations(); | ||

− | Note that using the | + | Note that using the functions UnsetRelations() is a tricky way to change a monoid ring to a free monoid ring. |

− | |||

− | |||

− | |||

− | |||

− | |||

− | |||

− | + | (f) A set <tt>Rules</tt> of rules is a finite set represented as a LIST. Each (rewriting) rule in <tt>Rules</tt> is represented as a LIST composed of a word in <tt><X></tt> and a polynomial in <tt>K<X></tt> (or <tt>K<X|R></tt>). | |

− | For example, X := "ab"; Rules := [["ba", [[1,"ab"], [1,""]]]]; means Rules | + | For example, X := "ab"; Rules := [["ba", [[1,"ab"], [1,""]]]]; means Rules containing <tt>ba=ab+1</tt>. |

− | + | A set of rules is set through the function | |

NC.SetRules(Rules); | NC.SetRules(Rules); | ||

− | where Rules is a properly represented | + | where <tt>Rules</tt> is a set of properly represented rules. One can set <tt>Rules</tt> to empty via the function |

NC.UnsetRules(); | NC.UnsetRules(); | ||

− | (g) There is a function | + | (g) There is a function for showing general information on ring environment. |

NC.RingEnv(); | NC.RingEnv(); | ||

− | |||

[[Category:ApCoCoA_Manual]] | [[Category:ApCoCoA_Manual]] |

## Revision as of 13:50, 6 June 2012

Package gbmr is designed to enable us to do basic computations, such as addition (via Add(F1,F2)), subtraction (via Subtract(F1,F2)) and multiplication (via Multiply(F1,F2)), leading term (via LT(F)), leading coefficient(via LC(F)), normal remainder (via NR(F,G)), (partial) Groebner basis(via GB(G)), reduced (partial) Groebner basis (via ReducedGB(G)) and so on, over non-commutative algebras, i.e. over finitely generated free monoid rings (or free associative `K`-algebras or non-commutative polynomial rings), finitely presented monoid rings, group ring, etc. Consequently, the package can be applied to many algebraic applications, for instance the computations of leading term ideal (via LTIdeal(G)), kernel of `K`-algebra homomorphism (via KernelOfHomomorphism(X1,X2,Images)), Hilbert function (via HF(Gb)), etc.

For each computation mentioned above, there are three different functions having the same functionality but under different settings. Let us take addition for an example. There are three functions, namely MRAdd(X,Ordering,Relations,F1,F2), Add(F1,F2) and GAdd(F1,F2), doing addition over monoid ring, free associative algebra and group ring, respectively. For details about how to use each of them, please check relevant functions.

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 indeterminates), and `R` is a finite set of relations. Particularly, `P` becomes a free associative `K`-algebra if `R` is empty.

Things to know about this package.

(a) Predefined alias for this package is as follows.

Alias NC := $apcocoa/gbmr;

(b) By default, the field `K` is rational number. It can be set to a finite field `Fp` through the functions

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

where `Prime` is a prime number. The prevouse one sets finite field to `F2=Z/(2)` and the latter to `F_{Prime}=Z/(Prime)`. One can reset `K` to rational number via the function

NC.UnsetFp();

(c) The alphabet `X` 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. The alphabet `X` is set through the function

NC.SetX(X);

where `X` is a STRING of letters.

(c.1) Each word (term) in the free monoid `<X>` is represented as a STRING with all letters coming from `X`.

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

Note that the identity element in `<X>` is the empty word which is represented as an empty STRING "".

(c.2) Each polynomial in `K<X>` (or `K<X|R>`) is represented as a LIST of monomials, and each monomial is represented as a LIST consisting of an element (coefficient) in `K` and a word (term) in `<X>`.

For example, X := "abc"; P := [[1,"ab"],[1,"bb"],[1,""]]; means a polynomial`P=ab+b^2+1`.

Note that the zero polynomial is represented as an empty LIST []. Also note that, in the case that `K=F2`, every polynomial can be represented as a LIST of words (terms) in `<X>`. For example, polynomial `P=ab+b^2+1` in `F_{2}<a,b>` is represented as P := ["ab","bb",""]. We refer to the examples of functions in free group rings (functions with the prefix "G") for more details.

(d) An ordering `Ordering` is a STRING indicating which admissible ordering we are working with. Currently, the package only supports length-lexicographic ordering ("LLEX"), elimination ordering ("ELIM") and degree reverse lexicographic ordering ("DEGREVLEX"), which are induced from the order of letters in `X`. Note that the default ordering is "LLEX".

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

The ordering `Ordering` is set through the function

NC.SetOrdering(Ordering);

where `Ordering` is one of the orderings supported by the package. One can reset `Ordering` to "LLEX" via the function

NC.UnsetOrdering();

(e) A set `Relations` of relations is a finite set represented as a LIST. Each relation in `Relations` is represented as a LIST composed of two words in `<X>`.

For example, X := "abc"; Relations := [["ba","ab"], ["ca","ac"], ["cb","bc"]]; means `Relations` containing `ba=ab`, `ca=ac` and `cb=bc`.

A set of relations is set through the function

NC.SetRelations(Relations);

where `Relations` is a set of properly represented relations. One can set `Relations` to empty via the function

NC.UnsetRelations();

Note that using the functions UnsetRelations() is a tricky way to change a monoid ring to a free monoid ring.

(f) A set `Rules` of rules is a finite set represented as a LIST. Each (rewriting) rule in `Rules` is represented as a LIST composed of a word in `<X>` and a polynomial in `K<X>` (or `K<X|R>`).

For example, X := "ab"; Rules := [["ba", [[1,"ab"], [1,""]]]]; means Rules containing `ba=ab+1`.

A set of rules is set through the function

NC.SetRules(Rules);

where `Rules` is a set of properly represented rules. One can set `Rules` to empty via the function

NC.UnsetRules();

(g) There is a function for showing general information on ring environment.

NC.RingEnv();

## Pages in category "ApCoCoA-1:Package gbmr"

The following 59 pages are in this category, out of 59 total.

### N

- ApCoCoA-1:NCo.Add
- ApCoCoA-1:NCo.AdMatrix
- ApCoCoA-1:NCo.BAdd
- ApCoCoA-1:NCo.BDeg
- ApCoCoA-1:NCo.BGB
- ApCoCoA-1:NCo.BHF
- ApCoCoA-1:NCo.BInterreduction
- ApCoCoA-1:NCo.BIsGB
- ApCoCoA-1:NCo.BLC
- ApCoCoA-1:NCo.BLW
- ApCoCoA-1:NCo.BMB
- ApCoCoA-1:NCo.BMultiply
- ApCoCoA-1:NCo.BNR
- ApCoCoA-1:NCo.BReducedGB
- ApCoCoA-1:NCo.BSubtract
- ApCoCoA-1:NCo.BTruncatedGB
- ApCoCoA-1:NCo.Deg
- ApCoCoA-1:NCo.FindPolynomials
- ApCoCoA-1:NCo.GB
- ApCoCoA-1:NCo.HF
- ApCoCoA-1:NCo.Interreduction
- ApCoCoA-1:NCo.Intersection
- ApCoCoA-1:NCo.IsFinite
- ApCoCoA-1:NCo.IsGB
- ApCoCoA-1:NCo.IsHomog
- ApCoCoA-1:NCo.KernelOfHomomorphism
- ApCoCoA-1:NCo.LC
- ApCoCoA-1:NCo.LW
- ApCoCoA-1:NCo.LWIdeal
- ApCoCoA-1:NCo.MB
- ApCoCoA-1:NCo.MRAdd
- ApCoCoA-1:NCo.MRDeg
- ApCoCoA-1:NCo.MRGB
- ApCoCoA-1:NCo.MRHF
- ApCoCoA-1:NCo.MRInterreduction
- ApCoCoA-1:NCo.MRIsGB
- ApCoCoA-1:NCo.MRLC
- ApCoCoA-1:NCo.MRLW
- ApCoCoA-1:NCo.MRMB
- ApCoCoA-1:NCo.MRMultiply
- ApCoCoA-1:NCo.MRNR
- ApCoCoA-1:NCo.MRReducedGB
- ApCoCoA-1:NCo.MRSubtract
- ApCoCoA-1:NCo.Multiply
- ApCoCoA-1:NCo.NR
- ApCoCoA-1:NCo.PrefixGB
- ApCoCoA-1:NCo.PrefixInterreduction
- ApCoCoA-1:NCo.PrefixNR
- ApCoCoA-1:NCo.PrefixReducedGB
- ApCoCoA-1:NCo.PrefixSaturation
- ApCoCoA-1:NCo.ReducedGB
- ApCoCoA-1:NCo.SetFp
- ApCoCoA-1:NCo.SetOrdering
- ApCoCoA-1:NCo.SetRelations
- ApCoCoA-1:NCo.SetX
- ApCoCoA-1:NCo.Subtract
- ApCoCoA-1:NCo.TruncatedGB
- ApCoCoA-1:NCo.UnsetFp
- ApCoCoA-1:NCo.UnsetRelations