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.