On Sunday, January 8, 2017 at 3:43:27 AM UTC-5, Travis Scrimshaw wrote: > > Hey Joe, > Sorry for the delayed response (I've been traveling the past few days). >> >> >> Sorry for posting and then disappearing for a bit. Thanks for your >> answers. I will be very happy to have your help with the project to the >> extent that you have time, and even just any quick suggestions and advice. >> > > Just cc "tscrim" on the tickets, and I will help when and where I can. > >> >> My thinking was to do something that would cover arbitrary split >> connected reductive algebraic groups using their classification by root >> data, and associated presentations. For this one needs cases where the >> character lattice is neither the root lattice nor the weight lattice. Maybe >> something in between (like SO(n)) maybe something of higher rank (Like >> GL(n), similitude groups, GSpin groups). >> > > I think we should create classes for the character lattices similar to the > root and weight lattices as I suspect a number of those methods could be > lifted (or generalized to a common base class). >
sounds reasonable. I trust your judgement. > >> It's not clear that this desire to do something general is that well >> grounded in practical applications. In my old java project I implemented >> only the five simply connected exceptional groups and mostly got by just >> fine. Still, that was the idea. I noticed that reductive Kac-Moody groups >> have a similar classification (and presentations) with root data. >> > > Somewhat of a side question, but how much of your java code do you think > is portable to Sage (or C++ that we can create bindings to with Cython)? > Not sure. Actually, at risk of exposing my ignorance, let me just admit that I'm not sure what "portable" means here. > >> So, I think the implementation of root and weight lattices for a root >> system is a good source of ideas but would be directly applicable only to >> simply connected/adjoint semisimple groups. >> > > Essentially, I would say the character lattice should generalize the > behaviors of the root and weight lattices. So they should be simple to > implement. > >> >> My thinking was that a based root datum can be easily passed as a pair of >> matrices A,B. The rows of A represent the simple roots in terms of some >> basis for the character lattice, and the rows of B represent the simple >> coroots in terms of the dual basis of the cocharacter lattice. (One has to >> work out the equivalence relation on matrix pairs that corresponds to >> isomorphism of algebraic groups, but it's not too hard.) At that point one >> has to choose bases for the two lattices in order to specify the object, so >> they get an identification with ZZ^r essentially for free. Working out the >> matrices for the two W-actions of simple reflections on ZZ^r from A and B >> is pretty easy too. >> > > We probably could associate this to some simple data like a group > classification (or perhaps the groups themselves) for both ease of use and > to help make sure the user data is consistent. Perhaps maybe we should > restrict ourselves to some "good" class of groups, at least for an initial > implementation. Although for full disclosure, I am slightly beyond my > knowledge for more general algebraic groups as I primarily focus on > (symmetrizable complex) Kac-Moody Lie algebras. So I am going to have to > rely a bit on you for some of the more technical points. > Indeed. In the *finite dimensional* case, if we want a one-to-one correspondence between root data and groups, what we want to do is take *split* *connected *groups. I would start with those. I think that in the finite dimensional case, one knows how to attach additional data which distinguishes nonisomorphic groups with the same root datum, but I don't know the details. In the infinite dimensional case, I don't honestly know whether the classification problem is solved over general fields. But we have a split group attached to a root datum and a presentation for it given in a paper of Tits. Long story short my thinking is to start with split connected groups such that the Cartan matrix is positive definite and build out from there. >> One thing I noticed is: it appears that the root and weight lattices are >> implemented as ZZ-modules with a method .weyl_action, but not as >> ZZ[W]-modules. Is there a reason for this choice? Naively, I thought "well, >> what I have has the structure of a ZZ[W]-module so I guess I should >> implement that structure." But you're both more experienced with Sage. >> > > This should be easy to implement by using an _acted_upon_ that handles the > W action by sending it to weyl_action. So this should not be too difficult > to do. I suspect the reason this wasn't done was because it wasn't > originally done in the MuPAD code or perhaps when they were implemented, > actions weren't as well developed as they currently are. There might be a > small technical issue with left vs. right actions, but I think we can > easily work around it. Nicolas, any comments on this? > >> >> I had been thinking to try to write something general which would take, >> as input, a finitely presented group and a tuple of square integer matrices >> of the same size. It would then check that mapping the generators in the >> presentation to the matrices in order extends to a representation of the >> group, i.e., to a ZZ[W]-module structure on ZZ^r for the relevant value of >> r. Having done this checking it would then return that ZZ[W]-module. I >> don't know whether that sounds like a good/bad approach to either of you. >> >> I think this thing would be a great way to create representations in > general (something Sage sorely lacks). I have some code that constructed > representations in a slightly different way, see: > > sage: S = SymmetricGroup(4) > sage: R = S.regular_representation() > > However, I tried to make it somewhat general to be adapted to other uses. > So perhaps you can start with that. The other thought that comes to my mind > is to extend MatrixGroup. > > Thanks. I'll try to have a look. Best, Joe Best, > Travis > > > -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.