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.

Reply via email to