ApCoCoA-1:NC.KernelOfHomomorphism
NC.KernelOfHomomorphism
Computing (patial) Groebner basis of kernel of k-algebra homomorphism.
Syntax
NC.KernelOfHomomorphism(X_1:STRING, X_2:STRING, Images:LIST[, DegreeBound:INT, LoopBound:INT, IFlag: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.
@param X_1: an finite set of letters. It is of STRING type. Notice that every letter in X_1 MUST appear only once. The order of letters in X_1 is very important, since X_1 as well as Images are used to define a k-algebra homomorphism.
@param R_1: a finite set of relations and it is of LIST type. Each element in R_1 has form [w_{l}, w_{r}], where w_{l} and w_{r} are terms over M_1. Each term is represented as a STRING. For example, xy^2x is represented as "xyyx", identity element is represented as an empty STRING "", and relation (yx, xy) is represented as ["yx", "xy"].
@param X_2: another finite set of letters. Note that X_1 and X_2 are disjoint sets.
@param R_2: a finite set of relations over M_2.
@param Images: a LIST of polynomials. Each polynomial is represented as a LIST of LISTs, which are pairs of form [a_{i}, w_{i}]. For example, polynomial F:=xy-y+1 is represented as F:=[[1,"xy"], [-1, "y"], [1,""]]. Zero polynomial is represented as an empty LIST []. Note that the order of polynomials in Images is very important, since Images as well as X_1 are used to defined a k-algebra homomorphism. For example, X_1:="abc"; F1 := [[1,"x"], [1,"y"]]; F2 := [[1,"xx"],[1,"xy"]]; F3 := [[1,"yy"],[1,"yx"]]; Images := [F1, F2, F3]; these together define a k-algebra homomorphism by mapping a to F1, b to F2 and c to F3.
Please note all of the following 3 additional optional parameters must be used at the same time if used.
@param DegreeBound: (optional) a natural number (INT) giving a degree bound during Groebner basis computation. When a normal form of a S-polynomial reaches DegreeBound, the Buchberger procedure stops and returns a partial Groebner basis.
@param LoopBound: (optional) a natural number (INT) giving a bound for loop during Groebner basis computation. The main loop can only be carried out at most LoopBound times.
@param BFlag: (optional) a boolean parameter (BOOL). If BFlag is true, the ApCoCoAServer prints the tracing information in the screen. Otherwise not.
@return: a reduced Groebner basis of kernel of k-algebra homomorphism if (1)finite Groebner basis exists and (2)the computation isn't limited by DegreeBound and LoopBound. Otherwise, a partial Groebner basis.
Example
X_1 := <quotes>abc</quotes>; X_2 := <quotes>xy</quotes>; F1 := [[1,<quotes>x</quotes>], [1,<quotes>y</quotes>]]; F2 := [[1,<quotes>xx</quotes>],[1,<quotes>xy</quotes>]]; F3 := [[1,<quotes>yy</quotes>],[1,<quotes>yx</quotes>]]; Images :=[F1, F2, F3]; -- a |-> F1; b |-> F2; c |-> F3 NC.KernelOfHomomorphism(X_1, X_2, Images); [[[1, <quotes>ab</quotes>], [-1, <quotes>ba</quotes>], [1, <quotes>ac</quotes>], [-1, <quotes>ca</quotes>]], [[1, <quotes>aa</quotes>], [-1, <quotes>b</quotes>], [-1, <quotes>c</quotes>]]] -------------------------------
See also