Algebra

Basic functionality for ‘additively free ZZ-algebras’, i.e. non-associative ring structures on ZZ^n.

class zetalib.algebra.Algebra(table=None, rank=None, blocks=None, operators=None, matrix=None, bilinear=False, simple_basis=False, descr=None, matrix_basis=None, product=None)[source]

Bases: object

Additively free non-associative ZZ-algebras with optional operators.

change_basis(A, check=True)[source]
derived_length()
derived_series()
find_good_basis(objects='subalgebras', name='x')[source]

Find a basis yielding a ‘good’ toric datum.

Presently we only look at permutations of the given basis (preserving the block structure, if any).

ideal(vecs, ring=Rational Field)[source]
is_Lie()
is_anticommutative()
is_associative()
is_commutative()
is_nilpotent()
is_soluble()
lower_central_series()
multiply(v, w, ring=Rational Field)[source]
nilpotency_class()
right_multiplication(w, ring=Rational Field)[source]
toric_datum(objects='subalgebras', name='x')[source]

Construct a toric datum associated with the enumeration of subobjects.

We can enumerate subalgebras as well as left/right/2-sided ideals.

zetalib.algebra.tensor_with_3duals(L)[source]
zetalib.algebra.tensor_with_duals(L)[source]