Hi all, I hope I summarise the discussion correctly:
- There is no mathematical difference between a quiver and a digraph. Hence, there will be no separate sub-class "Quiver" of "DiGraph". - 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. - A QuiverMonoid M is *not* a DiGraph. Of course, it can return the underlying quiver by M.quiver(), and M is uniquely determined by M.quiver(). The last point gives rise to a question: Is there a way to make a DiGraph immutable, so that it can be used as a cache key, and so that we can store the quiver as an attribute of QuiverMonoid? Jim constructs a class Quiver as a sub-class of DiGraph and makes its instances immutable, by overriding all self-changing methods on the level of the instance (not on the level of the class, because these methods are needed during initialisation). I think it would be much better to use sage.structure.mutability.Mutability on the level of DiGraph. Actually I'd be surprised if there'd be no patch for it yet. Nathann, what's the ticket number :) ? Best regards, Simon -- You received this message because you are subscribed to the Google Groups "sage-combinat-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-combinat-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-combinat-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en. For more options, visit https://groups.google.com/groups/opt_out.