Hi Rajeev,

On 25 Mai, 06:14, Rajeev Singh <[email protected]> wrote:
> sage: R.<a,b> = FreeAlgebra(QQ, 2)
>
> > sage: p = a*(a+2*b)
> > sage: list(p)
> > [(2, a*b), (1, a^2)]
>
> is there a simple way to reverse this last step?

I thought that for many parents R holds that R(list(p))==p, but
apparently I was mistaken.

However, for example, in the case of polynomials, one has
  sage: P.<x,y> = QQ[]
  sage: p = P.random_element()
  sage: p
  x*y + 5*y^2 - x + 1
  sage: p.dict()
  {(1, 0): -1, (0, 0): 1, (1, 1): 1, (0, 2): 5}
  sage: P(p.dict()) == p
  True

But apparently that does not hold for free algebras. Here is a work-
around using the 'add' function:
  sage: R.<a,b> = FreeAlgebra(QQ, 2)
  sage: p = a*(a+2*b)
  sage: L = list(p)
  sage: add([c*R(m) for c,m in L], R(0))
  a^2 + 2*a*b

Cheers,
Simon

-- 
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org

Reply via email to