On Tue, May 25, 2010 at 11:49:16AM -0700, John H Palmieri wrote:
> If I use another data structure, are there methods that I should make
> sure to implement for it to be a well-implemented
> (Graded)AlgebraWithBasis?

Some day, there will be an example, and the example will have exactly
that minimal set of methods :-)

For the moment, you can also do:

    sage: C = GradedAlgebrasWithBasis(QQ)
    sage: from sage.misc.abstract_method import abstract_methods_of_class
    sage: abstract_methods_of_class(C.element_class)
    {'required': [], 'optional': ['_add_', '_mul_']}
    sage: abstract_methods_of_class(C.parent_class)
    {'required': ['__contains__'], 'optional': ['one_basis', 
'product_on_basis']}

Alas, not all required methods are current marked as abstract methods.

Btw: do you have suggestions for a short mantra for the above that
the developers would have a chance to find by themselves?

        C.abstract_methods() ?

> When I say "an explicit indexing set", I mean explicit from the point
> of view of Sage.  I can give you a mathematically explicit indexing
> set -- ordered partitions satisfying certain explicit conditions --
> but I can't give it as a list or tuple or anything else simple that
> already exists in Sage.  This morning I thought of the possibility of
> implementing a subclass of Partitions and then using that for my
> indexing set; is that feasible?  Maybe that's the right choice.

Yup. But again, ...WithBasis categories are really meant for those
parents where the elements are represented as formal linear
combinations of the basis elements.

> Well, it's actually a quotient of a free algebra, which by itself
> tells you absolutely nothing, since every algebra is such a quotient.
> But I have explicit generators and relations, and there is a
> distinguished collection of words ("admissible" words) in the
> generators which projects to a basis of the quotient algebra, and
> there is a clear procedure for rewriting any word in the generators as
> a sum of basis elements.

Ah ah. Good. Then this sounds like a perfect candidate for being in
the category GradedAlgebrasWithBasis(QQ).Quotients() (at least
eventually, when this concept will be full-featured).

Please:

        sage -combinat install
        sage: C = GradedAlgebrasWithBasis(QQ)
        sage: C.Quotients?
        sage: C.Subquotients?

And try navigating the help from there. Sorry, that's pretty new so
there is only one example, in the context of semigroups.

Cheers,
                                Nicolas
--
Nicolas M. ThiƩry "Isil" <nthi...@users.sf.net>
http://Nicolas.Thiery.name/

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To post to this group, send email to sage-combinat-de...@googlegroups.com.
To unsubscribe from this group, send email to 
sage-combinat-devel+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sage-combinat-devel?hl=en.

Reply via email to