30.3 Free algebra quotients

Module: sage.algebras.free_algebra_quotient

Free algebra quotients

TESTS:

sage: n = 2
sage: A = FreeAlgebra(QQ,n,'x')
sage: F = A.monoid()
sage: i, j = F.gens()
sage: mons = [ F(1), i, j, i*j ]
sage: r = len(mons)
sage: M = MatrixSpace(QQ,r)
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]) ]
sage: H2.<i,j> = A.quotient(mons,mats)
sage: H2 == loads(dumps(H2))
True
sage: i == loads(dumps(i))
True

Class: FreeAlgebraQuotient

class FreeAlgebraQuotient
FreeAlgebraQuotient( self, A, mons, mats, names)

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

Same algebra defined in terms of two generators, with some penalty on already slow arithmetic.

sage: n = 2
sage: A = FreeAlgebra(QQ,n,'x')
sage: F = A.monoid()
sage: i, j = F.gens()
sage: mons = [ F(1), i, j, i*j ]
sage: r = len(mons)
sage: M = MatrixSpace(QQ,r)
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]) ]
sage: H2.<i,j> = A.quotient(mons,mats)
sage: k = i*j
sage: x = 1 + i + j + k
sage: x
1 + i + j + i*j
sage: x**128
-170141183460469231731687303715884105728 +
170141183460469231731687303715884105728*i +
170141183460469231731687303715884105728*j +
170141183460469231731687303715884105728*i*j

Functions: dimension,$ \,$ free_algebra,$ \,$ gen,$ \,$ matrix_action,$ \,$ module,$ \,$ monoid,$ \,$ monomial_basis,$ \,$ ngens,$ \,$ rank

dimension( self)

The rank of the algebra (as a free module).

free_algebra( self)

The free algebra generating the algebra.

gen( self, i)

The i-th generator of the algebra.

module( self)

The free module of the algebra.

monoid( self)

The free monoid of generators of the algebra.

monomial_basis( self)

The free monoid of generators of the algebra as elements of a free monoid.

ngens( self)

The number of generators of the algebra.

rank( self)

The rank of the algebra (as a free module).

Special Functions: __call__,$ \,$ __contains__,$ \,$ __eq__,$ \,$ __init__,$ \,$ _coerce_impl,$ \,$ _repr_

_coerce_impl( self, x)

Return the coercion of x into this free algebra quotient.

The algebras that coerce into this quotient ring canonically, are:

* this quotient algebra * anything that coerces into the algebra of which this is the quotient

See About this document... for information on suggesting changes.