Opened 14 years ago
Closed 14 years ago
#283 closed bug (fixed)
lpMult creates monomials that are not letterplace monomials
Reported by: | Simon King | Owned by: | levandov |
---|---|---|---|
Priority: | major | Milestone: | 3-1-2 and higher |
Component: | singular-lib-doc | Version: | 3-1-1 |
Keywords: | lpMult, letterplace, distributivity | Cc: | levandov@… |
Description
I try to work in a free associative algebra using letterplace. Unfortunately, the law of distributivity does not hold when the letterplace algebra is equipped with the multiplication lpMult
:
> LIB "freegb.lib"; > ring r=0,(a,b),dp; > def R = makeLetterplaceRing(5); > setring R; > poly p = a(1); > poly q = b(1); > poly p2 = lpPower(p,2); > lpMult(p2+q,q)-lpMult(p2,q)-lpMult(q,q); -b(1)*b(2)+b(1)*b(3)
Aparently, in the free associative algebra, one would expect that the result is zero.
If I understand the manual chapter 7.6.3, in order to have the free associative algebra, we need to thoroughly work with letterplace monomials, i.e., a monomial with places 1,2,3,...,m. But lpMult(p2+q,q) contains a monomial b(1)*b(3)
that is not a letterplace monomial. Is that a bug?
Change History (5)
comment:1 follow-up: 2 Changed 14 years ago by
comment:2 Changed 14 years ago by
Replying to SimonKing:
Is it perhaps assumed that we thoroughly work with homogeneous data? In the homogeneous case, the implementation of
lpMult
seems ok to me. But the documentation does not mention the need of homogeneous data, although the examples oflpMult
,lpPower
andfreeGBasis
all happen to be homogeneous.
Viktor Levandovskyy wrote me an e-mail, stating that my guess was correct: It is indeed assumed that all input is homogeneous.
So, one should add a check for homogeneity, and it should also be mentioned in the documentation (this is currently not the case - at least not in the documentation of freeGBasis
, lpMult
or freegb.lib
).
comment:3 Changed 14 years ago by
Component: | dontKnow → singular-lib-doc |
---|---|
Owner: | changed from somebody to levandov |
comment:4 Changed 14 years ago by
Hi, now it has been fixed by me. The problem was that we implicitly had the homogeneity assumptions; now it works fine for any input.
Besides, I have implemented a new procedure letplaceGBasis, which is user friendlier than both system("freegb",_) call and freeGBasis (which uses alternative presentation possibilities).
comment:5 Changed 14 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
Is it perhaps assumed that we thoroughly work with homogeneous data? In the homogeneous case, the implementation of
lpMult
seems ok to me. But the documentation does not mention the need of homogeneous data, although the examples oflpMult
,lpPower
andfreeGBasis
all happen to be homogeneous.