X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=mjo%2Feja%2Feja_element.py;h=5944c0779a8b7a63b1fa41897947cef4dbee83bb;hb=5cbb93016e4b192d2a2d7be81014a55a33c9a8f9;hp=d9b6eb12fe27363721763fc1e6ccb60c7f98aabd;hpb=9528af011cbb4d5e6a38ef972e0d14e7928d5eef;p=sage.d.git diff --git a/mjo/eja/eja_element.py b/mjo/eja/eja_element.py index d9b6eb1..5944c07 100644 --- a/mjo/eja/eja_element.py +++ b/mjo/eja/eja_element.py @@ -460,6 +460,17 @@ class FiniteDimensionalEuclideanJordanAlgebraElement(IndexedFreeModuleElement): ... ValueError: element is not invertible + Proposition II.2.3 in Faraut and Koranyi says that the inverse + of an element is the inverse of its left-multiplication operator + applied to the algebra's identity, when that inverse exists:: + + sage: set_random_seed() + sage: J = random_eja() + sage: x = J.random_element() + sage: (not x.operator().is_invertible()) or ( + ....: x.operator().inverse()(J.one()) == x.inverse() ) + True + """ if not self.is_invertible(): raise ValueError("element is not invertible") @@ -1011,7 +1022,7 @@ class FiniteDimensionalEuclideanJordanAlgebraElement(IndexedFreeModuleElement): - def subalgebra_generated_by(self): + def subalgebra_generated_by(self, orthonormalize_basis=False): """ Return the associative subalgebra of the parent EJA generated by this element. @@ -1050,7 +1061,7 @@ class FiniteDimensionalEuclideanJordanAlgebraElement(IndexedFreeModuleElement): 0 """ - return FiniteDimensionalEuclideanJordanElementSubalgebra(self) + return FiniteDimensionalEuclideanJordanElementSubalgebra(self, orthonormalize_basis) def subalgebra_idempotent(self): @@ -1162,8 +1173,7 @@ class FiniteDimensionalEuclideanJordanAlgebraElement(IndexedFreeModuleElement): TESTS: - The trace inner product is commutative, bilinear, and satisfies - the Jordan axiom: + The trace inner product is commutative, bilinear, and associative:: sage: set_random_seed() sage: J = random_eja() @@ -1183,7 +1193,7 @@ class FiniteDimensionalEuclideanJordanAlgebraElement(IndexedFreeModuleElement): ....: a*x.trace_inner_product(z) ) sage: actual == expected True - sage: # jordan axiom + sage: # associative sage: (x*y).trace_inner_product(z) == y.trace_inner_product(x*z) True