%% for a long time these were red and blue by default, %% now black, but keep variables to overwrite \definecolor{FuncColor}{rgb}{0.0,0.0,0.0} %% strange name because of pdflatex bug: \definecolor{Chapter }{rgb}{0.0,0.0,0.0} \definecolor{DarkOlive}{rgb}{0.1047,0.2412,0.0064}
% write page numbers to a .pnr log file for online help \newwrite\pagenrlog \immediate\openout\pagenrlog =\jobname.pnr \immediate\write\pagenrlog{PAGENRS := [} \newcommand{\logpage}[1]{\protect\write\pagenrlog{#1, \thepage,}} %% were never documented, give conflicts with some additional packages
\newcommand{\GAP}{\textsf{GAP}}
%% nicer description environments, allows long labels \usepackage{enumitem} \setdescription{style=nextline}
\newpage\setcounter{page}{2}
{\small \section*{Abstract} \logpage{[ 0, 0, 1 ]}
ALCO provides implementations in \textsf{GAP} of octonion algebras, Jordan algebras, and certain important integer subrings
of those algebras. It also provides tools to compute the parameters of
t\texttt{\symbol{45}}designs in spherical and projective spaces (modeled as
manifolds of primitive idempotent elements in a simple Euclidean Jordan
algebra). Finally, this package provides tools to explore octonion lattice
constructions, including octonion Leech lattices. \mbox{}}\\[1cm]
{\small \section*{Copyright} \logpage{[ 0, 0, 2 ]}
{\copyright} 2024 by Benjamin Nasmith
This package may be distributed under the terms and conditions of the GNU
Public License Version 3 or (at your option) any later version. \mbox{}}\\[1cm]
{\small \section*{Acknowledgements} \logpage{[ 0, 0, 3 ]}
This documentation was prepared using the \textsf{GAPDoc} package.
\mbox{}}\\[1cm] \newpage
\def\contentsname{Contents\logpage{[ 0, 0, 4 ]}}
\tableofcontents \newpage
\chapter{\textcolor{Chapter }{Introduction}}\logpage{[ 1, 0, 0 ]} \hyperdef{L}{X7DFB63A97E67C0A1}{}
{
The \textsf{ALCO} package provides tools for algebraic combinatorics, most of which was written
for \textsf{GAP} during the author's Ph.D. program \cite{nasmith_tight_2023}. This package provides implementations in \textsf{GAP} of octonion algebras, Jordan algebras, and certain important integer subrings
of those algebras. It also provides tools to compute the parameters of
t\texttt{\symbol{45}}designs in spherical and projective spaces (modeled as
manifolds of primitive idempotent elements in a simple Euclidean Jordan
algebra). Finally, this package provides tools to explore octonion lattice
constructions, including octonion Leech lattices. The following examples
illustrate how one might use this package to explore these structures.
The \textsf{ALCO} package allows users to work with the octavian integer ring (also known as the
octonion arithmetic), which is described carefully in \cite[chaps. 9\texttt{\symbol{45}}11]{conway_quaternions_2003}. In the example below, we verify that the octavian integers define an $E_8$ (Gossett) lattice relative to the standard octonion inner product: \begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
!gapprompt@gap>| !gapinput@O := OctavianIntegers;|
OctavianIntegers
!gapprompt@gap>| !gapinput@g := List(Basis(O), x -> List(Basis(O), y -> |
!gapprompt@>| !gapinput@Norm(x+y) - Norm(x) - Norm(y)));;|
!gapprompt@gap>| !gapinput@Display(g);|
[ [ 2, 0, -1, 0, 0, 0, 0, 0 ],
[ 0, 2, 0, -1, 0, 0, 0, 0 ],
[ -1, 0, 2, -1, 0, 0, 0, 0 ],
[ 0, -1, -1, 2, -1, 0, 0, 0 ],
[ 0, 0, 0, -1, 2, -1, 0, 0 ],
[ 0, 0, 0, 0, -1, 2, -1, 0 ],
[ 0, 0, 0, 0, 0, -1, 2, -1 ],
[ 0, 0, 0, 0, 0, 0, -1, 2 ] ]
!gapprompt@gap>| !gapinput@IsGossetLatticeGramMatrix(g);|
true \end{Verbatim}
The \textsf{ALCO} package also provides tools to construct octonion lattices, including octonion
Leech lattices (see for example \cite{wilson_octonions_2009}). In the following example we compute the shortest vectors in the \texttt{OctavianIntegers} lattice and select one that is a root of polynomial $x^2 + x + 2$. We use this root \texttt{s} to define a set \texttt{gens} of octonion triples to serve as generators for the lattice. Finally, we
construct the lattice \texttt{L} and confirm that it is a Leech lattice. \begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
!gapprompt@gap>| !gapinput@short := Set(ShortestVectors(g,4).vectors, y -> |
!gapprompt@>| !gapinput@LinearCombination(Basis(OctavianIntegers), y));;|
!gapprompt@gap>| !gapinput@s := First(short, x -> x^2 + x + 2*One(x) = Zero(x));|
(-1)*e1+(-1/2)*e2+(-1/2)*e3+(-1/2)*e4+(-1/2)*e8
!gapprompt@gap>| !gapinput@gens := List(Basis(OctavianIntegers), x -> |
!gapprompt@>| !gapinput@x*[[s,s,0],[0,s,s],ComplexConjugate([s,s,s])]);;|
!gapprompt@gap>| !gapinput@gens := Concatenation(gens);; |
!gapprompt@gap>| !gapinput@L := OctonionLatticeByGenerators(gens, One(O)*IdentityMat(3)/2);|
<free left module over Integers, with 24 generators>
!gapprompt@gap>| !gapinput@IsLeechLatticeGramMatrix(GramMatrix(L));|
true \end{Verbatim}
We can also construct and study simple Euclidean Jordan algebras (described
well in \cite{faraut_analysis_1994}), including the Albert algebra: \begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
!gapprompt@gap>| !gapinput@J := AlbertAlgebra(Rationals);|
<algebra-with-one of dimension 27 over Rationals>
!gapprompt@gap>| !gapinput@SemiSimpleType(Derivations(Basis(J)));| "F4"
!gapprompt@gap>| !gapinput@i := Basis(J){[1..8]};|
[ i1, i2, i3, i4, i5, i6, i7, i8 ]
!gapprompt@gap>| !gapinput@j := Basis(J){[9..16]};|
[ j1, j2, j3, j4, j5, j6, j7, j8 ]
!gapprompt@gap>| !gapinput@k := Basis(J){[17..24]};|
[ k1, k2, k3, k4, k5, k6, k7, k8 ]
!gapprompt@gap>| !gapinput@e := Basis(J){[25..27]};|
[ ei, ej, ek ]
!gapprompt@gap>| !gapinput@ForAll(e, IsIdempotent);|
true
!gapprompt@gap>| !gapinput@Set(i, x -> x^2);|
[ ej+ek ]
!gapprompt@gap>| !gapinput@Set(j, x -> x^2);|
[ ei+ek ]
!gapprompt@gap>| !gapinput@One(J);|
ei+ej+ek
!gapprompt@gap>| !gapinput@Determinant(One(J));|
1
!gapprompt@gap>| !gapinput@Trace(One(J));|
3 \end{Verbatim}
}
\chapter{\textcolor{Chapter }{Octonions}}\logpage{[ 2, 0, 0 ]} \hyperdef{L}{X7E7EE82D811283C0}{}
{
Let $C$ be a vector space over field $k$ equipped with a non\texttt{\symbol{45}}degenerate quadratic form $N:C \rightarrow k$. If $C$ is also an algebra with a product that satifies the composition rule $N(x y) = N(x) N(y)$ for all $x,y$ in $C$ then we call $C$ a \emph{composition algebra}. Quaternions and octonions are examples of composition algebras.
As described in \cite[Theorm 1.6.2]{springer_octonions_2000}, a composition algebra has dimension $1$, $2$, $ 4$, or $8$. Compositions algebras of dimension $1$ or $2$ are commutative and associative. A \emph{quaternion algebra} is a composition algebra of dimension $4$. Quaternion algebras are associative but noncommutative. An \emph{octonion algebra} is a composition algebra of dimension $8$. Octonion algebras are both noncommutative and nonassociative but still have
many interesting properties.
The non\texttt{\symbol{45}}degenerate quadratic form $N$ of a composition algebra is called the \emph{norm} of that algebra. In fact, a composition algebra is determined up to
isomorphism by its norm so the task of classifying composition algebras is
equivalent to the task of classifying the possible norms in that vector space \cite[chap. 1, sec. 7]{springer_octonions_2000}. A norm is either isotropic or anisotropic according to whether or not there
exists a non\texttt{\symbol{45}}zero element $x$ such that $N(x) = 0$. A composition algebra with a isotropic norm is called a \emph{split composition algebra}. A composition algebra with an anisotropic norm is called a \emph{division composition algebra} since each non\texttt{\symbol{45}}zero element has an inverse. An important
theorem \cite[Theorem 1.8.1]{springer_octonions_2000} shows that for each field $k$ there exists up to isomorphism one split composition algebra of dimension $2$, $ 4$, and $8$. The built\texttt{\symbol{45}}in \texttt{OctaveAlgebra(\mbox{\texttt{\mdseries\slshape F}})} function in \textsf{GAP} constructs the split\texttt{\symbol{45}}octonion algebra over the field given
as the argument.
As described in \cite[chap. 1, sec. 10]{springer_octonions_2000}, there are precisely one division composition algebra of dimension $4$ and one of dimension $ 8$ over the real number field (likewise over the rationals). The \textsf{ALCO} package provides constructions of \emph{non\texttt{\symbol{45}}split} octonion algebras, provided that the algebra is constructed over a suitable
field (e.g., octonions over any finite field are split). \section{\textcolor{Chapter }{Octonion Algebras}}\label{sec:octalg} \logpage{[ 2, 1, 0 ]} \hyperdef{L}{X7833529F8000FCAD}{}
{
Returns an octonion algebra over field \mbox{\texttt{\mdseries\slshape F}} in a standard orthonormal basis $\{e_{i}, i = 1,...,8\}$ such that $1 = e_8$ is the identity element and $e_{i} = e_{i+1}e_{i+3} = - e_{i+3}e_{i+1}$ for $i = 1,...,7$, with indices evaluated modulo 7. This corresponds to the basis provided in \cite{baez_octonions_2002} and \cite{conway_quaternions_2003} (except that \texttt{ e7} corresponds to $e_0$ in the literature, since the first entry in a \textsf{GAP} list has index 1). Whether or not the algebra constructed is a division
algebra or a split\texttt{\symbol{45}}octonion algebra depends on the choice
of field \mbox{\texttt{\mdseries\slshape F}}. For example, \texttt{OctonionAlgebra(Rationals)} is a division composition algebra, but \texttt{OctonionAlgebra(GF(3))} is a split composition algebra. Other examples are discussed in \cite[chap. 1, sec. 10]{springer_octonions_2000}. \begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
!gapprompt@gap>| !gapinput@O := OctonionAlgebra(Rationals);|
<algebra-with-one of dimension 8 over Rationals>
!gapprompt@gap>| !gapinput@LeftActingDomain(O);|
Rationals
!gapprompt@gap>| !gapinput@IsAssociative(O);|
false
!gapprompt@gap>| !gapinput@e := BasisVectors(Basis(O));|
[ e1, e2, e3, e4, e5, e6, e7, e8 ]
!gapprompt@gap>| !gapinput@One(O);|
e8
!gapprompt@gap>| !gapinput@e[1]*e[2];|
e4
!gapprompt@gap>| !gapinput@e[2]*e[1];|
(-1)*e4
!gapprompt@gap>| !gapinput@Derivations(Basis(O));|
<Lie algebra of dimension 14 over Rationals>
!gapprompt@gap>| !gapinput@SemiSimpleType(last);| "G2" \end{Verbatim}
}
The \texttt{OctavianIntegers} are a subring of the octonion algebra with elements that have the geometry of
scaled $E_8$ lattice. This ring is named and studied in \cite[p. 105]{conway_quaternions_2003}. \texttt{ CanonicalBasis(OctavianIntegers)} returns \texttt{OctonionE8Basis} (\ref{OctonionE8Basis}). We can test whether an octonion is in \texttt{OctavianIntegers} using the operation \texttt{IsOctavianInt(\mbox{\texttt{\mdseries\slshape x}})}. \begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
!gapprompt@gap>| !gapinput@a := BasisVectors(Basis(OctavianIntegers));;|
!gapprompt@gap>| !gapinput@for x in a do Display(x); od;|
(-1/2)*e1+(1/2)*e5+(1/2)*e6+(1/2)*e7
(-1/2)*e1+(-1/2)*e2+(-1/2)*e4+(-1/2)*e7
(1/2)*e2+(1/2)*e3+(-1/2)*e5+(-1/2)*e7
(1/2)*e1+(-1/2)*e3+(1/2)*e4+(1/2)*e5
(-1/2)*e2+(1/2)*e3+(-1/2)*e5+(1/2)*e7
(1/2)*e2+(-1/2)*e4+(1/2)*e5+(-1/2)*e6
(-1/2)*e1+(-1/2)*e3+(1/2)*e4+(-1/2)*e5
(1/2)*e1+(-1/2)*e4+(1/2)*e6+(-1/2)*e8
!gapprompt@gap>| !gapinput@ForAll(a, IsOctavianInt);|
true
!gapprompt@gap>| !gapinput@ForAll(a/2, IsOctavianInt);|
false \end{Verbatim}
}
The \textsf{ALCO} package also loads a basis for \texttt{OctonionAlgebra(\mbox{\texttt{\mdseries\slshape Rationals}})} which also serves as generators for \texttt{OctavianIntegers} (\ref{OctavianIntegers}). This octonion integer lattice has the geometry of a $E_8$ (Gossett) lattice relative to the inner product defined by the octonion norm. \begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
!gapprompt@gap>| !gapinput@BasisVectors(OctonionE8Basis) = BasisVectors(Basis(OctavianIntegers));|
true
!gapprompt@gap>| !gapinput@g := List(OctonionE8Basis, x -> List(OctonionE8Basis, y -> |
!gapprompt@>| !gapinput@Norm(x+y) - Norm(x) - Norm(y)));;|
!gapprompt@gap>| !gapinput@IsGossetLatticeGramMatrix(g);|
true \end{Verbatim}
}
Returns the norm of octonion \mbox{\texttt{\mdseries\slshape x}}. Recall that an octonion algebra with norm $N$ satisfies the composition property $N(xy) = N(x)N(y)$. In the canonical basis for \texttt{OctonionAlgebra} (\ref{OctonionAlgebra}), the norm is the sum of the squares of the coefficients. \begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
!gapprompt@gap>| !gapinput@Oct := OctonionAlgebra(Rationals);;|
!gapprompt@gap>| !gapinput@List(Basis(Oct), Norm);|
[ 1, 1, 1, 1, 1, 1, 1, 1 ]
!gapprompt@gap>| !gapinput@x := Random(Oct);; y := Random(Oct);;|
!gapprompt@gap>| !gapinput@Norm(x*y) = Norm(x)*Norm(y);|
true \end{Verbatim}
}
Returns the trace of octonion \mbox{\texttt{\mdseries\slshape x}}. In the canonical basis for \texttt{OctonionAlgebra} (\ref{OctonionAlgebra}), the trace is twice the coefficient of the identity element \texttt{e8}. The trace and real part are related via \texttt{RealPart(\mbox{\texttt{\mdseries\slshape x}}) = Trace(\mbox{\texttt{\mdseries\slshape x}})*One(\mbox{\texttt{\mdseries\slshape x}})/2}. Note that \texttt{Trace(\mbox{\texttt{\mdseries\slshape x}})} is an element of \texttt{LeftActingDomain(\mbox{\texttt{\mdseries\slshape A}})}, where \mbox{\texttt{\mdseries\slshape A}} is the octonion algebra containing \mbox{\texttt{\mdseries\slshape x}}. \begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
!gapprompt@gap>| !gapinput@e := BasisVectors(Basis(OctonionAlgebra(Rationals)));|
[ e1, e2, e3, e4, e5, e6, e7, e8 ]
!gapprompt@gap>| !gapinput@List(e, Trace);|
[ 0, 0, 0, 0, 0, 0, 0, 2 ]
!gapprompt@gap>| !gapinput@List(e, RealPart);|
[ 0*e1, 0*e1, 0*e1, 0*e1, 0*e1, 0*e1, 0*e1, e8 ] \end{Verbatim}
}
Returns the real component of octonion \mbox{\texttt{\mdseries\slshape x}}, defined by \texttt{ (1/2)*One(x)*Trace(x)}. Note that \texttt{RealPart} returns an octonion in the subspace spanned by the octonion identity element
while \texttt{Trace} returns an element in the coefficient field of the octonion algebra. \begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
!gapprompt@gap>| !gapinput@e := BasisVectors(Basis(OctonionAlgebra(Rationals)));|
[ e1, e2, e3, e4, e5, e6, e7, e8 ]
!gapprompt@gap>| !gapinput@List(e, RealPart);|
[ 0*e1, 0*e1, 0*e1, 0*e1, 0*e1, 0*e1, 0*e1, e8 ] \end{Verbatim}
}
Let \mbox{\texttt{\mdseries\slshape x}} be an octonion vector of the form $x = (x_1, x_2, ..., x_n)$, for $x_i$ octonion valued coefficients. Let \mbox{\texttt{\mdseries\slshape B}} be a basis for the octonion algebra containing coefficients $x_i$. The function \texttt{OctonionToRealVector(\mbox{\texttt{\mdseries\slshape B}}, \mbox{\texttt{\mdseries\slshape x}})} returns a vector \mbox{\texttt{\mdseries\slshape y}} of length $8n$ containing the concatenation of the coefficients of $x_i$ in the octonion basis given by \mbox{\texttt{\mdseries\slshape B}}. The function \texttt{RealToOctonionVector(\mbox{\texttt{\mdseries\slshape B}}, \mbox{\texttt{\mdseries\slshape y}})} provides the inverse operation. \begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
!gapprompt@gap>| !gapinput@O := UnderlyingLeftModule(OctonionE8Basis);|
<algebra-with-one of dimension 8 over Rationals>
!gapprompt@gap>| !gapinput@BasisVectors(CanonicalBasis(O));|
[ e1, e2, e3, e4, e5, e6, e7, e8 ]
!gapprompt@gap>| !gapinput@x := 2*OctonionE8Basis{[1,2]};|
[ (-1)*e1+e5+e6+e7, (-1)*e1+(-1)*e2+(-1)*e4+(-1)*e7 ]
!gapprompt@gap>| !gapinput@y := OctonionToRealVector(CanonicalBasis(O), x);|
[ -1, 0, 0, 0, 1, 1, 1, 0, -1, -1, 0, -1, 0, 0, -1, 0 ]
!gapprompt@gap>| !gapinput@RealToOctonionVector(CanonicalBasis(O), y);|
[ (-1)*e1+e5+e6+e7, (-1)*e1+(-1)*e2+(-1)*e4+(-1)*e7 ] \end{Verbatim}
}
Let \mbox{\texttt{\mdseries\slshape r}} be a vector satisfying \texttt{IsHomogeneousList} and \texttt{ IsAssociative} with elements in \texttt{IsCyc}, \texttt{IsQuaternion}, or \texttt{ IsOctonion} and let \texttt{IsHomogeneousList(Flat([\mbox{\texttt{\mdseries\slshape r}},\mbox{\texttt{\mdseries\slshape x}}]))}. Then this function returns the Weyl reflection of vector \mbox{\texttt{\mdseries\slshape x}} using the projector defined by \texttt{VectorToIdempotentMatrix(\mbox{\texttt{\mdseries\slshape r}})}. Specifically, the result is \texttt{x \texttt{\symbol{45}} 2*x*VectorToIdempotentMatrix(r)}. \begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
!gapprompt@gap>| !gapinput@WeylReflection([1,0,1],[0,1,1]);|
[ -1, 1, 0 ] \end{Verbatim}
}
}
\section{\textcolor{Chapter }{Quaternion Tools}}\logpage{[ 2, 4, 0 ]} \hyperdef{L}{X7991AA0A852ABD60}{}
{
The \textsf{ALCO} package provides some additional tools for studying quaternion algebras in \textsf{GAP}. These tools include methods to compute the quaternion norm and trace,
certain important bases, and the subrings generated by those bases. \textsf{GAP} already provides some built\texttt{\symbol{45}}in tools to construct and study
the quaternion algebra in the standard Hamiltonian basis. The following
example illustrates these tools: \begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
!gapprompt@gap>| !gapinput@H := QuaternionAlgebra(Rationals);|
<algebra-with-one of dimension 4 over Rationals>
!gapprompt@gap>| !gapinput@IsQuaternion(Random(H));|
true
!gapprompt@gap>| !gapinput@IsAssociative(H);|
true
!gapprompt@gap>| !gapinput@IsCommutative(H);|
false
!gapprompt@gap>| !gapinput@One(H);|
e
!gapprompt@gap>| !gapinput@b := BasisVectors(CanonicalBasis(H));|
[ e, i, j, k ]
!gapprompt@gap>| !gapinput@List(b, ComplexConjugate);|
[ e, (-1)*i, (-1)*j, (-1)*k ]
!gapprompt@gap>| !gapinput@List(b, Inverse);|
[ e, (-1)*i, (-1)*j, (-1)*k ]
!gapprompt@gap>| !gapinput@List(b, RealPart);|
[ e, 0*e, 0*e, 0*e ]
!gapprompt@gap>| !gapinput@List(b, ImaginaryPart);|
[ 0*e, e, k, (-1)*j ] \end{Verbatim}
Note that the \textsf{GAP} method \texttt{ImaginaryPart} acting on objects that satisfy \texttt{IsQuaternion} involves dividing by \texttt{i}, which yields a different result than the \texttt{x \texttt{\symbol{45}} RealPart(x)} that some users may expect. The \textsf{ALCO} package does not define an \texttt{ImaginaryPart} method for octonions in order to avoid confusion about the behaviour of that
method when applied to quaternions or octonions.
Returns the norm of quaternion \mbox{\texttt{\mdseries\slshape x}}. Recall that a quaternion algebra with norm $N$ satisfies the composition property $N(xy) = N(x)N(y)$. In the canonical basis of \texttt{QuaternionAlgebra}, the norm is the sum of the squares of the coefficients. \begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
!gapprompt@gap>| !gapinput@H := QuaternionAlgebra(Rationals);;|
!gapprompt@gap>| !gapinput@b := BasisVectors(CanonicalBasis(H));|
[ e, i, j, k ]
!gapprompt@gap>| !gapinput@List(b, Norm);|
[ 1, 1, 1, 1 ]
!gapprompt@gap>| !gapinput@x := Random(H);; y := Random(H);;|
!gapprompt@gap>| !gapinput@Norm(x*y) = Norm(x)*Norm(y);|
true \end{Verbatim}
}
Returns the trace of quaternion \mbox{\texttt{\mdseries\slshape x}}, such that \texttt{RealPart(\mbox{\texttt{\mdseries\slshape x}}) = Trace(\mbox{\texttt{\mdseries\slshape x}})*One(\mbox{\texttt{\mdseries\slshape x}})/2}. In the canonical basis of \texttt{QuaternionAlgebra}, the trace is twice the coefficient of the identity element. \begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
!gapprompt@gap>| !gapinput@H := QuaternionAlgebra(Rationals);;|
!gapprompt@gap>| !gapinput@b := BasisVectors(CanonicalBasis(H));|
[ e, i, j, k ]
!gapprompt@gap>| !gapinput@List(b, Trace);|
[ 2, 0, 0, 0 ] \end{Verbatim}
}
The \texttt{HurwitzIntegers} are a subring of the quaternion algebra with elements that have the geometry
of scaled $D_4$ lattice. This ring is named and studied in \cite[p. 55]{conway_quaternions_2003}. \texttt{CanonicalBasis(HurwitzIntegers)} returns \texttt{QuaternionD4Basis} (\ref{QuaternionD4Basis}). We can test whether a quaternion is in \texttt{HurwitzIntegers} using the operation \texttt{IsHurwitzInt(\mbox{\texttt{\mdseries\slshape x}})}. \begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
!gapprompt@gap>| !gapinput@f := BasisVectors(Basis(HurwitzIntegers));;|
!gapprompt@gap>| !gapinput@for x in f do Display(x); od;|
(-1/2)*e+(-1/2)*i+(-1/2)*j+(1/2)*k
(-1/2)*e+(-1/2)*i+(1/2)*j+(-1/2)*k
(-1/2)*e+(1/2)*i+(-1/2)*j+(-1/2)*k
e
!gapprompt@gap>| !gapinput@ForAll(f, IsHurwitzInt);|
true
!gapprompt@gap>| !gapinput@ForAll(f/2, IsHurwitzInt);|
false \end{Verbatim}
}
The \textsf{ALCO} package loads a basis for a quaternion algebra over {\ensuremath{\mathbb Q}}
with the geometry of a $D_4$ simple root system. The {\ensuremath{\mathbb Z}}\texttt{\symbol{45}}span of
this basis is the \texttt{HurwitzIntegers} (\ref{HurwitzIntegers}) ring. These basis vectors close under pairwise reflection or multiplication to
form a $ D_4$ root system. \begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
!gapprompt@gap>| !gapinput@B := QuaternionD4Basis;;|
!gapprompt@gap>| !gapinput@for x in BasisVectors(B) do Display(x); od;|
(-1/2)*e+(-1/2)*i+(-1/2)*j+(1/2)*k
(-1/2)*e+(-1/2)*i+(1/2)*j+(-1/2)*k
(-1/2)*e+(1/2)*i+(-1/2)*j+(-1/2)*k
e \end{Verbatim}
}
}
\section{\textcolor{Chapter }{Icosian Tools}}\logpage{[ 2, 5, 0 ]} \hyperdef{L}{X79CDD8757D97A598}{}
{
The icosian ring is a subring of the quaternion algebra over the "golden
field" $\mathbb{Q}(\sqrt{5})$ This ring is described and studied in \cite[pp. 207\texttt{\symbol{45}}211]{conway_sphere_2013} and \cite[p. 220]{wilson_finite_2009}. The icosian ring has $120$ units, or elements with quaternion norm of $1$. These units are closed under quaternion multiplication. These icosian units
also exhibit a $H_4$ geometry in the sense that they are closed under Weyl reflection relative to
the standard Euclidean inner product defined by the quaternion norm. The
Coxeter group generated by these reflections is the group $W(H_4)$. The coefficients of an icosian in the standard quaternion basis belong to
the integer subring of the golden field, meaning that these coefficients have
the form $a + b \sigma$, where $a,b$ are rational integers and $\sigma = (1-\sqrt{5})/2$. The Euclidean inner product between any two icosians will be a golden field
integer. As described in the references given above, if we define a new inner
product between icosians that discards the $\sigma$\texttt{\symbol{45}}coefficient $b$ then the icosian ring will exhibit the geometry of an $E_8$ lattice relative to this new inner product. It is also possible to define a
Leech lattice geometry on icosian triples.
The \textsf{ALCO} package provides tools to explore these icosian properties and construct
certain important lattices using icosians. Note that the golden field can be
constructed in \textsf{GAP} as \texttt{NF(5, [ 1, 4 ])} or \texttt{Field(Sqrt(5))} and that $\sigma$ is given by \texttt{\texttt{\symbol{45}}EB(5)}. \subsection{\textcolor{Chapter }{Icosian Ring}}\logpage{[ 2, 5, 1 ]} \hyperdef{L}{X87BAE3917C966AA5}{}
{ \noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IcosianRing\index{IcosianRing@\texttt{IcosianRing}} \label{IcosianRing}
}\hfill{\scriptsize (global variable)}}\\ \noindent\textcolor{FuncColor}{$\triangleright$\enspace\texttt{IsIcosian({\mdseries\slshape x})\index{IsIcosian@\texttt{IsIcosian}} \label{IsIcosian}
}\hfill{\scriptsize (operation)}}\\
The \texttt{IcosianRing} is a subring of the the quaternion algebra over \texttt{NF(5,[1,4])} generated by a set of vectors with an $H_4$ geometry. This ring is described well in \cite[p. 220]{wilson_finite_2009}. \texttt{CanonicalBasis(IcosianRing)} returns \texttt{IcosianH4Generators} (\ref{IcosianH4Generators}). We can test whether a quaternion is in \texttt{IcosianRing} using the operation \texttt{IsIcosian(\mbox{\texttt{\mdseries\slshape x}})}. Note that a quaternion is an icosian when it is a {\ensuremath{\mathbb
Z}}\texttt{\symbol{45}}linear combination of the union of \texttt{Basis(IcosianRing)} and \texttt{Basis(IcosianRing)*EB(5)}. \begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
!gapprompt@gap>| !gapinput@f := BasisVectors(Basis(IcosianRing));;|
!gapprompt@gap>| !gapinput@for x in f do Display(x); od;|
(-1)*i
(-1/2*E(5)^2-1/2*E(5)^3)*i+(1/2)*j+(-1/2*E(5)-1/2*E(5)^4)*k
(-1)*j
(-1/2*E(5)-1/2*E(5)^4)*e+(1/2)*j+(-1/2*E(5)^2-1/2*E(5)^3)*k
!gapprompt@gap>| !gapinput@ForAll(f, IsIcosian);|
true
!gapprompt@gap>| !gapinput@ForAll(f/2, IsIcosian);|
false
!gapprompt@gap>| !gapinput@ForAll(f*EB(5), IsIcosian);|
true
!gapprompt@gap>| !gapinput@ForAll(f*Sqrt(5), IsIcosian);|
true
!gapprompt@gap>| !gapinput@ForAll(f*(1-Sqrt(5))/2, IsIcosian);|
true
!gapprompt@gap>| !gapinput@ForAll(f*(1+Sqrt(5))/2, IsIcosian);|
true \end{Verbatim}
}
The \textsf{ALCO} package loads this variable as a basis for a quaternion algebra over \texttt{NF(5,[1,4])}. Note that a quaternion is an icosian when it is a {\ensuremath{\mathbb
Z}}\texttt{\symbol{45}}linear combination of the union of \texttt{ IcosianH4Generators} and \texttt{IcosianH4Generators*EB(5)}. These basis vectors close under pairwise reflection or multiplication to
form a $H_4$ set of vectors. \begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
!gapprompt@gap>| !gapinput@f := BasisVectors(IcosianH4Generators);;|
!gapprompt@gap>| !gapinput@for x in f do Display(x); od;|
(-1)*i
(-1/2*E(5)^2-1/2*E(5)^3)*i+(1/2)*j+(-1/2*E(5)-1/2*E(5)^4)*k
(-1)*j
(-1/2*E(5)-1/2*E(5)^4)*e+(1/2)*j+(-1/2*E(5)^2-1/2*E(5)^3)*k \end{Verbatim}
}
For \mbox{\texttt{\mdseries\slshape x}} in the golden field \texttt{NF(5,[ 1, 4 ])}, this function returns the rational coefficient of \texttt{1} in the basis \texttt{Basis(NF(5,[ 1, 4 ]), [1, (1\texttt{\symbol{45}}Sqrt(5))/2])}. \begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
!gapprompt@gap>| !gapinput@sigma := (1-Sqrt(5))/2;; tau := (1+Sqrt(5))/2;;|
!gapprompt@gap>| !gapinput@x := 5 + 3*sigma;; GoldenModSigma(x);|
5
!gapprompt@gap>| !gapinput@GoldenModSigma(sigma);|
0
!gapprompt@gap>| !gapinput@GoldenModSigma(tau);|
1 \end{Verbatim}
}
}
\section{\textcolor{Chapter }{Other Integer Rings}}\logpage{[ 2, 6, 0 ]} \hyperdef{L}{X816679827A2DC3D4}{}
{
Certain addition integer subrings of elements satisfying \texttt{IsCyc} are also included in the \textsf{ALCO} package. The rings constructed below are described in \cite[pp. 16\texttt{\symbol{45}}18]{conway_quaternions_2003}.
The \texttt{EisensteinIntegers} is a subring of the complex numbers generated by \texttt{1} and \texttt{E(3)}. This subring has the geometry of an $A_2$ lattice. This ring is described well in \cite[p. 16]{conway_quaternions_2003}. We can test whether an element in \texttt{IsCyc} is an Eisenstein integer using the operation \texttt{IsEisenInt(\mbox{\texttt{\mdseries\slshape x}})}. \begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
!gapprompt@gap>| !gapinput@f := BasisVectors(Basis(EisensteinIntegers));|
[ 1, E(3) ]
!gapprompt@gap>| !gapinput@IsEisenInt(E(4));|
false
!gapprompt@gap>| !gapinput@IsEisenInt(1+E(3)^2);|
true \end{Verbatim}
}
The \texttt{KleinianIntegers} is a subring of the complex numbers generated by \texttt{1} and \texttt{(1/2)*(\texttt{\symbol{45}}1+Sqrt(\texttt{\symbol{45}}7))}. This ring is described in \cite[p. 18]{conway_quaternions_2003}. We can test whether an element in \texttt{IsCyc} is an Kleinian integer using the operation \texttt{IsKleinInt(\mbox{\texttt{\mdseries\slshape x}})}. \begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
!gapprompt@gap>| !gapinput@f := BasisVectors(Basis(KleinianIntegers));|
[ 1, E(7)+E(7)^2+E(7)^4 ]
!gapprompt@gap>| !gapinput@IsKleinInt(E(4));|
false
!gapprompt@gap>| !gapinput@IsKleinInt(1+E(7)+E(7)^2+E(7)^4);|
true \end{Verbatim}
}
}
}
\chapter{\textcolor{Chapter }{Simple Euclidean Jordan Algebras}}\logpage{[ 3, 0, 0 ]} \hyperdef{L}{X7E13C2AE7DEAF62D}{}
{
A Jordan algebra is a commutative yet nonassociative algebra with product $\circ$ that satisfies the Jordan identity $x\circ(x^2 \circ y) = x^2 \circ (x\circ y)$. Given an associative algebra, we can define a Jordan algebra on the same
elements using the product $x \circ y = (xy + yx)/2$. A Jordan algebra $V$ is \emph{Euclidean} when there exists an inner product $(x,y)$ on $V$ that satisfies $(x\circ y, z) = (y, x\circ z)$ for all $x,y,z$ in $V$ \cite[p. 42]{faraut_analysis_1994}. Euclidean Jordan algebras are in
one\texttt{\symbol{45}}to\texttt{\symbol{45}}one correspondence with
structures known as symmetric cones, and any Euclidean Jordan algebra is the
direct sum of simple Euclidean Jordan algebras \cite[chap. 3]{faraut_analysis_1994}.
The simple Euclidean Jordan algebras, in turn, are classified by rank and
degree into four families and one exception \cite[chap. 5]{faraut_analysis_1994}. The first family consists of rank 2 algebras with degree any positive
integer. The remaining three families consist Jordan algebras with degree 1,
2, or 4 with rank a positive integer greater than 2. The exceptional algebra
has rank 3 and degree 8.
The \textsf{ALCO} package provides a number of tools to construct and manipulate simple
Euclidean Jordan algebras (described well in \cite{faraut_analysis_1994}), including their homotope and isotopes algebras (defined in \cite[p. 86]{mccrimmon_taste_2004}). Among other applications, these tools can reproduce many of the examples
found in \cite{elkies_exceptional_1996} and \cite{elkies_cubic_2001}. \section{\textcolor{Chapter }{Filters and Basic Attributes}}\logpage{[ 3, 1, 0 ]} \hyperdef{L}{X802D4E3380BC3177}{}
{
These filters determine whether an element is a Jordan algebra (\texttt{IsJordanAlgebra}) or is an element in a Jordan algebra (\texttt{IsJordanAlgebraObj}). }
The rank of a Jordan algeba is the size of a maximal set of mutually
orthogonal primitive idempotents in the algebra. The rank and degree are used
to classify the simple Euclidean Jordan algebras. This method returns the rank
of \mbox{\texttt{\mdseries\slshape x}} when \texttt{IsJordanAlgebra(\mbox{\texttt{\mdseries\slshape x}})} or the rank of the Jordan algebra containing \mbox{\texttt{\mdseries\slshape x}} (computed as \texttt{FamilyObj(x)!.fullSCAlgebra}) when \texttt{IsJordanAlgebraObj(\mbox{\texttt{\mdseries\slshape x}})}. The method \texttt{Rank(\mbox{\texttt{\mdseries\slshape x}})} returns \texttt{JordanRank(\mbox{\texttt{\mdseries\slshape x}})} when \mbox{\texttt{\mdseries\slshape x}} satisfies either \texttt{IsJordanAlgebra} or \texttt{IsJordanAlgebraObj}. }
The degree of a Jordan algebra is the dimension of the
off\texttt{\symbol{45}}diagonal entries in a Pierce decomposition of the
Jordan algebra. For example, a Jordan algebra of quaternion hermitian matrices
has degree 4. This method returns the degree of \mbox{\texttt{\mdseries\slshape x}} when \texttt{IsJordanAlgebra(\mbox{\texttt{\mdseries\slshape x}})} or the degree of the Jordan algebra containing \mbox{\texttt{\mdseries\slshape x}} (computed as \texttt{FamilyObj(x)!.fullSCAlgebra}) when \texttt{IsJordanAlgebraObj(\mbox{\texttt{\mdseries\slshape x}})}. The method \texttt{Degree(\mbox{\texttt{\mdseries\slshape x}})} returns \texttt{JordanDegree(\mbox{\texttt{\mdseries\slshape x}})} when \mbox{\texttt{\mdseries\slshapex}} satisfies either \texttt{IsJordanAlgebra} or \texttt{IsJordanAlgebraObj}. }
Each vector in a simple Euclidean Jordan algebra can be written as a
{\ensuremath{\mathbb R}}\texttt{\symbol{45}}linear combination of mutually
orthogonal primitive idempotents. This is called the \emph{spectral decomposition} of a Jordan algebra element. The coefficients in the decomposition are the \emph{eigenvalues} of the element. The Jordan trace and determinant, described below, are
respectively the sum and product of these eigenvalues with multiplicities
included \cite[p. 44]{faraut_analysis_1994}.
Returns the Jordan trace of \mbox{\texttt{\mdseries\slshape x}} when \texttt{IsJordanAlgebraObj(\mbox{\texttt{\mdseries\slshape x}})}. The trace of a Jordan algebra element is the sum of the eigenvalues of that
element (with multiplicies included). }
Returns the Jordan determinant of \mbox{\texttt{\mdseries\slshape x}} when \texttt{IsJordanAlgebraObj(\mbox{\texttt{\mdseries\slshape x}})}. The determinant of a Jordan algebra element is the product of the
eigenvalues of that element (with multiplicies included).}
Returns the Jordan norm of \mbox{\texttt{\mdseries\slshape x}} when \texttt{IsJordanAlgebraObj(\mbox{\texttt{\mdseries\slshape x}})}. The Jordan norm has the value \texttt{Trace(\mbox{\texttt{\mdseries\slshape x}}\texttt{\symbol{94}}2)/2}. }
Returns the generic minimal polynomial of \mbox{\texttt{\mdseries\slshape x}} when \texttt{IsJordanAlgebraObj(\mbox{\texttt{\mdseries\slshape x}})} as defined in \cite[p. 478]{faraut_analysis_2000} (see also \cite[pp. 27\texttt{\symbol{45}}31]{faraut_analysis_1994}). The output is given as a list of polynomial coefficients. Note that the
generic minimal polynomial is a monic polynomial of degree equal to the rank
of the Jordan algebra. The trace and determinant of a Jordan algebra element
are, to within a sign, given by the coefficients of the second highest degree
term and the constant term. \begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
!gapprompt@gap>| !gapinput@J := AlbertAlgebra(Rationals);;|
!gapprompt@gap>| !gapinput@x := Sum(Basis(J){[4,5,6,25,26,27]});|
i4+i5+i6+ei+ej+ek
!gapprompt@gap>| !gapinput@[JordanRank(J), JordanDegree(J)];|
[ 3, 8 ]
!gapprompt@gap>| !gapinput@[JordanRank(x), JordanDegree(x)];|
[ 3, 8 ]
!gapprompt@gap>| !gapinput@p := GenericMinimalPolynomial(x);|
[ 2, 0, -3, 1 ]
!gapprompt@gap>| !gapinput@Trace(x);|
3
!gapprompt@gap>| !gapinput@Determinant(x);|
-2
!gapprompt@gap>| !gapinput@Norm(x);|
9/2 \end{Verbatim}
}
}
\section{\textcolor{Chapter }{Jordan Algebra Constructions}}\logpage{[ 3, 2, 0 ]} \hyperdef{L}{X7FBD095A7B884F7F}{}
{
The classification of simple Euclidean Jordan algebras is described in \cite[chap. 5]{faraut_analysis_1994}. A simple Euclidean Jordan algebra can be constructed in the following two
ways. A rank $2$ algebra can be constructed from a positive definite Gram matrix in the manner
described in \cite[p. 25]{faraut_analysis_1994}. A degree $1$, $2$, $4$, or $8$ algebra can be constructed using Hermitian matrices over a composition algebra
of dimension equal to the degree with the product $(xy+yx)/2$. In certain cases both constructions are possible. The \textsf{ALCO} package provides tools to use both constructions to create simple Euclidean
Jordan algebras with elements that satisfy \texttt{IsSCAlgebraObj}.
Returns a simple Euclidean Jordan algebra over {\ensuremath{\mathbb Q}}. The
construction used depends on the arguments given in the following manner.
For Jordan algebras of rank \mbox{\texttt{\mdseries\slshape rho}} equal to $2$, the \texttt{JordanSpinFactor} (\ref{JordanSpinFactor}) construction is used. If optional \mbox{\texttt{\mdseries\slshape args}} is empty then the result is \texttt{JordanSpinFactor(IdentityMat(\mbox{\texttt{\mdseries\slshape d}}+1))}. If optional \mbox{\texttt{\mdseries\slshape args}} is a symmetric matrix of dimension \mbox{\texttt{\mdseries\slshape d}}+1, then \texttt{JordanSpinFactor(args)} is used. If neither of these rank 2 cases apply, and \mbox{\texttt{\mdseries\slshape d}} is equal to 1,2,4, or 8, and if \mbox{\texttt{\mdseries\slshapeargs}} is a composition algebra basis, then \texttt{HermitianSimpleJordanAlgebra(\mbox{\texttt{\mdseries\slshape rho}}, \mbox{\texttt{\mdseries\slshape args}})} is used.
In the cases where rank \mbox{\texttt{\mdseries\slshape rho}} is greater than $2$, we must have \mbox{\texttt{\mdseries\slshape d}} equal to one of $1$, $2$, $4$, or $8$. Note that \mbox{\texttt{\mdseries\slshape d}} equals $8$ is only permitted when \mbox{\texttt{\mdseries\slshape rho}} equals $3$. When optional \mbox{\texttt{\mdseries\slshape args}} is a composition algebra basis of dimension \mbox{\texttt{\mdseries\slshape d}}, \texttt{HermitianSimpleJordanAlgebra(\mbox{\texttt{\mdseries\slshape rho}}, \mbox{\texttt{\mdseries\slshape args}})} is used. Otherwise, when optional \mbox{\texttt{\mdseries\slshape args}} is empty, this function uses \texttt{HermitianSimpleJordanAlgebra(\mbox{\texttt{\mdseries\slshape rho}}, \mbox{\texttt{\mdseries\slshape B}})} for \mbox{\texttt{\mdseries\slshape B}} either \texttt{CanonicalBasis(Rationals)}, \texttt{Basis(CF(4), [1, E(4)])}, \texttt{CanonicalBasis(QuaternionAlgebra(Rationals))}, or \texttt{CanonicalBasis(OctonionAlgebra(Rationals))}.
Note that (in contrast to \texttt{AlbertAlgebra} (\ref{AlbertAlgebra})) the Hermitian Jordan algebras constructed using \texttt{SimpleEuclideanJordanAlgebra} uses the upper triangular entries of the Hermitian matrices define the basis
vectors. \begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
!gapprompt@gap>| !gapinput@J := SimpleEuclideanJordanAlgebra(3,8);|
<algebra-with-one of dimension 27 over Rationals>
!gapprompt@gap>| !gapinput@Derivations(Basis(J));; SemiSimpleType(last);| "F4" \end{Verbatim}
}
Returns a Jordan spin factor algebra when \mbox{\texttt{\mdseries\slshape G}} is a positive definite Gram matrix. This is the Jordan algebra of rank 2
constructed from a symmetric bilinear form, as described in \cite[p. 25]{faraut_analysis_1994}. \begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
!gapprompt@gap>| !gapinput@J := JordanSpinFactor(IdentityMat(8));|
<algebra-with-one of dimension 9 over Rationals>
!gapprompt@gap>| !gapinput@One(J);|
v.1
!gapprompt@gap>| !gapinput@[JordanRank(J), JordanDegree(J)];|
[ 2, 7 ]
!gapprompt@gap>| !gapinput@Derivations(Basis(J));|
<Lie algebra of dimension 28 over Rationals>
!gapprompt@gap>| !gapinput@SemiSimpleType(last);| "D4"
!gapprompt@gap>| !gapinput@x := Sum(Basis(J){[4,5,6,7]});|
v.4+v.5+v.6+v.7
!gapprompt@gap>| !gapinput@[Trace(x), Determinant(x)];|
[ 0, -4 ]
!gapprompt@gap>| !gapinput@p := GenericMinimalPolynomial(x);|
[ -4, 0, 1 ]
!gapprompt@gap>| !gapinput@ValuePol(p,x);|
0*v.1 \end{Verbatim}
}
Returns a simple Euclidean Jordan algebra of rank \mbox{\texttt{\mdseries\slshape r}} with the basis for the off\texttt{\symbol{45}}diagonal components defined
using composition algebra basis \mbox{\texttt{\mdseries\slshape B}}. \begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
!gapprompt@gap>| !gapinput@J := HermitianSimpleJordanAlgebra(3,QuaternionD4Basis);|
<algebra-with-one of dimension 15 over Rationals>
!gapprompt@gap>| !gapinput@[JordanRank(J), JordanDegree(J)];|
[ 3, 4 ] \end{Verbatim}
}
For \mbox{\texttt{\mdseries\slshape J}} a Jordan algebra satisfying \texttt{IsJordanAlgebra(\mbox{\texttt{\mdseries\slshape J}} )}, and for \mbox{\texttt{\mdseries\slshape u}} a vector in \mbox{\texttt{\mdseries\slshape J}}, this function returns the corresponding \mbox{\texttt{\mdseries\slshape u}}\texttt{\symbol{45}}homotope algebra with the product of $x$ and $y$ defined as $x(uy)+(xu)y - u(xy)$. The \mbox{\texttt{\mdseries\slshape u}}\texttt{\symbol{45}}homotope algebra also belongs to the filter \texttt{IsJordanAlgebra}.
Of note, if \mbox{\texttt{\mdseries\slshape u}} is invertible in \mbox{\texttt{\mdseries\slshape J}} then the corresponding \mbox{\texttt{\mdseries\slshape u}}\texttt{\symbol{45}}homotope algebra is called a \mbox{\texttt{\mdseries\slshape u}}\texttt{\symbol{45}}isotope. The optional argument \mbox{\texttt{\mdseries\slshape s}} is a string that determines the labels of the canonical basis vectors in the
new algebra. The main definitions and properties of Jordan homotopes and
isotopes are given in \cite[pp.82\texttt{\symbol{45}}86]{mccrimmon_taste_2004}. \begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
!gapprompt@gap>| !gapinput@J := SimpleEuclideanJordanAlgebra(2,7);|
<algebra-with-one of dimension 9 over Rationals>
!gapprompt@gap>| !gapinput@u := Sum(Basis(J){[1,2,7,8]});|
v.1+v.2+v.7+v.8
!gapprompt@gap>| !gapinput@Inverse(u);|
(-1/2)*v.1+(1/2)*v.2+(1/2)*v.7+(1/2)*v.8
!gapprompt@gap>| !gapinput@GenericMinimalPolynomial(u);|
[ -2, -2, 1 ]
!gapprompt@gap>| !gapinput@H := JordanHomotope(J, u, "w.");|
<algebra-with-one of dimension 9 over Rationals>
!gapprompt@gap>| !gapinput@One(H);|
(-1/2)*w.1+(1/2)*w.2+(1/2)*w.7+(1/2)*w.8 \end{Verbatim}
}
}
\section{\textcolor{Chapter }{The Albert Algebra}}\logpage{[ 3, 3, 0 ]} \hyperdef{L}{X7B9397277AF7F920}{}
{
The exceptional simple Euclidean Jordan algebra, or Albert algebra, may be
constructed using \texttt{SimpleEuclideanJordanAlgebra} (\ref{SimpleEuclideanJordanAlgebra}) with rank 3 and degree 8. However, that construction uses the upper triangular
entries of the Hermitian matrices define the basis vectors (i.e., the \texttt{[1][2], [2][3], [1][3]} entries). Much of the literature on the Albert algebra instead uses the \texttt{[1][2], [2][3], [3][1]} entries of the Hermitian matrices to define the basis vectors (see for example \cite[pp. 147\texttt{\symbol{45}}148]{wilson_finite_2009}). The \textsf{ALCO} package provides a specific construction of the Albert algebra that uses this
convention for defining basis vectors, described below.
For \mbox{\texttt{\mdseries\slshape F}} a field, this function returns an Albert algebra over \mbox{\texttt{\mdseries\slshape F}}. For \texttt{\mbox{\texttt{\mdseries\slshape F}} = Rationals}, this algebra is isomorphic to \texttt{HermitianSimpleJordanAlgebra(3,8,Basis(Oct))} but in a basis that is more convenient for reproducing certain calculations in
the literature. Specifically, while \texttt{HermitianSimpleJordanAlgebra(3,8,Basis(Oct))} uses the upper\texttt{\symbol{45}}triangular elements of a Hermitian matrix as
representative, \texttt{AlbertAlgebra(\mbox{\texttt{\mdseries\slshape F}})} uses the \texttt{[1][2], [2][3], [3][1]} entries as representative. These are respectively labeled using \texttt{k,i,j}. \begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
!gapprompt@gap>| !gapinput@A := AlbertAlgebra(Rationals);|
<algebra-with-one of dimension 27 over Rationals>
!gapprompt@gap>| !gapinput@i := Basis(A){[1..8]};;|
!gapprompt@gap>| !gapinput@j := Basis(A){[9..16]};;|
!gapprompt@gap>| !gapinput@k := Basis(A){[17..24]};; |
!gapprompt@gap>| !gapinput@e := Basis(A){[25..27]};;|
!gapprompt@gap>| !gapinput@Display(i); Display(j); Display(k); Display(e);|
[ i1, i2, i3, i4, i5, i6, i7, i8 ]
[ j1, j2, j3, j4, j5, j6, j7, j8 ]
[ k1, k2, k3, k4, k5, k6, k7, k8 ]
[ ei, ej, ek ] \end{Verbatim}
}
For an element \mbox{\texttt{\mdseries\slshape x}} in \texttt{AlbertAlgebra(\mbox{\texttt{\mdseries\slshape Rationals}})}, this function returns the corresponding 3 x 3 Hermitian matrix with octonion
entries in \texttt{OctonionAlgebra(\mbox{\texttt{\mdseries\slshape Rationals}})}. }
For 3 x 3 Hermitian matrix with elements in \texttt{OctonionAlgebra(\mbox{\texttt{\mdseries\slshape Rationals}})}, this function returns the corresponding vector in in \texttt{AlbertAlgebra(\mbox{\texttt{\mdseries\slshape Rationals}})}. \begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
!gapprompt@gap>| !gapinput@j := Basis(AlbertAlgebra(Rationals)){[9..16]};|
[ j1, j2, j3, j4, j5, j6, j7, j8 ]
!gapprompt@gap>| !gapinput@mat := AlbertVectorToHermitianMatrix(j[3]);; Display(mat);|
[ [ 0*e1, 0*e1, (-1)*e3 ],
[ 0*e1, 0*e1, 0*e1 ],
[ e3, 0*e1, 0*e1 ] ]
!gapprompt@gap>| !gapinput@HermitianMatrixToAlbertVector(mat);|
j3 \end{Verbatim}
}
}
\section{\textcolor{Chapter }{The Quadratic Representation}}\logpage{[ 3, 4, 0 ]} \hyperdef{L}{X7F03850D819127E2}{}
{
Many important features of simple Euclidean Jordan algebra and their isotopes
are related to the quadratic representation. This aspect of Jordan algebras is
described well in \cite[pp.82\texttt{\symbol{45}}86]{mccrimmon_taste_2004} and \cite[pp. 32\texttt{\symbol{45}}38]{faraut_analysis_1994}. The following methods allow for the construction of Jordan quadratic maps
and the standard triple product on a Jordan algebra.
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.