I work with the computer algebra system GAP in this question. Let $K$ be a field (for example the rational numbers). I have a set $W$ consisting of sets of vectors basis of $K^n$ that only have entries 0 and 1 (but not all of them). Here a concrete example for $n=3$: $W$ is given as
[ [ [ 0, 1, 0 ], [ 1, 1, 1 ], [ 0, 0, 1 ] ], [ [ 0, 1, 0 ], [ 1, 1, 1 ], [ 0, 1, 1 ] ], [ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ], [ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 1, 1 ] ],
[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 1, 1, 1 ] ], [ [ 1, 0, 0 ], [ 0, 1, 1 ], [ 0, 0, 1 ] ], [ [ 1, 0, 0 ], [ 1, 1, 0 ], [ 0, 0, 1 ] ], [ [ 1, 0, 0 ], [ 1, 1, 0 ], [ 0, 1, 1 ] ],
[ [ 1, 0, 0 ], [ 1, 1, 0 ], [ 1, 1, 1 ] ], [ [ 1, 0, 0 ], [ 1, 1, 1 ], [ 0, 0, 1 ] ], [ [ 1, 1, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ], [ [ 1, 1, 0 ], [ 0, 1, 0 ], [ 0, 1, 1 ] ],
[ [ 1, 1, 0 ], [ 0, 1, 0 ], [ 1, 1, 1 ] ], [ [ 1, 1, 0 ], [ 0, 1, 1 ], [ 0, 0, 1 ] ], [ [ 1, 1, 0 ], [ 1, 1, 1 ], [ 0, 1, 1 ] ], [ [ 1, 1, 1 ], [ 0, 1, 1 ], [ 0, 0, 1 ] ] ]
Here the list $W$ has 16 entries and the different vectors that can appear in a list of $W$ are [1,0,0],[0,1,0],[0,0,1],[1,1,0],[0,1,1],[1,1,1].
Now I have an operator $M$ that cyclically shifts each entry of such a 0,1-vector to the right. So here $M$ sends:
-[1,0,0] to [0,1,0]
-[0,1,0] to [0,0,1]
-[0,0,1] to [1,0,0]
-[1,1,0] to [0,1,1]
-[0,1,1] to [1,1,0]
-[1,1,1] to [1,1,1]
Then $M$ also acts on $W$ by sending a basis element $[w_1,w_2,w_3]$ to $[Mw_1,Mw_2,Mw_3]$.
Thus for example a basis looks like [ [ 0, 1, 0 ], [ 1, 1, 1 ], [ 0, 0, 1 ] ]. But here it is important that the order of the elements in the basis does no matter, so [ [ 0, 1, 0 ], [ 1, 1, 1 ], [ 0, 0, 1 ] ] should be identified with [ [ 1, 1, 1 ], [ 0, 0, 1 ],[ 0, 1, 0 ] ] for example.
Question: Is there an easy way to define this action in GAP so that it also generalises to higher $n$? How do I find the orbits of the action of $M$ on the set $W$ using GAP?
In this example there are 5 orbits. For example the orbit of [ [ 0, 1, 0 ], [ 1, 1, 1 ], [ 0, 0, 1 ] ] is given by the 2 other elements of $W$ [[0,1,0],[0,1,1],[1,1,1]] and [[0,0,1],[1,1,0],[1,1,1]].
Thanks for any help!
Since the action is (clarified in comments) by moving the block of 1's, the acting group is probably easiest a free group on one generator, and we need to implement our own function for the action of the operator $M$:
Based on this we also implement an action on sets:
In your example (transforming the elements off $W$ into sets [= sorted lists] first) we now get: