Post a reply
Username:
Note:If not registered, provide any username. For more comfort, register here.
Subject:
Message body:
Enter your message here, it may contain no more than 60000 characters. 

Smilies
:D :) :( :o :shock: :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:
Font size:
Font colour
Options:
BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON
Disable BBCode
Disable smilies
Do not automatically parse URLs
Confirmation of post
To prevent automated posts the board requires you to enter a confirmation code. The code is displayed in the image you should see below. If you are visually impaired or cannot otherwise read this code please contact the %sBoard Administrator%s.
Confirmation code:
Enter the code exactly as it appears. All letters are case insensitive, there is no zero.
   

Topic review - How to work with Letterplace/freegb?
Author Message
  Post subject:  Re: How to work with Letterplace/freegb?  Reply with quote
SimonKing wrote:
I'd like to add two more questions. Both concern the documentation of 'freeGBasis':

1. It is stated that the return value is a ring. Is that really true? The example suggests that it is a list.


You are right, the answer is a list. Thanks for the hint, the documentation will be corrected soon.

SimonKing wrote:
2. The example ends with
Code:
def U = freeGBasis(L,5); // 5 is the degree bound
lst2str(U);
==> [1]:
==>    yyyyy
==> [2]:
==>    22803yyyx+19307yyyy
==> [3]:
==>    1933yyxy+2751yyyx+161yyyy
==> [4]:
==>    22xyy-3yxy-21yyx+7yyy
==> [5]:
==>    3xyx-22xyy+21yyx-7yyy
==> [6]:
==>    3xx-xy-7yy

So, apparently the Gröbner basis is not reduced. I think this should be mentioned in the documentation. Would "interred" work here (probably not)? Is there another way to get a reduced basis?


By activating usual options
Code:
option(redSB); option(redTail);

you will get reduced output, as in the example:
Code:
lst2str(U);
[1]:
   yyyyy
[2]:
   22803yyyx+19307yyyy
[3]:
   7601yyxy-8526yyyy
[4]:
   22xyy-3yxy-21yyx+7yyy
[5]:
   xyx-yxy
[6]:
   3xx-xy-7yy


Letterplace is developed in accordance with usual Singular practices. If you find any difference to usual Singular's practice, please let us know.

SimonKing wrote:
And of course, as I previously said, it would be nice to show a Gröbner basis "in action", i.e., computing normal forms etc.


Yes, and this is doable right now. We hope to provide the corresponding function in the release until Christmas Eve 2009.

With best regards,
Viktor and Letterplace Team
Post Posted: Tue Nov 16, 2010 6:16 pm
  Post subject:  Re: How to work with Letterplace/freegb?  Reply with quote
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
Post Posted: Tue Nov 16, 2010 6:05 pm
  Post subject:  Re: How to work with Letterplace/freegb?  Reply with quote
I'd like to add two more questions. Both concern the documentation of 'freeGBasis':

1. It is stated that the return value is a ring. Is that really true? The example suggests that it is a list.

2. The example ends with
Code:
def U = freeGBasis(L,5); // 5 is the degree bound
lst2str(U);
==> [1]:
==>    yyyyy
==> [2]:
==>    22803yyyx+19307yyyy
==> [3]:
==>    1933yyxy+2751yyyx+161yyyy
==> [4]:
==>    22xyy-3yxy-21yyx+7yyy
==> [5]:
==>    3xyx-22xyy+21yyx-7yyy
==> [6]:
==>    3xx-xy-7yy

So, apparently the Gröbner basis is not reduced. I think this should be mentioned in the documentation. Would "interred" work here (probably not)? Is there another way to get a reduced basis?

And of course, as I previously said, it would be nice to show a Gröbner basis "in action", i.e., computing normal forms etc.
Post Posted: Sat Oct 02, 2010 1:08 pm
  Post subject:  How to work with Letterplace/freegb?  Reply with quote
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?

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.

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)


3. A string representation, likee b*b+c.

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?

Best regards,
Simon
Post Posted: Sat Oct 02, 2010 1:00 am


It is currently Fri May 13, 2022 11:08 am
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group