Hey Samuel,
   I don't think there currently is a general implementation for tensor 
products of rings/algebras. Although you can hack together a small subclass 
of CombinatorialFreeModule:

class PolynomialAlgebra(CombinatorialFreeModule):
    def __init__(self, base_ring, names):
        CombinatorialFreeModule.__init__(self, base_ring, FreeAbelianMonoid(
index_set=names), category=Algebras(base_ring).WithBasis())
    def gens(self):
        return tuple([self.monomial(x) for x in self.indices().gens()])
    def one_basis(self):
        return self.monomial(self.indices().one())
    def product_on_basis(self, x, y):
        return self.monomial(x * y)

Sample usage:

sage: P = PolynomialAlgebra(QQ, ('x','y'))
sage: x,y = P.gens()
sage: x^3
B[F['x']^3]
sage: x^3 + 2*x*y
B[F['x']^3] + 2*B[F['x']*F['y']]
sage: tensor([P, P])
Free module generated by Free abelian monoid indexed by {'x', 'y'} over 
Rational Field # Free module generated by Free abelian monoid indexed by 
{'x', 'y'} over Rational Field
sage: _.an_element()
2*B[1] # B[1] + 2*B[1] # B[F['x']] + 3*B[1] # B[F['y']]

However, it won't do "fancy" things like division.

Best,
Travis

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to