Вернуться к списку примеров
Произведения групп в системе GAP
На данной странице помещен сокращенный перевод главы справочного руководства
по системе GAP, которая описывает разнообразные конструкции произведений
групп, реализация которых возможна в GAP. Перевод выполнен студентом ЗГУ
Д. А. Лысенко. Оригинал данной главы на английском языке находится
здесь
.
В текущей версии системы некоторые виды произведений групп доступны только
в том случае, когда оба множителя имеют одинаковый вид (т.е. обе группы одновременно
являются группами подстановок, или матричными группами, и т.п.), а другие
виды произведений групп вообще доступны только для определённых типов групп,
таких как группы подстановок и полициклические–группы (в дальнейшем — рс-группы),
когда произведение групп естественным образом может быть представлено как
группа, имеющая такой же вид.
Система GAP не гарантирует, что произведение двух групп будет иметь конкретный
вид (т.е. являться рс-группой или группой подстановок, и т.д.). Исключениями
являются только две функции WreathProductImprimitiveAction
и WreathProductProductAction, которые возвращают конструкции,
имеющие смысл только лишь для групп подстановок.
Тем не менее, GAP будет стараться выбрать наиболее эффективный в данном
случае вид для результирующей группы. Так, произведение групп подстановок
или рс-групп также будет группой того же вида.
Использование гомоморфизмов вложения и проекции позволяет связать произведение
групп с образующими его множителями.
В системе GAP возможно построение следующих видов произведений групп:
Прямые произведения
Прямое произведение группы является декартовым произведением групп (рассматриваемых
как множества элементов) с покомпонентным произведением.
Функции
DirectProduct( G, H )
DirectProductOp( list, expl )
возвращают прямое произведение групп, заданных в качестве аргументов. Прямое
произведение воспринимает любое положительное количество аргументов и вызывает
операцию DirectProductOp, которая имеет ровно два аргумента,
а именно полный список групп и одну из этих групп (этот в некотором роде странный
синтаксис позволяет при выборе метода использовать наиболее подходящий метод
для специальных случаев, например, если все группы являются группами подстановок
или рс-группами).
GAP будет стараться выбрать оптимальный вид группы - прямого произведения
других групп. Например, прямое произведение групп подстановок вновь будет
группой подстановок, а прямое произведение рс-групп - рс-группой.
Для прямого произведения Р операция вложения Embedding(Р,
nr) возвращает гомоморфизм вложения его nr-того
множителя в Р. Операция проектирования Projection(P,nr)
возвращает проекцию прямого произведения Р на nr
-ый множитель.
gap> g:=Group((1,2,3),(1,2));;
gap> d:=DirectProduct(g,g,g);
Group( [ (1,2,3), (1,2), (4,5,6), (4,5), (7,8,9), (7,8) ] )
gap> Size(d);
216
gap> e:=Embedding(d,2);
2nd embedding into Group( [ (1,2,3), (1,2), (4,5,6), (4,5), (7,8,9), (7,8)
] )
gap> Image(e,(1,2));
(4,5)
gap> Image(Projection(d,2),(1,2,3)(4,5)(8,9));
(1,2)
Полупрямые произведения
Полупрямое произведение группы N и группы G
, действующей на группе N посредством гомоморфизма
alpha из группы G в группу автоморфизмов группы
N, является декартовым произведением множеств G×N
, умножение на котором задано следующей формулой: (g,n)·(h,m) = (g*h,
n^(h^alpha)*m).
Функция
SemidirectProduct( G, alpha, N )
возвращает полупрямое произведение группы N на группу
G, действующую на N через alpha, где
alpha должно быть гомоморфизмом из G в группу автоморфизмов
группы N.
gap> n:=AbelianGroup(IsPcGroup,[2,2]);
<pc group of size 4 with 2 generators>
gap> au:=AutomorphismGroup(n);
<group with 4 generators>
gap> apc:=IsomorphismPcGroup(au);
CompositionMapping( Pcgs([ (2,3), (1,3,2) ]) ->
[ f1, f2 ], <action homomorphism> )
gap> g:=Image(apc);;
Group( [ f1*f2^2, f1*f2^2, f1*f2, <identity> of ... ] )
gap> apci:=InverseGeneralMapping(apc);
InverseGeneralMapping( CompositionMapping( Pcgs([ (2,3), (1,3,2) ]) ->
[ f1, f2 ], <action homomorphism> ) )
gap> IsGroupHomomorphism(apci);
true
gap> p:=SemidirectProduct(g,apci,n);
<pc group of size 24 with 4 generators>
gap> IsomorphismGroups(p,Group((1,2,3,4),(1,2)));
[f1,f2,f3,f4]->[(3,4),(2,4,3),(1,2)(3,4),(1,3)(2,4)]
Для полупрямого произведения Р группы G
с группой N операция Embedding(P,1) возвращает
вложение в него группы G, Embedding(P,2) -
группы N. Операция Projection(P) возвращает
проекцию полупрямого произведения Р на группу G
.
gap> Size(Image(Embedding(p,1)));
6
gap> Embedding(p,2);
[f1,f2]->[f3,f4]
gap> Projection(p);
[f1,f2,f3,f4]->[f1,f2,<identity>of...,<identity>of...]
В версии GAP 4.3 появился еще один вариант обращения к данной функции -
SemidirectProduct( autgp, N ). Здесь autgp
должна являться группой автоморфизмов группы N, и тогда в
результате будет получено не что иное, как SemidirectProduct(autgp,IdentityMapping(autgp),N)
. При этом, если autgrp не была получена с помощью операции
AutomorphismGroup, рекомендуется предварительно проверить
с помощью функции IsGroupOfAutomorphisms(autgrp), что
autgrp действительно состоит из групповых автоморфизмов.
Подпрямые произведения
Подпрямое произведение групп G и H относительно
эпиморфизмов phi и psi (в одну и ту же группу
А) является подгруппой прямого произведения G×H
, которое состоит из элементов (g,h), для которых
g^phi = h^psi. Это соответствует диаграмме:
G
| phi
psi V
H ---> А
Функция
SubdirectProduct( G, H, Ghom, Hhom )
возвращает подпрямое произведение G и H
относительно эпиморфизмов Ghom из G в группу
А и Hhom из H в ту же самую
группу А. Для подпрямого произведения Р,
операция Projection(P,nr) возвращает его проекцию на
nr-ный множитель (в общем случае множители не вкладываются в подпрямое
произведение).
gap> g:=Group((1,2,3),(1,2));
Group( [ (1,2,3), (1,2) ] )
gap> hom:=GroupHomomorphismByImagesNC(g,g,[(1,2,3),(1,2)],[(),(1,2)]);
[ (1,2,3), (1,2) ] -> [ (), (1,2) ]
gap> s:=SubdirectProduct(g,g,hom,hom);
Group( [ (1,2,3), (1,2)(5,6), (4,5,6) ] )
gap> Size(s);
18
gap> p:=Projection(s,2);
2nd projection of Group( [ (1,2,3), (1,2)(5,6), (4,5,6) ] )
gap> Image(p,(1,3,2)(4,5,6));
(1,2,3)
Сплетения
Сплетение группы G с группой подстановок Р
, действующей на n точках, является полупрямым произведением
нормальной подгруппы Gn с группой Р, которая действует
на Gn, переставляя ее компоненты.
Функции
WreathProduct( G, P )
WreathProduct( G, H[, hom] )
возвращают сплетение группы G с группой подстановок
Р (действущей на своих MovedPoints).
Второй вариант возвращает сплетение группы G с образом
группы H относительно гомоморфизама hom,
который должен быть гомоморфизмом из H в группу подстановок.
Если hom не задан и Р не является группой
подстановок, то в качестве hom выбирается изоморфизм из
P в группу подстановок IsomorphismPermGroup(P),
степень которой может зависеть от метода и поэтому не является вполне определенной.
Для сплетения W группы G с группой подстановок
Р степени n при 1<= nr<= n
операция Embedding(W,nr) возвращает вложение группы
G в nr-ую компоненту прямого произведения базовой группы
Gn из сплетения W. Операция
Embedding(W,n+1) возвращает вложение группы Р в
W. Операция Projection(W) возвращает проекцию
сплетения W на группу Р.
gap> g:=Group((1,2,3),(1,2));
Group( [ (1,2,3), (1,2) ] )
gap> p:=Group((1,2,3));
Group( [ (1,2,3) ] )
gap> w:=WreathProduct(g,p);
Group( [ (1,2,3), (1,2), (4,5,6), (4,5), (7,8,9), (7,8),
(1,4,7)(2,5,8)(3,6,9) ] )
gap> Size(w);
648
gap> Embedding(w,1);
1st embedding into Group( [ (1,2,3), (1,2), (4,5,6), (4,5), (7,8,9), (7,8),
(1,4,7)(2,5,8)(3,6,9) ] )
gap> Image(Embedding(w,3));
Group( [ (7,8,9), (7,8) ] )
gap> Image(Embedding(w,4));
Group( [ (1,4,7)(2,5,8)(3,6,9) ] )
gap> Image(Projection(w),(1,4,8,2,6,7,3,5,9));
(1,2,3)
Следует отметить также, что некоторые специфические сплетения групп подстановок
можно задавать специальными функциями, отличающимися способами задания действия
одной группы на прямом произведении копий другой группы: WreathProductImprimitiveAction(G,H)
и WreathProductProductAction(G,H)
Вернуться к списку примеров