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


Reply via email to