A, mons, mats, [names=None]) |
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 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); B = A.gens() 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 = FreeAlgebraQuotient(A,mons,mats) sage: H3.assign_names(["i","j","k"]) sage: i, j, k = H3.gens() 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); B = A.gens() 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 = FreeAlgebraQuotient(A,mons,mats) sage: i, j = H2.gens(); k = i*j sage: H2.assign_names(["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
assign_names,
base_ring,
dimension,
free_algebra,
gen,
module,
monoid,
monomial_basis,
names,
ngens,
rank
Further documentation:
names) |
Assign the printing names for the generators; this will have the unfortunate effect of overwriting the names for the covering algebra; this also does not overwrite the return value of names() for the Algebra.
) |
The rank of the algebra (as a free module).
) |
The free algebra generating the algebra.
i) |
The i-th generator of the algebra.
) |
The free module of the algebra.
) |
The free monoid of generators of the algebra.
) |
The free monoid of generators of the algebra as elements of a free monoid.
) |
I override this in order to return to names of the underlying monoid.
) |
The number of generators of the algebra.
) |
The rank of the algebra (as a free module).
Instances of class FreeAlgebraQuotient also have the following special methods:
__call__,
__contains__,
__repr__