From 08aba469c5f8d8947a543f8882fa676ed165e7ee Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Mon, 14 Oct 2019 09:43:17 -0400 Subject: [PATCH] eja: define subalgebra_generated_by() to contain the identity. --- mjo/eja/eja_algebra.py | 3 --- mjo/eja/eja_element.py | 16 +++++++++++----- mjo/eja/eja_subalgebra.py | 18 ------------------ 3 files changed, 11 insertions(+), 26 deletions(-) diff --git a/mjo/eja/eja_algebra.py b/mjo/eja/eja_algebra.py index df6a048..6589575 100644 --- a/mjo/eja/eja_algebra.py +++ b/mjo/eja/eja_algebra.py @@ -449,9 +449,6 @@ class FiniteDimensionalEuclideanJordanAlgebra(CombinatorialFreeModule): sage: J = ComplexHermitianEJA(3) sage: J.is_trivial() False - sage: A = J.zero().subalgebra_generated_by() - sage: A.is_trivial() - True """ return self.dimension() == 0 diff --git a/mjo/eja/eja_element.py b/mjo/eja/eja_element.py index e7dff75..ee33e4b 100644 --- a/mjo/eja/eja_element.py +++ b/mjo/eja/eja_element.py @@ -1046,6 +1046,13 @@ class FiniteDimensionalEuclideanJordanAlgebraElement(IndexedFreeModuleElement): Return the associative subalgebra of the parent EJA generated by this element. + Since our parent algebra is unital, we want "subalgebra" to mean + "unital subalgebra" as well; thus the subalgebra that an element + generates will itself be a Euclidean Jordan algebra after + restricting the algebra operations appropriately. This is the + subalgebra that Faraut and Korányi work with in section II.2, for + example. + SETUP:: sage: from mjo.eja.eja_algebra import random_eja @@ -1070,14 +1077,13 @@ class FiniteDimensionalEuclideanJordanAlgebraElement(IndexedFreeModuleElement): sage: A(x^2) == A(x)*A(x) True - The subalgebra generated by the zero element is trivial:: + By definition, the subalgebra generated by the zero element is the + one-dimensional algebra generated by the identity element:: sage: set_random_seed() sage: A = random_eja().zero().subalgebra_generated_by() - sage: A - Euclidean Jordan algebra of dimension 0 over... - sage: A.one() - 0 + sage: A.dimension() + 1 """ return FiniteDimensionalEuclideanJordanElementSubalgebra(self, orthonormalize_basis) diff --git a/mjo/eja/eja_subalgebra.py b/mjo/eja/eja_subalgebra.py index 2c877f3..0f64141 100644 --- a/mjo/eja/eja_subalgebra.py +++ b/mjo/eja/eja_subalgebra.py @@ -128,24 +128,6 @@ class FiniteDimensionalEuclideanJordanElementSubalgebra(FiniteDimensionalEuclide except ValueError: prefix = prefixen[0] - if elt.is_zero(): - # Short circuit because 0^0 == 1 is going to make us - # think we have a one-dimensional algebra otherwise. - natural_basis = tuple() - mult_table = tuple() - rank = 0 - self._vector_space = V.zero_subspace() - self._superalgebra_basis = [] - fdeja = super(FiniteDimensionalEuclideanJordanElementSubalgebra, - self) - return fdeja.__init__(field, - mult_table, - rank, - prefix=prefix, - category=category, - natural_basis=natural_basis) - - # This list is guaranteed to contain all independent powers, # because it's the maximal set of powers that could possibly # be independent (by a dimension argument). -- 2.44.2