naalgc.spad line 224 [edit on github]
A FiniteRankNonAssociativeAlgebra is a non associative algebra over a commutative ring R
which is a free R
-module of finite rank.
alternative?()
tests if 2*associator(a, a, b) = 0 = 2*associator(a, b, b)
for all a
, b
in the algebra. Note: we only can test this; in general we don't
know whether 2*a=0
implies a=0
.
antiAssociative?()
tests if multiplication in algebra is anti-associative, i.e. (a*b)*c + a*(b*c) = 0
for all a
, b
, c
in the algebra.
antiCommutative?()
tests if a*a = 0
for all a
in the algebra. Note: this implies a*b + b*a = 0
for all a
and b
.
associative?()
tests if multiplication in algebra is associative.
associatorDependence()
looks for the associator identities, i.e. finds a basis of the solutions of the linear combinations of the six permutations of associator(a, b, c)
which yield 0, for all a
, b
, c
in the algebra. The order of the permutations is 123 231 312 132 321 213
.
commutative?()
tests if multiplication in the algebra is commutative.
conditionsForIdempotents([v1, ..., vn])
determines a complete list of polynomial equations for the coefficients of idempotents with respect to the R
-module basis v1
, ..., vn
.
coordinates([a1, ..., am], [v1, ..., vn])
returns a matrix whose i
-th row is formed by the coordinates of
with respect to the ai
R
-module basis v1
, ..., vn
.
coordinates(a, [v1, ..., vn])
returns the coordinates of a
with respect to the R
-module basis v1
, ..., vn
.
flexible?()
tests if 2*associator(a, b, a) = 0
for all a
, b
in the algebra. Note: we only can test this; in general we don't
know whether 2*a=0
implies a=0
.
jacobiIdentity?()
tests if (a*b)*c + (b*c)*a + (c*a)*b = 0
for all a
, b
, c
in the algebra. For example, this holds for crossed products of 3-dimensional vectors.
jordanAdmissible?()
tests if 2 is invertible in the coefficient domain and the multiplication defined by (1/2)(a*b+b*a)
determines a Jordan algebra, i.e. satisfies the Jordan identity. The property of CommutativeStar follows from by definition.
jordanAlgebra?()
tests if the algebra is commutative, characteristic is not 2, and (a*b)*a^2 - a*(b*a^2) = 0
for all a
, b
, c
in the algebra (Jordan identity). Example: for every associative algebra (A, +, @)
we can construct a Jordan algebra (A, +, *)
, where a*b := (a@b+b@a)/2
.
leftAlternative?()
tests if 2*associator(a, a, b) = 0
for all a
, b
in the algebra. Note: we only can test this; in general we don't
know whether 2*a=0
implies a=0
.
leftCharacteristicPolynomial(a)
returns the characteristic polynomial of the left regular representation of a
with respect to any basis.
leftDiscriminant([v1, ..., vn])
returns the determinant of the n
-by-n
matrix whose element at the i
-
th row and j
-
th column is given by the left trace of the product vi*vj
. Note: the same as determinant(leftTraceMatrix([v1, ..., vn]))
.
leftMinimalPolynomial(a)
returns the polynomial determined by the smallest non-trivial linear combination of left powers of a
. Note: the polynomial never has a constant term as in general the algebra has no unit.
leftNorm(a)
returns the determinant of the left regular representation of a
.
leftRecip(a)
returns an element, which is a left inverse of a
, or "failed"
if there is no unit element, if such an element doesn't
exist or cannot be determined (see unitsKnown).
leftRegularRepresentation(a, [v1, ..., vn])
returns the matrix m
of the linear map defined by left multiplication by a
with respect to the R
-module basis b = [v1, ..., vn]
. That is for all x
coordinates(a*x, b) = m*coordinates(x, b)
.
leftTrace(a)
returns the trace of the left regular representation of a
.
leftTraceMatrix([v1, ..., vn])
is the n
-by-n
matrix whose element at the i
-
th row and j
-
th column is given by the left trace of the product vi*vj
.
leftUnit()
returns a left unit of the algebra (not necessarily unique), or "failed"
if there is none.
leftUnits()
returns the affine space of all left units of the algebra, or "failed"
if there is none.
lieAdmissible?()
tests if the algebra defined by the commutators is a Lie algebra, i.e. satisfies the Jacobi identity. The property of anticommutativity follows from definition.
lieAlgebra?()
tests if the algebra is anticommutative and (a*b)*c + (b*c)*a + (c*a)*b = 0
for all a
, b
, c
in the algebra (Jacobi identity). Example: for every associative algebra (A, +, @)
we can construct a Lie algebra (A, +, *)
, where a*b := a@b-b@a
.
noncommutativeJordanAlgebra?()
tests if the algebra is flexible and Jordan admissible.
powerAssociative?()
tests if all subalgebras generated by a single element are associative.
rank()
returns the rank of the algebra as R
-module.
recip(a)
returns an element, which is both a left and a right inverse of a
, or "failed"
if there is no unit element, if such an element doesn't
exist or cannot be determined (see unitsKnown).
represents([a1, ..., am], [v1, ..., vm])
returns the linear combination a1*vm + ... + an*vm
.
rightAlternative?()
tests if 2*associator(a, b, b) = 0
for all a
, b
in the algebra. Note: we only can test this; in general we don't
know whether 2*a=0
implies a=0
.
rightCharacteristicPolynomial(a)
returns the characteristic polynomial of the right regular representation of a
with respect to any basis.
rightDiscriminant([v1, ..., vn])
returns the determinant of the n
-by-n
matrix whose element at the i
-
th row and j
-
th column is given by the right trace of the product vi*vj
. Note: the same as determinant(rightTraceMatrix([v1, ..., vn]))
.
rightMinimalPolynomial(a)
returns the polynomial determined by the smallest non-trivial linear combination of right powers of a
. Note: the polynomial never has a constant term as in general the algebra has no unit.
rightNorm(a)
returns the determinant of the right regular representation of a
.
rightRecip(a)
returns an element, which is a right inverse of a
, or "failed"
if there is no unit element, if such an element doesn't
exist or cannot be determined (see unitsKnown).
rightRegularRepresentation(a, [v1, ..., vn])
returns the matrix m
of the linear map defined by right multiplication by a
with respect to the R
-module basis b = [v1, ..., vn]
. That is for all x
coordinates(x*a, b) = m*coordinates(x, b)
.
rightTrace(a)
returns the trace of the right regular representation of a
.
rightTraceMatrix([v1, ..., vn])
is the n
-by-n
matrix whose element at the i
-
th row and j
-
th column is given by the right trace of the product vi*vj
.
rightUnit()
returns a right unit of the algebra (not necessarily unique), or "failed"
if there is none.
rightUnits()
returns the affine space of all right units of the algebra, or "failed"
if there is none.
someBasis()
returns some R
-module basis.
structuralConstants([v1, v2, ..., vm])
calculates the structural constants [(gammaijk) for k in 1..m]
defined by
, where vi
* vj = gammaij1 * v1 + ... + gammaijm * vm[v1, ..., vm]
is an R
-module basis of a subalgebra.
unit()
returns a unit of the algebra (necessarily unique), or "failed"
if there is none.
BiModule(R, R)
RightModule(R)
LeftModule(R)
Module(R)