#12630: Add representations of quivers and quiver algebras to sage
-------------------------------------+-------------------------------------
Reporter: JStarx | Owner: AlexGhitza
Type: enhancement | Status: needs_work
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: Fix
King, Mathieu Guay-Paquet, Aladin | QuiverRepElement.__init__
Virmaux | Commit:
Report Upstream: N/A | 50eb7bde26c2a0c688e0500918597591097aa0cb
Branch: | Stopgaps:
public/combinat/quivers |
Dependencies: #12412, #12413, |
#14806, #15491, #15623, #15810 |
-------------------------------------+-------------------------------------
Changes (by SimonKing):
* status: needs_review => needs_work
* work_issues: => Fix QuiverRepElement.__init__
Comment:
Replying to [comment:216 darij]:
> Also, please double-check my edits.
The edits look fine to me. I don't know what to do here:
{{{
#!diff
@@ -1822,6 +1835,8 @@ class QuiverRep_generic(Module):
# TODO: This 'if' shouldn't need to be here, but sage crashes
when
# coercing elements into a quotient that is zero. Once Trac
ticket
# 12413 gets fixed only the else should need to execute.
+ # NOTE: This is no longer necessary. Keep around for speed or
+ # remove? -- darij, 16 Feb 2014
if spaces[e[1]].dimension() == 0:
maps[e] = spaces[e[0]].Hom(spaces[e[1]]).zero_element()
else:
}}}
No idea if it improves speed when keeping it in.
> EDIT: smaller counterexample:
> {{{
> sage: Q = DiGraph({1: {}}).path_semigroup()
> sage: M = Q.I(GF(3), 1)
> sage: m = M.an_element()
> sage: R = M.quotient(M)
> sage: R(M.zero())
> }}}
It seems that either we need an `_element_constructor_` method for
`QuiverRep_generic`, or we need to do something with
`QuiverRepElement.__init__`. Namely, the following works:
{{{
sage: z = R(M.zero()._elems)
sage: z._elems
{1: ()}
sage: M.zero()._elems
{1: (0)}
}}}
And similarly
{{{
sage: m = M.an_element()
sage: R(m)
<HANGS>
sage: R(m._elems)
Element of quiver representation
sage: _._elems
{1: ()}
sage: m._elems
{1: (1)}
}}}
I think according to the specification of a quotient Q of X, it should
always be possible to convert any element of X into Q.
I suggest to do a typetest for the input of `QuiverRepElement.__init__`.
--
Ticket URL: <http://trac.sagemath.org/ticket/12630#comment:217>
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.