Nice catch Dima! This functionality is nice, although I think a competent programmer in Sage/Python realizes that the object (1,2) is a bit too vague/polymorphic. It DOES have a use in at least helping explain the theory though. The following example is a small demonstration. I'm simply using text strings as cycles/tuples. I don't need to cast those as actual sets/permutations/tuples for this example, and I suppose I'd question taking the underlying code that far in general.
Example: Consider the symmetric group $S_3$. The action that most are familiar with is the natural action of degree 3. Call that $G$. Another action is the (right) regular action of $S_3$ acting on itself. We label the six group elements with strings as follows: '()', '(1,2)', '(1,3)', '(2,3)', '(1,2,3)', '(1,3,2)'. It may be easier to think of these elements as being labeled by letters for now. We'll use '()'=a, '(1,2)'=b, '(1,3)'=c, '(2,3)'=d, '(1,2,3)'=e, '(1,3,2)'=f For instance, we have a*b=a and c*d=e, and one could write out the entire multiplication table as a 6x6 array. Now, in the regular action, we're looking at a group that permutes the group elements themselves ... which is a bit meta ... but it is generated by (if you don't see where I'm getting this from, you may want to draw our the multiplication table) a two-cycle and a three-cycle: (a,b)(c,f)(d,e) and (a,e,f)(b,c,d). Written in the original cycle strings, those generators are: ('()','(1,2)')('(1,3)','(1,3,2)')('(2,3)','(1,2,3)') and ('()','(1,2,3)','(1,3,2)')('(1,2)','(1,3)','(2,3)') Coding that in Sage... G=PermutationGroup([[('()','(1,2)'),('(1,3)','(1,3,2)'),('(2,3)','(1,2,3)')],[('()','(1,2,3)','(1,3,2)'),('(1,2)','(1,3)','(2,3)')]]) G.is_isomorphic(SymmetricGroup(3)) True So, we have a degree 6 representation of $S_3$. In fact, we can go further. Let's place the degree 6 regular representation in a fully diagonal subdirect product with the natural action. I'll use letters here instead of the ugly strings. G=PermutationGroup([[('a','b'),('c','f'),('d','e'),(1,2)],[('a','e','f'),('b','c','d'),(1,2,3)]]) G.degree() 9 G.is_isomorphic(SymmetricGroup(3)) True Interestingly, this subdirect product that I just formed is a small example of a permutation group having two different length minimal nonredundant bases. (The regular representation always has a single base element, while the natural representation of the symmetric group has a degree-1 minimal nonredundant base.) Try finding such a small example in the literature. I really caution group theorists to stop thinking of permutation group elements as being things like (1,2). As tom d hinted at, that is an action. Permutation groups are better understood as abstract groups acting on a domain, and we only ever have access to the action ... and the worst part of it all is that the same abstract group can induce infinitely many different actions. $S_4$ acting in rotations on the cube is another good example of this. Jason On Mon, Mar 25, 2013 at 1:33 AM, tom d <sdent...@gmail.com> wrote: > Hm, wouldn't this just be a direct product of the individual group > actions? It seems to me that we're expecting the permutations to act > according to an 'obvious' group action. Should we also expect 'obvious' > actions of things like a dihedral group when given a 2-dimensional vector? > Probably the answer is to generalize and build up a proper group actions > category (with obvious methods passing to representations!). > > It looks like there's a bare semblance of a glimmer of the idea of actions > in Sage: > > http://combinat.sagemath.org/doc/reference/categories/sage/categories/action.html > but it's not very fleshed out.... > > One way to deal with the problem at hand would be to define a direct > product of group actions and behave/coerce accordingly. This could look > something like: > 1) Look at the list of things the permutation is supposed to be acting on, > like [1, Set([1,2])] > 2) Build a group action parent for each of the components, which we then > use to build a direct product parent > 3) Return the appropriate element of the direct product. > > Such a framework would have the advantage of being there to deal with > similar problems in other groups. > > cheers! > > > > On Friday, March 22, 2013 4:43:18 PM UTC+3, Volker Braun wrote: >> >> I think its unambiguous to define the orbit of x recursively as >> 1. use the action on domain elements if x is a domain element >> 2. otherwise, assume that the x is a list/set/... of domain elements >> >> >> >> On Thursday, March 21, 2013 3:10:38 PM UTC+1, Dima Pasechnik wrote: >>> >>> While working on >>> http://trac.sagemath.org/sage_**trac/ticket/14291<http://trac.sagemath.org/sage_trac/ticket/14291>, >>> it >>> came to my attention that one can now have permutation groups acting >>> on quite arbitrary domains (the only requirement for the domain elements >>> seems to be them being hashable). >>> >>> This leads to the following kind of confusing situations: >>> suppose our permutation group G acts on, say, (1,2,3,4,(1,2),(2,3)). >>> Then things like "the orbit (1,2) under G" can be interpreted in two >>> different incompatible ways: >>> * the images under G of the pair of domain elements 1 and 2. >>> * the images under G of of the domain element (1,2). >>> >>> I can see two ways to remedy this: >>> 1) a framework with parents, etc >>> 2) "boxing" the most "primitive" elements of the domain, i.e. >>> as in our example, using ((1),(2),(3),(4),(1,2),(2,3)) instead of >>> (1,2,3,4,(1,2),(2,3)); then certainly ((1),(2)) and (1,2) are >>> different things, problem solved. >>> >>> (and certainly you can tell me that actually it's OK as it is... :)) >>> >>> IMHO, 2) is relatively easy to put into place, and 1) is tricky and >>> quite a bit of >>> work. >>> >>> Dima >>> >>> -- > 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-de...@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. > > > -- Jason B. Hill http://www.jasonbhill.com | ja...@jasonbhill.com -- 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 http://groups.google.com/group/sage-devel?hl=en. For more options, visit https://groups.google.com/groups/opt_out.