#16453: Cythonize quiver paths
-------------------------------------+-------------------------------------
Reporter: SimonKing | Owner:
Type: enhancement | Status: needs_info
Priority: major | Milestone: sage-6.4
Component: algebra | Resolution:
Keywords: | Merged in:
Authors: Simon King | Reviewers:
Report Upstream: N/A | Work issues:
Branch: | Commit:
public/ticket/16453 | 9d56888d08c500f692116354e5ba0f498a84c6d0
Dependencies: #15820 #17564 | Stopgaps:
-------------------------------------+-------------------------------------
Comment (by vdelecroix):
Hi again,
Replying to [comment:94 SimonKing]:
> Replying to [comment:93 vdelecroix]:
> > These paths have more applications than quivers (e.g.
[https://github.com/coulbois/sage-train-track train-tracks for free group
automorphisms]). Could you move it from `src.sage.quivers` to
`sage.graphs`?
>
> `sage.graphs` is quite large already, that's why I created the new
module `sage.quivers`, for everything that implements representation
theoretic aspects of directed multigraphs.
>
> I could imagine to use cythonized path algebra elements (see #17435) to
provide a better implementation of free associative algebras, but a
potential application is no reason to move the code, IMHO.
>
> Do you really need oriented paths for train tracks? Or do you rather
need sequences of integers to implement train tracks? If the integers are
subject to a global bound, then see
`sage.data_structures.bounded_integer_sequences`.
Yes, I really mean oriented paths. And also (di)graph maps, that is
function that maps edges to paths. These are not at all quiver morphisms
as they are defined in wikipedia.
> > And also remove the name 'quivers' from there.. why not `GraphPaths`?
>
> Most people understand "graph" as a non-directed graph. But we are
talking here about objects for which orientation is absolutely essential.
The original Python code for quivers and their representation had to make
a difference between two different notions of paths in a graph, one being
a sequence of vertices, the other being a sequence of edges. `QuiverPaths`
is about paths as sequences of ''directed'' edges.
Then `DiGraphPaths`? If you say `Quiver` in a talk on Geometric Group
Theory to talk about train-track, I bet that the public would be quite
surprised.
> When developing the current Python code for quiver representations,
there was some discussion about terminology. "Quiver" is a well-
established mathematical notion, so, good to use. It is the same as multi-
digraph, but is a shorter word. It seems that the decision was to use
"`DiGraph`" in Sage to denote the mere directed graph, whereas one uses
"`Quiver`" when one considers the directed graph as an algebraic object.
I see. But Quiver for me already denotes representation theory (you should
agree with me since you said "`sage.quiver` for everything that implements
representation theoretic aspects of directed multigraphs" and Wikipedia as
well).
> While it may be acceptable to replace the word "Quiver" by "`DiGraph`",
it can certainly not be replaced by the word "Graph". Hence, changing
`QuiverPath` into `GraphPath` would be misleading. I am against that
change.
All right, I understand. But `DiGraphPath`? My concern is that if Thierry
did not mentioned to me your previous ticket about sequences of bounded
integers I would never have found it.
> > Actually, for train track automorphisms one needs the groupoid of
paths (that is authorize to take edges in reversed direction). As far as I
understand, it is different from yours. Do you have an idea for a
compatible terminology?
>
> Well, the current terminology for the algebraic object formed by the
oriented paths in a multi-digraph subject to concatenation is "path
semigroup", and thus the terminology for your groupoid of invertible paths
would naturally be "path groupoid", isn't it?
It is. But I do not want to have it in `src.sage.quivers` and it would be
logical to have it close to implementation of the path semigroup (and they
will surely share some of their features).
I would be happy to finish the review of this ticket, but I want it to be
a starting point for the path groupoid as well.
Vincent
--
Ticket URL: <http://trac.sagemath.org/ticket/16453#comment:95>
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/d/optout.