# Orbits on group actions acting on sets

Hello!

I am wondering how to solve the following problem efficiently.

I have a Permuation Group $G$ acting on $A = {1,\ldots,n}$ and I wish to compute the orbits of $G$ but not the ones of $G$ acting on $A$ but rather for $G$ acting on some $S \subseteq A \times A$ in the natural way. That is if $g \in G$ and $x = {a,b} \in S$ then $x^g = {a^g,b^g} \in S$

Other software for permuation groups (magma, gap) allows to do this by specifing an additional option "on sets/on tuples" to compute the specifed orbits.

I am wondering how could I do the same in sage, given a permuation group $G$ and an $S$ as described above.

Thanks!

edit retag close merge delete

Are you saying that you want the orbits of $G$ on $A\times A$ ? Such orbits are usually called orbitals. GAP can do this for you, e.g. using its package called GRAPE.

( 2012-12-26 11:49:51 +0200 )edit

But can it be directly done in sage?

( 2012-12-27 06:15:39 +0200 )edit

I've written the answer below :)

( 2013-01-18 00:59:37 +0200 )edit

Sort by ยป oldest newest most voted

In a way, everything which is possible in GAP is also possible in Sage, as Sage starts up a GAP subprocess and communicates with it. So you need not have Sage bindings for every GAP function. E.g. you can do

sage: g=SymmetricGroup(7)
sage: gap("Orbits("+str(g._gap_())+","+str(tuples([1..7],2))+",OnTuples)")
[ [ [ 1, 1 ], [ 2, 2 ], [ 3, 3 ], [ 4, 4 ], [ 5, 5 ], [ 6, 6 ], [ 7, 7 ] ],
[ [ 1, 2 ], [ 2, 3 ], [ 2, 1 ], [ 3, 4 ], [ 1, 3 ], [ 3, 2 ], [ 4, 5 ],
[ 2, 4 ], [ 4, 3 ], [ 3, 1 ], [ 5, 6 ], [ 3, 5 ], [ 1, 4 ], [ 5, 4 ],
[ 4, 2 ], [ 6, 7 ], [ 4, 6 ], [ 2, 5 ], [ 6, 5 ], [ 5, 3 ], [ 4, 1 ],
[ 7, 1 ], [ 5, 7 ], [ 3, 6 ], [ 1, 5 ], [ 7, 6 ], [ 6, 4 ], [ 5, 2 ],
[ 7, 2 ], [ 6, 1 ], [ 4, 7 ], [ 2, 6 ], [ 1, 7 ], [ 7, 5 ], [ 6, 3 ],
[ 5, 1 ], [ 6, 2 ], [ 3, 7 ], [ 1, 6 ], [ 2, 7 ], [ 7, 4 ], [ 7, 3 ] ] ]


sage: g=libgap.SymmetricGroup(7)
sage: g.Orbits(tuples([1..7],2),libgap.OnTuples)
[ [ [ 1, 1 ], [ 2, 2 ], [ 3, 3 ], [ 4, 4 ], [ 5, 5 ], [ 6, 6 ], [ 7, 7 ] ], [ [ 1, 2 ], [ 2, 3 ], [ 2, 1 ], [ 3, 4 ], [ 1, 3 ], [ 3, 2 ], [ 4, 5 ], [ 2, 4 ], [ 4, 3 ], [ 3, 1 ], [ 5, 6 ], [ 3, 5 ], [ 1, 4 ], [ 5, 4 ], [ 4, 2 ], [ 6, 7 ], [ 4, 6 ], [ 2, 5 ], [ 6, 5 ], [ 5, 3 ], [ 4, 1 ], [ 7, 1 ], [ 5, 7 ], [ 3, 6 ], [ 1, 5 ], [ 7, 6 ], [ 6, 4 ], [ 5, 2 ], [ 7, 2 ], [ 6, 1 ], [ 4, 7 ], [ 2, 6 ], [ 1, 7 ], [ 7, 5 ], [ 6, 3 ], [ 5, 1 ], [ 6, 2 ], [ 3, 7 ], [ 1, 6 ], [ 2, 7 ], [ 7, 4 ], [ 7, 3 ] ] ]

more

This doesn't work in Sage 8.9. How would one do this now?

( 2019-12-15 21:23:38 +0200 )edit
1

I've edited the answer to indicate this.

( 2020-01-14 17:52:50 +0200 )edit