Ask Your Question

Revision history [back]

Perhaps FreeAlgebraQuotient will be useful? Here's the first part of the docstring:

sage: FreeAlgebraQuotient?
Type:           type
Base Class:     <type 'type'>
String Form:    <class 'sage.algebras.free_algebra_quotient.FreeAlgebraQuotient'>
Namespace:      Interactive
File:           /Applications/sage/local/lib/python2.6/site-packages/sage/algebras/
Definition:     FreeAlgebraQuotient(self, x)

   Returns a quotient algebra defined via the action of a free algebra
   A on a (finitely generated) free module. The input for the quotient
   algebra is a list of monomials (in the underlying monoid for A)
   which form a free basis for the module of A, and a list of
   matrices, which give the action of the free generators of A on this
   monomial basis.


   Quaternion algebra defined in terms of three generators:

      sage: n = 3
      sage: A = FreeAlgebra(QQ,n,'i')
      sage: F = A.monoid()
      sage: i, j, k = F.gens()
      sage: mons = [ F(1), i, j, k ]
      sage: M = MatrixSpace(QQ,4)
      sage: mats = [M([0,1,0,0, -1,0,0,0, 0,0,0,-1, 0,0,1,0]),  M([0,0,1,0, 0,0,0,1, -1,0,0,0, 0,-1,0,0]),  M([0,0,0,1, 0,0,-1,0, 0,1,0,0, -1,0,0,0]) ]
      sage: H3.<i,j,k> = FreeAlgebraQuotient(A,mons,mats)
      sage: x = 1 + i + j + k
      sage: x
      1 + i + j + k
      sage: x**128
      -170141183460469231731687303715884105728 + 170141183460469231731687303715884105728*i + 170141183460469231731687303715884105728*j + 170141183460469231731687303715884105728*k