Re: [sage-combinat-devel] Constructing homs
Hi Andrew, On Tue, Dec 04, 2012 at 05:56:31AM -0800, Andrew Mathas wrote: >Good morning! I have been trolling through the manuals trying to >understand how to construct a basis for a hom-space but I keep going >around in circles. Can anyone help me out? > >I have two CombinatorialFreeModules G and H which are modules for some >algebra A. (The algebra A is not implemented in sage, although its action >on G and H is.) The module G is cyclic, generated by z say, so every >homomorphism f:G->H is determined by f(z). The basis of G takes the form >{G(t) = z.psi( t )}, where t runs through a set of tableaux. (In case you >are interested, G and H are Specht modules.) That is, the psi method tells >me how to write G(t)=z*\phi_t so that f(G(t))=f(z).psi(t) as H also has a >psi method. > >I can construct a set of elements {h_1,...,h_d} in H such that the maps >{f_1,,f_d} determined by f_i(z)=h_i, for 1\le i\le d, is a basis for >Hom_A(G,H). > >My questions are: how do I construct the maps f_i in sage and how do I >tell sage that these maps are a basis of Hom_A(G,H)? In short: - For constructing the maps, you can use G.module_morphism. Not that this will only take care of linearity w.r.t. the ground ring. You currently have to handle by hand the fact that its a module over A. - The vector space structure on Hom_A(G,H) (and on Hom_K(G,H) for that matter) is not yet implemented for G and H CombinatorialFreeModules, in particular arithmetic on morphisms and such. Note that it is implemented for Hom_K(G,H) for G,H FreeModules. In theory, the category infrastructure should make it easy to implement such homsets, but in practice the infrastructure is lagging behind (you know who to blame ...). In the mean time, I guess the closest you can get it to build some isomorphic vector space, and a map building morphisms from elements of this vector space. Cheers, Nicolas -- Nicolas M. Thiéry "Isil" http://Nicolas.Thiery.name/ -- You received this message because you are subscribed to the Google Groups "sage-combinat-devel" group. To post to this group, send email to sage-combinat-devel@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
Re: [sage-combinat-devel] Constructing homs
Thanks Nicolas. I appreciate your efforts in putting the category framework in place! It's beginning to grow on me:) Depending how far my explorations go I may end up adding some of the missing pieces... A. -- You received this message because you are subscribed to the Google Groups "sage-combinat-devel" group. To view this discussion on the web visit https://groups.google.com/d/msg/sage-combinat-devel/-/5wsvHl8VwcYJ. To post to this group, send email to sage-combinat-devel@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
Re: [sage-combinat-devel] Constructing homs
On Tue, Dec 04, 2012 at 08:00:57PM -0800, Andrew Mathas wrote: >Thanks Nicolas. I appreciate your efforts in putting the category >framework in place! It's beginning to grow on me:) :-) >Depending how far my explorations go I may end up adding some of >the missing pieces... You would be very welcome! One step that needs to be done at some point, and that is fairly independent from the category framework would be to implement: - Matrices with rows and columns indexed by whatever objects - Morphisms between two finite dimensional free modules G and H (using the above) with arithmetic, ... I.e. the analogue of sage.modules.matrix_morphism.MatrixMorphism. - A parent for those. I.e the analogue of sage.modules.free_module_homspace.HomSpace What would be missing would be the shortcuts so that we could just do Hom(G,H), as well as generic methods that could be shared between. Cheers, Nicolas -- Nicolas M. Thiéry "Isil" http://Nicolas.Thiery.name/ -- You received this message because you are subscribed to the Google Groups "sage-combinat-devel" group. To post to this group, send email to sage-combinat-devel@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
Re: [sage-combinat-devel] Constructing homs
> - Matrices with rows and columns indexed by whatever objects > I have a (very) rough prototype for this as it is one of the things that I need. Rather than matrices, however, I am thinking of making the underlying object just an array/table as for my applications the full matrix is often not known and more entries are added as the calculations proceed whereas matrices are immutable. Perhaps I should finally learn about these cloneable arrays... > > - Morphisms between two finite dimensional free modules G and H (using the > above) > with arithmetic, ... > For what I am doing at the moment the following would be useful: - MorphismOfCombinatorialFreeModule - HomSpaceWthBasis - MorphismFromCyclicModule and graded versions of all of the above. I mainly care about (graded) homs between CombinatorialFreeModules and i f is such a hom, and t indexes a basis element of G then I'd like to have f(t)=f(G(t)). I have a hacked version of this, combining the three "categories" above, for my modules, without that many features. I'll have make this palatable for human consumption before I release this code:) > I.e. the analogue of sage.modules.matrix_morphism.MatrixMorphism. > > - A parent for those. > > I.e the analogue of sage.modules.free_module_homspace.HomSpace > > What would be missing would be the shortcuts so that we could just do > Hom(G,H), as well as generic methods that could be shared between. > I think that I still don't really undestand what Hom(G,H) represents inside sage. Is it simply supposed to be the parent for all homs from G to H? Typically, it seems to me that Hom(G,H) doesn't -- and, in fact, can't -- do very much: if G and H are (free) modules then Hom(G,H) is just a bunch of matrices, which is easy. But if G and H have any extra structure which these homs should preserve then there often won't even be an algorithm for computing Hom(G,H), and in many cases there won't even be a practical algorithm for determining when a linear map belongs to Hom(G,H). So what is Hom(G,H) suppose to do? Andrew -- You received this message because you are subscribed to the Google Groups "sage-combinat-devel" group. To view this discussion on the web visit https://groups.google.com/d/msg/sage-combinat-devel/-/29S9CF9anMwJ. To post to this group, send email to sage-combinat-devel@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.