When I'm implementing an algebraic structure, for example,
sage: class HadamardR3(CombinatorialFreeModule):
....: def __init__(self):
....: cat = FiniteDimensionalAlgebrasWithBasis(QQ)
....: gens = range(3)
....: super(HadamardR3,self).__init__(QQ,
....: gens,
....: category=cat)
....: def product_on_basis(self,i,j):
....: ei = self.basis()[i].to_vector()
....: ej = self.basis()[j].to_vector()
....: Lei = ei.column()*ei.row()
....: return self.from_vector(Lei*ej)
I get a bunch of categories that I don't expect. These two are OK:
sage: J = HadamardR3()
sage: J.category()
Category of finite dimensional algebras with basis over Rational
Field
sage: J.category().super_categories()
[Category of algebras with basis over Rational Field,
Category of finite dimensional magmatic algebras with basis
over Rational Field]
But where do all these come from?
sage: J.categories()
[Category of finite dimensional algebras with basis over Rational
Field,
Category of algebras with basis over Rational Field,
Category of algebras over Rational Field,
Category of rings,
Category of associative algebras over Rational Field,
...
I'm particularly curious how "associative" gets in there for
non-associative algebras. This leads to things like "J in Rings()"
returning true when "J" isn't a ring, and probably a bunch of nonsense
methods being automatically implemented for the structure.
--
You received this message because you are subscribed to the Google Groups
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/sage-devel/e9d425ed-e0e1-8704-97ca-17a52b8c2de1%40orlitzky.com.