3
$\begingroup$

When going through a list of elements, GroupOrbits usually recognises if the orbit of an element has been calculated already and will skip it in that case to avoid repetitions. For example,

GroupOrbits[SymmetricGroup[2],{1}] == GroupOrbits[SymmetricGroup[2],{1,2}]

will result in True (because 2 is in the orbit of 1).

However, if I define

a = {{1,1},{1,2}}
b = {{2,1},{2,2}}

the sets GroupOrbits[SymmetricGroup[2],{a}] and GroupOrbits[SymmetricGroup[2],{b}] are practically the same (as sets, in mathematical notation: {(1,1),(1,2)}={(1,2),(1,1)} etc.), but aren't treated as the same by Mathematica. How can I achieve that the output of GroupOrbits[SymmetricGroup[2],{a,b}] doesn't add one more orbit?

Secondary question: How does Mathematica handle an input of the form {...}? As a list, as a tuple, or as a set? And how can all these types be distinguished? For example, If I have a list or a tuple, how can I pass it to Mathematica as a set (and the other way round)?

$\endgroup$
3
  • $\begingroup$ Is there a reason you're not doing just GroupOrbits[SymmetricGroup[2], a] (without the curly braces)? Because in that case the two yield the same result. $\endgroup$
    – march
    Commented May 16, 2022 at 16:42
  • $\begingroup$ Yes, I want the orbit of {{1,1},{1,2}} (as a set), not the respective orbits of the two elements {1,1} and {1,2}. $\endgroup$
    – Thrash
    Commented May 16, 2022 at 16:48
  • $\begingroup$ Instead of b, I could of course write ReverseSort@b, that is GroupOrbits[SymmetricGroup[2],{a,ReverseSort@b}], but this requires the knowledge of b. It would be nice to have that done automatically because the above example is just a minimal example. $\endgroup$
    – Thrash
    Commented May 16, 2022 at 17:01

1 Answer 1

1
$\begingroup$

You have nested braces. The inner braces {...} does not mean sets, but vectors. Group is acting on the set of vectors (component-wise). For example,

GroupOrbits[CyclicGroup[3], {{1, 1}}]

(* {{{1, 1}, {2, 2}, {3, 3}}} *)

but

GroupOrbits[CyclicGroup[3], {{1, 10}}]

(* {{{1, 10}, {2, 10}, {3, 10}}} *)

In other words, the orbit is obtained by repeated application of /.{1->2,2->3,3->1}.

In your case, a = {{1, 1}, {1, 2}}; b = {{2, 1}, {2, 2}}; are interpreted as 2x2 matrices, and in this four dimensional space, orbit of a is

GroupOrbits[SymmetricGroup[2], {a}]

(* {{{{1, 1}, {1, 2}}, {{2, 2}, {2, 1}}}} *)

Note that the latter 2x2 matrix is obtained from the former by /.{1->2,2->1}. Similarly, the orbit of b is

GroupOrbits[SymmetricGroup[2], {b}]   

(* {{{{1, 2}, {1, 1}}, {{2, 1}, {2, 2}}}} *).

These two orbits are disjoint in the space of 2x2 matrices, so GroupOrbits[SymmetricGroup[2], {a, b}] returned disjoint union of these

(*{{{{1, 1}, {1, 2}}, {{2, 2}, {2, 1}}}, {{{1, 2}, {1, 1}}, {{2, 1}, {2, 2}}}} *)

as it should be.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.