#12630: Add representations of quivers and quiver algebras to sage
-------------------------------------------+--------------------------------
Reporter: JStarx | Owner: AlexGhitza
Type: enhancement | Status: needs_work
Priority: major | Milestone: sage-5.10
Component: algebra | Resolution:
Keywords: algebra, quiver, module | Work issues: Split into
different modules. Use parents and elements.
Report Upstream: N/A | Reviewers:
Authors: Jim Stark | Merged in:
Dependencies: #12412, #12413, #14535 | Stopgaps:
-------------------------------------------+--------------------------------
Changes (by SimonKing):
* status: needs_review => needs_work
* dependencies: #12412, #12413 => #12412, #12413, #14535
* work_issues: => Split into different modules. Use parents and
elements.
Comment:
I suggest to add #14535 as a dependency. It allows to create immutable
graphs.
If I understood correctly,
[https://groups.google.com/forum/?fromgroups=#!topic/sage-combinat-
devel/-oa1YZWikWM sage-combinat-devel] agrees with the following plan:
- There is no mathematical difference between a quiver and a digraph.
Immutable graphs are provided by #14535. Hence, for now, there seems to be
no need for a separate sub-class "Quiver" of "DiGraph". But of course, we
could have a factory, that returns immutable digraphs after checking that
all labels are as we want them.
- How shall we call the algebraic structure formed by the paths in a
quiver? `PathMonoid`? `PathMagma`? `QuiverMonoid`? `QuiverMagma`? All the
algebraic stuff (representations, path algebra, and also list of quiver
paths in contrast to list of paths as a digraph) should be accessible from
there. Methods like "is_sink" should be implemented on `DiGraph`.
- In contrast to Jim's code, `QuiverPath` should be an element, namely an
element of the afore-mentioned algebraic structure.
- We should allow directed cycles and loops where possible. We can
currently only have quiver representations for acyclic quivers. But there
is no reason to restrict `QuiverMonoid` and `QuiverAlgebra` to the acyclic
case.
- "`QuiverMonoid`" should be a unique parent. I suggest using
`UniqueRepresentation`, the key ultimately being an immutable digraph. A
custom `__classcall__` method could accept a broader range of arguments,
that could then be turned into an immutable digraph used as key.
- A `QuiverMonoid` M is ''not'' a `DiGraph`. Of course, it can return the
underlying quiver by `M.quiver()` (which could actually be identical with
the graph used as a key when creating M), and M is uniquely determined by
`M.quiver()`.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/12630#comment:39>
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?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.