#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.