#12630: Add representations of quivers and quiver algebras to sage
-------------------------------------+-------------------------------------
       Reporter:  JStarx             |        Owner:  AlexGhitza
           Type:  enhancement        |       Status:  needs_review
       Priority:  major              |    Milestone:  sage-6.2
      Component:  algebra            |   Resolution:
       Keywords:  algebra, quiver,   |    Merged in:
  module, days49                     |    Reviewers:  Simon King
        Authors:  Jim Stark, Simon   |  Work issues:
  King, Mathieu Guay-Paquet, Aladin  |       Commit:
  Virmaux                            |  dc973b43b0e24a8fc1c7446d296c743f9b9c630f
Report Upstream:  N/A                |     Stopgaps:
         Branch:                     |
  u/SimonKing/ticket/12630           |
   Dependencies:  #12412, #12413,    |
  #14806, #15491, #15623, #15810     |
-------------------------------------+-------------------------------------
Changes (by SimonKing):

 * status:  needs_work => needs_review


Comment:

 With the new branch, all tests should pass.

 The changes with respect to the previous state:

 - I have removed the `Quiver` class. Rationale: Mathematically, a quiver
 is a multi-digraph. We need it to be immutable, but meanwhile Sage
 provides immutable digraphs. So, we can use `DiGraph` as entry point for
 the code: `DiGraph.path_semigroup()` returns the partial semigroup formed
 by the paths of the quiver, subject to concatenation.
 - Following some discussion with people, `free small category` is now
 called `path semigroup`, which seems clearer to the experts. Technically
 (with multiple vertices) it only is a partial semigroup, but there
 currently is no category of partial semigroups, and I think it would be
 splitting hairs to ''not'' use the category of semigroups for it.
 - Jim (the original author) has not commented since a long time, hence, I
 hope it is not too much of a problem that I renamed one central notion: I
 believe "path algebra" is more commonly used than "quiver algebra".
 - For reasons discussed above, it is better to not have an "invalid path".
 Hence, if we now provide invalid data to the constructor, then an error is
 raised. If we try to multiply paths that can't be concatenated, then
 "None" is returned, according to advice of Nicolas.

 I believe this ticket is now ready for review (again). From my
 perspective, the organisation of the code makes sense (no distinction of
 digraph and quiver, paths are put into a separate module that will later
 be cythonised, representations respectively path algebras are put into
 separate modules, too, and the coercion framework is implemented).

 The reviewer should please have a look at the documentation. I have put
 some documentation into `__init__.py`, which is hopefully the right thing
 to do to document a module that has sub-modules.

 To be done in a follow-up ticket: The current code certainly is too slow.
 I have some preliminary faster Cython code that I plan to rebase on top of
 this branch. This should then also provide Gröbner bases for modules over
 path algebra quotients---specifically an F5 algorithm (in my latest
 article, I prove that F5 can compute Loewy layers for modules over basic
 algebras).

--
Ticket URL: <http://trac.sagemath.org/ticket/12630#comment:188>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to