ApCoCoA-1:NCo.FindPolynomials

From ApCoCoAWiki
Revision as of 10:19, 7 October 2020 by AndraschkoBot (talk | contribs) (insert version info)
This article is about a function from ApCoCoA-1.

NCo.FindPolynomials

Find polynomials with specified alphabet (set of indeterminates) from a LIST of non-commutative polynomials.

Syntax

NCo.FindPolynomials(Alphabet:STRING, Polys:LIST):LIST

Description

  • @param Alphabet: a STRING, which is the specified alphabet.

  • @param Polys: a LIST of non-commutative polynomials. Note that each polynomial is represented as a LIST of monomials, which are LISTs of the form [C, W] where W is a word in <X> and C is the coefficient of W. Each word in <X> is represented as a STRING. For example, the word xy^2x is represented as "xyyx", and the identity is represented as the empty string "". Thus, the polynomial f=xy-y+1 in K<x,y> is represented as F:=[[1,"xy"], [-1, "y"], [1,""]]. The zero polynomial 0 is represented as the empty LIST [].

  • @return: a LIST of polynomials whose indeterminates are in Alphabet.

Example

Polys:=[[[1,<quotes>a</quotes>], [1,<quotes>b</quotes>], [1,<quotes>c</quotes>]], [[1,<quotes>b</quotes>]]];
NCo.FindPolynomials(<quotes>abc</quotes>, Polys);

[[[1, <quotes>a</quotes>], [1, <quotes>b</quotes>], [1, <quotes>c</quotes>]], [[1, <quotes>b</quotes>]]]
-------------------------------
NCo.FindPolynomials(<quotes>a</quotes>, Polys);

[ ]
-------------------------------
NCo.FindPolynomials(<quotes>b</quotes>, Polys);

[[[1, <quotes>b</quotes>]]]
-------------------------------
NCo.FindPolynomials(<quotes>ab</quotes>, Polys);

[[[1, <quotes>b</quotes>]]]
-------------------------------
NCo.SetX(<quotes>txyz</quotes>); 
NCo.SetOrdering(<quotes>ELIM</quotes>); -- ELIM will eliminate t, x, y, z one after another
F1 := [[1,<quotes>xx</quotes>], [-1,<quotes>yx</quotes>]];
F2 := [[1,<quotes>xy</quotes>], [-1,<quotes>ty</quotes>]];
F3 := [[1,<quotes>xt</quotes>], [-1, <quotes>tx</quotes>]];
F4 := [[1,<quotes>yt</quotes>], [-1, <quotes>ty</quotes>]];
G := [F1, F2,F3,F4]; 
Gb := NCo.GB(G); -- compute Groebner basis of &lt;G&gt; w.r.t. ELIM
Gb;
NCo.FindPolynomials(<quotes>xyz</quotes>,Gb); -- compute Groebner basis of the intersection of &lt;G&gt; and K&lt;x,y,z&gt; w.r.t. ELIM

[[[1, <quotes>xx</quotes>], [-1, <quotes>yx</quotes>]], [[1, <quotes>ty</quotes>], [-1, <quotes>xy</quotes>]], [[1, <quotes>yt</quotes>], [-1, <quotes>xy</quotes>]], [[1, <quotes>tx</quotes>], [-1, <quotes>xt</quotes>]], 
[[1, <quotes>xyx</quotes>], [-1, <quotes>yyx</quotes>]], [[1, <quotes>xyy</quotes>], [-1, <quotes>yxy</quotes>]], [[1, <quotes>yxt</quotes>], [-1, <quotes>yyx</quotes>]]]
-------------------------------
[[[1, <quotes>xx</quotes>], [-1, <quotes>yx</quotes>]], [[1, <quotes>xyx</quotes>], [-1, <quotes>yyx</quotes>]], [[1, <quotes>xyy</quotes>], [-1, <quotes>yxy</quotes>]]]
-------------------------------