Jordan Algebras¶
AUTHORS:
- Travis Scrimshaw (2014-04-02): initial version
-
class
sage.algebras.jordan_algebra.
JordanAlgebra
¶ Bases:
sage.structure.parent.Parent
,sage.structure.unique_representation.UniqueRepresentation
A Jordan algebra.
A Jordan algebra is a magmatic algebra (over a commutative ring
) whose multiplication satisfies the following axioms:
, and
(the Jordan identity).
These axioms imply that a Jordan algebra is power-associative and the following generalization of Jordan’s identity holds [Albert47]:
for all
.
Let
be an associative algebra over a ring
in which
is invertible. We construct a Jordan algebra
with ground set
by defining the multiplication as
Often the multiplication is written as
to avoid confusion with the product in the associative algebra
. We note that if
is commutative then this reduces to the usual multiplication in
.
Jordan algebras constructed in this fashion, or their subalgebras, are called special. All other Jordan algebras are called exceptional.
Jordan algebras can also be constructed from a module
over
with a symmetric bilinear form
. We begin with the module
and define multiplication in
by
where
and
.
INPUT:
Can be either an associative algebra
or a symmetric bilinear form given as a matrix (possibly followed by, or preceded by, a base ring argument)
EXAMPLES:
We let the base algebra
be the free algebra on 3 generators:
sage: F.<x,y,z> = FreeAlgebra(QQ) sage: J = JordanAlgebra(F); J Jordan algebra of Free Algebra on 3 generators (x, y, z) over Rational Field sage: a,b,c = map(J, F.gens()) sage: a*b 1/2*x*y + 1/2*y*x sage: b*a 1/2*x*y + 1/2*y*x
Jordan algebras are typically non-associative:
sage: (a*b)*c 1/4*x*y*z + 1/4*y*x*z + 1/4*z*x*y + 1/4*z*y*x sage: a*(b*c) 1/4*x*y*z + 1/4*x*z*y + 1/4*y*z*x + 1/4*z*y*x
We check the Jordan identity:
sage: (a*b)*(a*a) == a*(b*(a*a)) True sage: x = a + c sage: y = b - 2*a sage: (x*y)*(x*x) == x*(y*(x*x)) True
Next we constuct a Jordan algebra from a symmetric bilinear form:
sage: m = matrix([[-2,3],[3,4]]) sage: J.<a,b,c> = JordanAlgebra(m); J Jordan algebra over Integer Ring given by the symmetric bilinear form: [-2 3] [ 3 4] sage: a 1 + (0, 0) sage: b 0 + (1, 0) sage: x = 3*a - 2*b + c; x 3 + (-2, 1)
We again show that Jordan algebras are usually non-associative:
sage: (x*b)*b -6 + (7, 0) sage: x*(b*b) -6 + (4, -2)
We verify the Jordan identity:
sage: y = -a + 4*b - c sage: (x*y)*(x*x) == x*(y*(x*x)) True
The base ring, while normally inferred from the matrix, can also be explicitly specified:
sage: J.<a,b,c> = JordanAlgebra(m, QQ); J Jordan algebra over Rational Field given by the symmetric bilinear form: [-2 3] [ 3 4] sage: J.<a,b,c> = JordanAlgebra(QQ, m); J # either order work Jordan algebra over Rational Field given by the symmetric bilinear form: [-2 3] [ 3 4]
REFERENCES:
[Jacobson71] N. Jacobson. Exceptional Lie Algebras. Marcel Dekker, Inc. New York. 1971. IBSN No. 0-8247-1326-5. [Chu2012] Cho-Ho Chu. Jordan Structures in Geometry and Analysis. Cambridge University Press, New York. 2012. IBSN 978-1-107-01617-0. [McCrimmon78] K. McCrimmon. Jordan algebras and their applications. Bull. Amer. Math. Soc. 84 1978. [Albert47] A. A. Albert, A Structure Theory for Jordan Algebras. Annals of Mathematics, Second Series, Vol. 48, No. 3 (Jul., 1947), pp. 546–567.
-
class
sage.algebras.jordan_algebra.
JordanAlgebraSymmetricBilinear
(R, form, names=None)¶ Bases:
sage.algebras.jordan_algebra.JordanAlgebra
A Jordan algebra given by a symmetric bilinear form
.
-
class
Element
(parent, s, v)¶ Bases:
sage.structure.element.AlgebraElement
An element of a Jordan algebra defined by a symmetric bilinear form.
-
bar
()¶ Return the result of the bar involution of
self
.The bar involution
is the
-linear endomorphism of
defined by
and
for
.
EXAMPLES:
sage: m = matrix([[0,1],[1,1]]) sage: J.<a,b,c> = JordanAlgebra(m) sage: x = 4*a - b + 3*c sage: x.bar() 4 + (1, -3)
We check that it is an algebra morphism:
sage: y = 2*a + 2*b - c sage: x.bar() * y.bar() == (x*y).bar() True
-
norm
()¶ Return the norm of
self
.The norm of an element
is given by
.
EXAMPLES:
sage: m = matrix([[0,1],[1,1]]) sage: J.<a,b,c> = JordanAlgebra(m) sage: x = 4*a - b + 3*c; x 4 + (-1, 3) sage: x.norm() 13
-
trace
()¶ Return the trace of
self
.The trace of an element
is given by
.
EXAMPLES:
sage: m = matrix([[0,1],[1,1]]) sage: J.<a,b,c> = JordanAlgebra(m) sage: x = 4*a - b + 3*c sage: x.trace() 8
-
-
JordanAlgebraSymmetricBilinear.
algebra_generators
()¶ Return a basis of
self
.The basis returned begins with the unity of
and continues with the standard basis of
.
EXAMPLES:
sage: m = matrix([[0,1],[1,1]]) sage: J = JordanAlgebra(m) sage: J.basis() Family (1 + (0, 0), 0 + (1, 0), 0 + (0, 1))
-
JordanAlgebraSymmetricBilinear.
basis
()¶ Return a basis of
self
.The basis returned begins with the unity of
and continues with the standard basis of
.
EXAMPLES:
sage: m = matrix([[0,1],[1,1]]) sage: J = JordanAlgebra(m) sage: J.basis() Family (1 + (0, 0), 0 + (1, 0), 0 + (0, 1))
-
JordanAlgebraSymmetricBilinear.
gens
()¶ Return the generators of
self
.EXAMPLES:
sage: m = matrix([[0,1],[1,1]]) sage: J = JordanAlgebra(m) sage: J.basis() Family (1 + (0, 0), 0 + (1, 0), 0 + (0, 1))
-
JordanAlgebraSymmetricBilinear.
one
()¶ Return the element 1 if it exists.
EXAMPLES:
sage: m = matrix([[0,1],[1,1]]) sage: J = JordanAlgebra(m) sage: J.one() 1 + (0, 0)
-
JordanAlgebraSymmetricBilinear.
zero
()¶ Return the element 0.
EXAMPLES:
sage: m = matrix([[0,1],[1,1]]) sage: J = JordanAlgebra(m) sage: J.zero() 0 + (0, 0)
-
class
-
class
sage.algebras.jordan_algebra.
SpecialJordanAlgebra
(A, names=None)¶ Bases:
sage.algebras.jordan_algebra.JordanAlgebra
A (special) Jordan algebra
from an associative algebra
.
-
class
Element
(parent, x)¶ Bases:
sage.structure.element.AlgebraElement
An element of a special Jordan algebra.
-
SpecialJordanAlgebra.
algebra_generators
()¶ Return the basis of
self
.EXAMPLES:
sage: F.<x,y,z> = FreeAlgebra(QQ) sage: J = JordanAlgebra(F) sage: J.basis() Lazy family (Term map(i))_{i in Free monoid on 3 generators (x, y, z)}
-
SpecialJordanAlgebra.
basis
()¶ Return the basis of
self
.EXAMPLES:
sage: F.<x,y,z> = FreeAlgebra(QQ) sage: J = JordanAlgebra(F) sage: J.basis() Lazy family (Term map(i))_{i in Free monoid on 3 generators (x, y, z)}
-
SpecialJordanAlgebra.
gens
()¶ Return the generators of
self
.EXAMPLES:
sage: cat = Algebras(QQ).WithBasis().FiniteDimensional() sage: C = CombinatorialFreeModule(QQ, ['x','y','z'], category=cat) sage: J = JordanAlgebra(C) sage: J.gens() (B['x'], B['y'], B['z']) sage: F.<x,y,z> = FreeAlgebra(QQ) sage: J = JordanAlgebra(F) sage: J.gens() Traceback (most recent call last): ... NotImplementedError: unknown cardinality
-
SpecialJordanAlgebra.
one
()¶ Return the element
if it exists.
EXAMPLES:
sage: F.<x,y,z> = FreeAlgebra(QQ) sage: J = JordanAlgebra(F) sage: J.one() 1
-
SpecialJordanAlgebra.
zero
()¶ Return the element
.
EXAMPLES:
sage: F.<x,y,z> = FreeAlgebra(QQ) sage: J = JordanAlgebra(F) sage: J.zero() 0
-
class