def __init__(self, A, names=None): """ Initialize ``self``. TESTS:: sage: F.<x,y,z> = FreeAlgebra(QQ) sage: J = JordanAlgebra(F) sage: TestSuite(J).run() sage: J.category() Category of commutative unital algebras with basis over Rational Field """ R = A.base_ring() C = MagmaticAlgebras(R) if A not in C.Associative(): raise ValueError("A is not an associative algebra") self._A = A cat = C.Commutative() if A in C.Unital(): cat = cat.Unital() self._no_generic_basering_coercion = True # Remove the preceding line once trac #16492 is fixed # Removing this line will also break some of the input formats, # see trac #16054 if A in C.WithBasis(): cat = cat.WithBasis() if A in C.FiniteDimensional(): cat = cat.FiniteDimensional() Parent.__init__(self, base=R, names=names, category=cat)
def __init__(self, A, names=None): """ Initialize ``self``. TESTS:: sage: F.<x,y,z> = FreeAlgebra(QQ) sage: J = JordanAlgebra(F) sage: TestSuite(J).run() sage: J.category() Category of commutative unital algebras with basis over Rational Field """ R = A.base_ring() C = MagmaticAlgebras(R) if A not in C.Associative(): raise ValueError("A is not an associative algebra") self._A = A cat = C.Commutative() if A in C.Unital(): cat = cat.Unital() if A in C.WithBasis(): cat = cat.WithBasis() if A in C.FiniteDimensional(): cat = cat.FiniteDimensional() Parent.__init__(self, base=R, names=names, category=cat)