Hi! 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.
So, I'm seeking advice how to fit my experimental code with #12630. 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"? 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. 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? 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)? Best regards, Simon -- 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.