]> gitweb.michael.orlitzky.com - sage.d.git/commitdiff
eja: add some more octonion tests.
authorMichael Orlitzky <michael@orlitzky.com>
Thu, 4 Mar 2021 02:22:02 +0000 (21:22 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Thu, 4 Mar 2021 02:22:02 +0000 (21:22 -0500)
mjo/eja/eja_algebra.py

index 3659694fe27625939b76de434c8a882a60e6faef..afe0a677aaafd9ddf67355ed979d5ef023beb9c0 100644 (file)
@@ -2587,10 +2587,10 @@ class QuaternionHermitianEJA(ConcreteEJA, QuaternionMatrixEJA):
 
 class OctonionHermitianEJA(FiniteDimensionalEJA, MatrixEJA):
     r"""
-
     SETUP::
 
-        sage: from mjo.eja.eja_algebra import OctonionHermitianEJA
+        sage: from mjo.eja.eja_algebra import (FiniteDimensionalEJA,
+        ....:                                  OctonionHermitianEJA)
 
     EXAMPLES:
 
@@ -2602,7 +2602,47 @@ class OctonionHermitianEJA(FiniteDimensionalEJA, MatrixEJA):
         ....:                      check_axioms=True)    # long time
         Euclidean Jordan algebra of dimension 27 over Rational Field
 
-    TESTS::
+    After a change-of-basis, the 2-by-2 algebra has the same
+    multiplication table as the ten-dimensional Jordan spin algebra::
+
+        sage: b = OctonionHermitianEJA._denormalized_basis(2,QQ)
+        sage: basis = (b[0] + b[9],) + b[1:9] + (b[0] - b[9],)
+        sage: jp = OctonionHermitianEJA.jordan_product
+        sage: ip = OctonionHermitianEJA.trace_inner_product
+        sage: J = FiniteDimensionalEJA(basis,
+        ....:                          jp,
+        ....:                          ip,
+        ....:                          field=QQ,
+        ....:                          orthonormalize=False)
+        sage: J.multiplication_table()
+        +----++----+----+----+----+----+----+----+----+----+----+
+        | *  || b0 | b1 | b2 | b3 | b4 | b5 | b6 | b7 | b8 | b9 |
+        +====++====+====+====+====+====+====+====+====+====+====+
+        | b0 || b0 | b1 | b2 | b3 | b4 | b5 | b6 | b7 | b8 | b9 |
+        +----++----+----+----+----+----+----+----+----+----+----+
+        | b1 || b1 | b0 | 0  | 0  | 0  | 0  | 0  | 0  | 0  | 0  |
+        +----++----+----+----+----+----+----+----+----+----+----+
+        | b2 || b2 | 0  | b0 | 0  | 0  | 0  | 0  | 0  | 0  | 0  |
+        +----++----+----+----+----+----+----+----+----+----+----+
+        | b3 || b3 | 0  | 0  | b0 | 0  | 0  | 0  | 0  | 0  | 0  |
+        +----++----+----+----+----+----+----+----+----+----+----+
+        | b4 || b4 | 0  | 0  | 0  | b0 | 0  | 0  | 0  | 0  | 0  |
+        +----++----+----+----+----+----+----+----+----+----+----+
+        | b5 || b5 | 0  | 0  | 0  | 0  | b0 | 0  | 0  | 0  | 0  |
+        +----++----+----+----+----+----+----+----+----+----+----+
+        | b6 || b6 | 0  | 0  | 0  | 0  | 0  | b0 | 0  | 0  | 0  |
+        +----++----+----+----+----+----+----+----+----+----+----+
+        | b7 || b7 | 0  | 0  | 0  | 0  | 0  | 0  | b0 | 0  | 0  |
+        +----++----+----+----+----+----+----+----+----+----+----+
+        | b8 || b8 | 0  | 0  | 0  | 0  | 0  | 0  | 0  | b0 | 0  |
+        +----++----+----+----+----+----+----+----+----+----+----+
+        | b9 || b9 | 0  | 0  | 0  | 0  | 0  | 0  | 0  | 0  | b0 |
+        +----++----+----+----+----+----+----+----+----+----+----+
+
+    TESTS:
+
+    We can actually construct the 27-dimensional Albert algebra,
+    and we get the right unit element if we recompute it::
 
         sage: J = OctonionHermitianEJA(3,                    # long time
         ....:                          field=QQ,             # long time
@@ -2619,6 +2659,15 @@ class OctonionHermitianEJA(FiniteDimensionalEJA, MatrixEJA):
         | 0  | 0  | e0 |
         +----+----+----+
 
+    The 2-by-2 algebra is isomorphic to the ten-dimensional Jordan
+    spin algebra, but just to be sure, we recompute its rank::
+
+        sage: J = OctonionHermitianEJA(2,                    # long time
+        ....:                          field=QQ,             # long time
+        ....:                          orthonormalize=False) # long time
+        sage: J.rank.clear_cache()                           # long time
+        sage: J.rank()                                       # long time
+        2
     """
     def __init__(self, n, field=AA, **kwargs):
         if n > 3: