from sage.matrix.constructor import matrix
-from mjo.eja.eja_algebra import FiniteDimensionalEJA
-from mjo.eja.eja_element import FiniteDimensionalEJAElement
+from sage.combinat.free_module import CombinatorialFreeModule_CartesianProduct
+
+from mjo.eja.eja_algebra import (CartesianProductEJA,
+ FiniteDimensionalEJA)
+from mjo.eja.eja_element import (CartesianProductEJAElement,
+ FiniteDimensionalEJAElement)
class FiniteDimensionalEJASubalgebraElement(FiniteDimensionalEJAElement):
"""
Element = FiniteDimensionalEJASubalgebraElement
+
+
+
+class CartesianProductEJASubalgebraElement(CartesianProductEJAElement,
+ FiniteDimensionalEJASubalgebraElement):
+ pass
+
+class CartesianProductEJASubalgebra(CartesianProductEJA,
+ FiniteDimensionalEJASubalgebra):
+
+ def __init__(self, superalgebra, basis, **kwargs):
+ CombinatorialFreeModule_CartesianProduct.__init__(self,
+ superalgebra.cartesian_factors())
+ FiniteDimensionalEJASubalgebra.__init__(self,
+ superalgebra,
+ basis,
+ cartesian_product=True,
+ **kwargs)
+
+
+ Element = CartesianProductEJASubalgebraElement