the same as its matrix representation in the superalgebra::
sage: set_random_seed()
- sage: A = random_eja().random_element().subalgebra_generated_by()
+ sage: x = random_eja(field=QQ,orthonormalize=False).random_element()
+ sage: A = x.subalgebra_generated_by(orthonormalize=False)
sage: y = A.random_element()
sage: actual = y.to_matrix()
sage: expected = y.superalgebra_element().to_matrix()
sage: set_random_seed()
sage: x = random_eja(field=AA).random_element()
- sage: A = x.subalgebra_generated_by(orthonormalize_basis=True)
+ sage: A = x.subalgebra_generated_by(orthonormalize=True)
sage: y = A.random_element()
sage: y.operator()(A.one()) == y
True
sage: J = RealSymmetricEJA(3)
sage: x = sum(J.gens())
sage: x
- e0 + e1 + e2 + e3 + e4 + e5
- sage: A = x.subalgebra_generated_by()
+ b0 + b1 + b2 + b3 + b4 + b5
+ sage: A = x.subalgebra_generated_by(orthonormalize=False)
sage: A(x)
- f1
+ c1
sage: A(x).superalgebra_element()
- e0 + e1 + e2 + e3 + e4 + e5
+ b0 + b1 + b2 + b3 + b4 + b5
sage: y = sum(A.gens())
sage: y
- f0 + f1
- sage: B = y.subalgebra_generated_by()
+ c0 + c1
+ sage: B = y.subalgebra_generated_by(orthonormalize=False)
sage: B(y)
- g1
+ d1
sage: B(y).superalgebra_element()
- f0 + f1
+ c0 + c1
TESTS:
We can convert back and forth faithfully::
sage: set_random_seed()
- sage: J = random_eja()
+ sage: J = random_eja(field=QQ, orthonormalize=False)
sage: x = J.random_element()
- sage: A = x.subalgebra_generated_by()
+ sage: A = x.subalgebra_generated_by(orthonormalize=False)
sage: A(x).superalgebra_element() == x
True
sage: y = A.random_element()
sage: A(y.superalgebra_element()) == y
True
- sage: B = y.subalgebra_generated_by()
+ sage: B = y.subalgebra_generated_by(orthonormalize=False)
sage: B(y).superalgebra_element() == y
True
"""
- return self._superalgebra(self.to_matrix())
+ return self.parent().superalgebra()(self.to_matrix())
....: [0,0] ])
sage: E22 = matrix(AA, [ [0,0],
....: [0,1] ])
- sage: K1 = FiniteDimensionalEJASubalgebra(J, (J(E11),))
+ sage: K1 = FiniteDimensionalEJASubalgebra(J, (J(E11),), associative=True)
sage: K1.one().to_matrix()
[1 0]
[0 0]
- sage: K2 = FiniteDimensionalEJASubalgebra(J, (J(E22),))
+ sage: K2 = FiniteDimensionalEJASubalgebra(J, (J(E22),), associative=True)
sage: K2.one().to_matrix()
[0 0]
[0 1]
TESTS:
- Ensure that our generator names don't conflict with the superalgebra::
+ Ensure that our generator names don't conflict with the
+ superalgebra::
sage: J = JordanSpinEJA(3)
sage: J.one().subalgebra_generated_by().gens()
- (f0,)
+ (c0,)
sage: J = JordanSpinEJA(3, prefix='f')
sage: J.one().subalgebra_generated_by().gens()
(g0,)
- sage: J = JordanSpinEJA(3, prefix='b')
+ sage: J = JordanSpinEJA(3, prefix='a')
sage: J.one().subalgebra_generated_by().gens()
- (c0,)
+ (b0,)
Ensure that we can find subalgebras of subalgebras::
sage: B = A.one().subalgebra_generated_by()
sage: B.dimension()
1
-
"""
def __init__(self, superalgebra, basis, **kwargs):
self._superalgebra = superalgebra
# try to "increment" the parent algebra's prefix, although
# this idea goes out the window fast because some prefixen
# are off-limits.
- prefixen = [ 'f', 'g', 'h', 'a', 'b', 'c', 'd' ]
+ prefixen = ["b","c","d","e","f","g","h","l","m"]
try:
prefix = prefixen[prefixen.index(self._superalgebra.prefix()) + 1]
except ValueError:
super().__init__(matrix_basis,
jordan_product,
inner_product,
+ field=field,
prefix=prefix,
**kwargs)
....: [1,0,0] ])
sage: x = J(X)
sage: basis = ( x, x^2 ) # x^2 is the identity matrix
- sage: K = FiniteDimensionalEJASubalgebra(J, basis, orthonormalize=False)
+ sage: K = FiniteDimensionalEJASubalgebra(J,
+ ....: basis,
+ ....: associative=True,
+ ....: orthonormalize=False)
sage: K(J.one())
- f1
+ c1
sage: K(J.one() + x)
- f0 + f1
+ c0 + c1
::