Dear Simon,

On Mon, Apr 29, 2013 at 11:38:38AM +0000, Simon King wrote:
> Currently, I try to resume writing code for modules over finite
> dimensional path algebra quotients. At #12630, Jim Stark proposes some
> code that apparently has a non-empty intersection with what I need, but
> much of it is orthogonal.

I am glad to see your efforts converging!

> Jim's code is for acyclic quivers only, but, as he writes, most of it
> would work with cycles as well. He provides path algebras, but he does
> not provide the algebraic structure that is formed by the paths in a
> quiver subject to concatenation: His quivers are implemented as a
> sub-class of DiGraph, but do not inherit from Parent.
> 
> First question: Would you agree that a quiver should be identified with
> the algebraic structure formed by "paths with concatenation"? Or should
> "quiver as a digraph" be kept separate from "quiver as an algebraic
> structure"?

I would tend to keep them separate; a quiver and its sets of paths are
different mathematical objects. It would be weird to ask for:

        sage: path in quiver

whereas this is natural:

        sage: path in quiver.paths()

> Second question: How do we call this structure? It is not a monoid, unless
> there is a single vertex (it has idempotents corresponding to its vertices),
> If it has more than one vertex, then it contains a zero element that one
> obtains when concatenating paths that do not match.
> 
> Florent suggested to call it "monoidoid". Because of multiple idempotents,
> I could imagine "multimonoid". But of course, we could just describe it
> as an associative magma.

>From "http://en.wikipedia.org/wiki/Groupoid"; this would be a
semicategory :-)

> Third question: Do you think we should create categories of "associative
> magmas" and of "associative additive magmas", fitting them between
> (additive) magmas and (additive) monoids?

Yes. Actually my functorial construction patch creates those two
categories.

In fact, with this patch it would be easy to add a new Totality axiom
and a "SetsWithPartialMultiplication" category (appropriate name to be
found), and then we could get all the possible combinations; something
like:

        sage: SetsWithPartialMultiplication()
        Category of sets with a partial multiplication

        sage: SetsWithPartialMultiplication().Total()
        Category of Magmas

        sage: SetsWithPartialMultiplication().Associative().Inverse()
        Category of groupoids

        sage: SetsWithPartialMultiplication().Associative()
        Category of sets with a partial associative multiplication

Finishing this patch is on the top of my list starting from next week
when the semester here will be over. But it's pretty large and has a
some dependencies, so I can't make any timeline promise. The one good
thing is that most dependencies are on patches that we are already
working on together anyway :-)

Question: can you afford this dependency, or alternatively cheat
temporarily and use the semigroup/monoid category for now?

> Fourth question: How to organise the work?
> - Shall the new categories be provided on #12630 or on a new ticket,
>   which #12630 will be made dependent on?
> - Since all its tests pass, shall #12630 go in first? I.e., shall
>   quivers as algebraic structures be introduced on a new ticket that
>   depends on #12630?
> - Or shall quivers as algebraic structure already be introduced at #12630?
>   Note that #12630 does have a class for paths, but they are not elements
>   of a parent yet. So, I could imagine to modify #12630 accordingly.
> - Do you agree that an improvement of efficiency should be addressed
>   after establishing the quiver as algebraic structure (after all,
>   premature optimization is the root of all evil)? Or should one try to
>   implement "paths with concatenation" in Cython right away (the current
>   code at #12630 is python)?

Incremental is good. I think the task at hand is pretty large, so if
there is a natural way to split it into smaller tickets, go ahead.

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 unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to