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.


Reply via email to