Obliczanie orbit klas sprzężonych w GAP.

Aug 16 2020

Mam grupę rozszerzeń $G=N{.}Q$ , $N$nonabelian. Jak obliczyć orbity$Q$ na klasach koniugacji $N$w GAP? Na przykład weź G =$S_5=A_5{:}2$. Wejście Gap „Orbits$(2,A_5)$ da 33 orbity $C_2$ na elementach $A_5$. Jak obliczyć orbity$C_2$ na zajęciach $A_5$ w GAP?

Odpowiedzi

2 ahulpke Aug 16 2020 at 15:58

Zakładając, że masz grupę $G$ podane konkretnie z normalną podgrupą $N$, możesz to zrobić, definiując własną funkcję dla akcji (takie funkcje zawsze przyjmują element $\omega$ domeny i element grupy $g$ i wróć $\omega^g$:

OnConjugacyClasses:=function(class,g)
  return ConjugacyClass(ActingDomain(class),Representative(class)^g);
end;

Dzięki temu możesz normalnie obliczyć orbity. W twoim przykładzie:

gap> G:=SymmetricGroup(5);;
gap> N:=DerivedSubgroup(G);;
gap> cl:=ConjugacyClasses(N);
[ ()^G, (1,2)(3,4)^G, (1,2,3)^G, (1,2,3,4,5)^G, (1,2,3,5,4)^G ]
gap> OrbitsDomain(G,cl,OnConjugacyClasses);
[ [ ()^G ], [ (1,2)(3,4)^G ], [ (1,2,3)^G ], [ (1,2,3,4,5)^G, (1,2,3,5,4)^G ]
 ]

Jeśli spróbujesz w przypadku większych grup, szybsze może być również przesłanie informacji o centralizatorze przedstawiciela, jeśli jest znany:

OnConjugacyClasses:=function(class,g)
local cl;
  cl:=ConjugacyClass(ActingDomain(class),Representative(class)^g);
  if HasStabilizerOfExternalSet(class) then
    SetStabilizerOfExternalSet(cl,StabilizerOfExternalSet(class)^g);
  fi;
  return cl;
end;