Hi Simon,
sorry, I haven't seen your inquiry before
SimonKing wrote:
I am trying to understand what one can do with freeGBasis. I thought that having the two-sided Groebner basis up to degree d of an ideal in a free associative algebra, one should be able to compute normal forms for elements of degree up to d. But how? This does not seem to be explained in the manual.
Can one use some form of the NF command? Or how can this be done?
No, at the moment (3-1-2 release) there's no normal form command. Of course it is implemented internally, but we are still working on make it accessible from the interface level. If you (or any other person) desperately need normal form, please contact me directly, there is a temporary solution.
SimonKing wrote:
Another question on Letterplace. Letterplace seems to provide three ways of representing elements of an associative algebra:
1. Something like b(1)*b(2)+c(1) in the ring that is returned by makeLetterplaceRing.
Right, and this one is natively supported in the kernel. All others will just
be transformed to this one.
SimonKing wrote:
2. A representation by lists of modules, like
Code:
[1]:
_[1]=b*gen(3)+b*gen(2)+gen(1)
_[2]=c*gen(2)+gen(1)
This one has been cooked to provide people with fast access to Letterplace abilities. Indeed, the idea is as follows: you write your monomial in a free monoid <b,c> (taking over your example), the coefficient by the monomial goes to the first position, so
Code:
module M = [1,b,b],[-4,c];
produces the presentation of a polynomial b^2 - 4*c in K<b,c> (here I changed the coefficient by the second polynomial to -4 to illustrate the difference). Correspondingly, the list of polynomials gots repsesented (as a data type list) by a list of modules, where a module describes one polynomial in K<b,c>.
SimonKing wrote:
3. A string representation, likee b*b+c.
This one should be done in a better environment than Singular library interface,
although (see below) we do have a converter.
SimonKing wrote:
One can come from the first to the second representation via lp2lstr and from the second to the third via lst2str.
But is there a function that transforms the second representation into the first?
yes. There is a static procedure called
str2lplace ("string (i.e. monomial times coefficient in free algebra) to letterplace") in the library "freegb.lib" which can do this. Open the library with your library and remove the prefix "static" before the procedure's header. The function has example, demonstrating how it works.
However, this procedure needs testing and might be confused in some situations. I'd like to have feedback on the performance.
With best regards,
Viktor