Dear Vít, On Sun, Oct 06, 2013 at 11:03:38AM -0700, Vít Tuček wrote: > I have implemented an algorithm for computing the minimal representatives > of cosets W/W_S where W is the Weyl group of a Lie algebra and W_S is the > Weyl group of its standard Levi subalgebra corresponding to the set of > simple roots S. These posets have their place well established in the > literature, e.g. they govern nilpotent Lie algebra cohomology of > finite-dimensional modules and homomorphisms of (generalized) Verma > modules. I use my routines for producing illustrations in my work and for > checking theorems in low dimensions. > I would like this code to be included into sage but I am a bit unsure > about the API. Right now I have implemented methods of WeylGroup > class parabolic_bruhat_graph(self, Levi_indices) > and parabolic_poset(self, Levi_indices) which are basically just wrappers > over _minimal_representatives(self,Levi_indices). > Sometimes it is convenient (and is quite common in the literature) to > specify the Levi part by the simple roots which are NOT contained in its > root system. Should this be implemented in the API as well? > On a related note, each standard parabolic subalgebra determines a > (symmetric) grading on the Lie algebra (g = g_{-k} \oplus \cdots g_l) and > any such grading determines a parabolic subalgebra. I have implemented > method for RootSpace which splits the positive roots into the graded > components, i.e. the result is a dictionary {j : g_j } Could this be > included as well?
Thanks for offering to share your code! Just some quick remarks to get started: the minimal representatives themselves are already available for any Coxeter group as "coset_representatives": sage: W = SymmetricGroup(4) sage: WI = W.coset_representatives([1,2], side="right") sage: WI.cardinality() 4 Is the first part of your contribution about those, or about building the bruhat order on those coset representatives? In the later case, are you using "coset_representatives" to get the elements themselves? For the user interface, a natural choice could be to add the feature to the existing bruhat_poset method of FiniteCoxeterGroups: sage: W.bruhat_poset(index_set=[1,2,4]) This would be consistent with the syntax for the quantum_bruhat_graph method of WeylGroups. Here, I am assuming your algorithm work for any (finite) Coxeter group, right? Further comments anyone? For the positive roots: the system already knows that there is a grading: sage: W = CoxeterGroups().example() sage: R = RootSystem(["A",3]).root_lattice() sage: R.positive_roots() <sage.combinat.backtrack.TransitiveIdealGraded instance at 0x7992440> What's really missing is to upgrade TransitiveIdealGraded so that one can easily ask for all elements of a given depth. See also the related ticket http://trac.sagemath.org/ticket/6637. > In some areas of mathematics it is customary to actually draw these posets > with nodes replaced by labelled Dynkin diagrams with nodes not > corresponding to the Levi part crossed. See > e.g. http://arxiv.org/abs/1303.1307 > I haven't looked into graph drawing of sage nor at Dynkin diagrams, but in > case this feature also has a chance to be included in sage I am willing to > try to implement it. It should not be too hard indeed! > I'll post patches as soon as I get properly acquainted with sage > patch & build system. Which is in a state of flux, since we are currently switching development workflow (including a switch from mercurial to git). See: http://trac.sagemath.org/ticket/13015 Cheers, Nicolas -- Nicolas M. Thiéry "Isil" <nthi...@users.sf.net> http://Nicolas.Thiery.name/ -- 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. For more options, visit https://groups.google.com/groups/opt_out.