Вернуться к списку примеров


Библиотека групп системы GAP
 
На данной странице помещен сокращенный перевод фрагмента главы "Библиотеки групп" из справочного руководства по системе GAP, в котором описываются некоторые виды групп, которые могут быть заданы с помощью стандартных функций системы, в том числе: циклические, абелевы, диэдральные группы,  симметрические и знакопеременные группы, группы Матье и Сузуки, стандартные матричные группы. Перевод выполнен с участием студентки ЗГУ  Е. А. Шепель. Оригинал данной главы на английском языке находится здесь .



В текущей версии GAP с помощью стандартных функций могут быть заданы следующие группы:
Как правило, между группами в разных библиотеках связи нет, и одна и та же группа может содержаться в нескольких библиотеках в различных представлениях. Заметим, что для инсталляции могут быть выбраны все, несколько или вообще ни одна из библиотек. Таким образом, в Вашей инсталляции некоторые из упомянутых выше библиотек могут оказаться недоступными.


Основные виды групп

Существует ряд бесконечных бесконечных семейств групп, для задания элементов которых необходимо указать одно или несколько чисел. GAP предоставляет различные функции для построения этих групп. Эти функции всегда позволяют (но не требуют) указать так называемый фильтр, например, IsPermGroup , IsMatrixGroup или IsPcGroup, определяющий, какой вид будеть иметь возвращаемая группа. Если фильтр не указывается, то используется его значение, заданное по умолчанию. Заметим, что не все фильтры могут быть применимы для всех групп, так как могут быть теоретические ограничения (например, IsPcGroup работает только для разрешимых групп) или же некоторые методы могут быть доступны лишь для нескольких фильтров.

Некоторые фильтры могут допускать дополнительные параметры. Например, группы, созданные в категории  IsMatrixGroup, могут вычисляться над определенным полем, которое указывается в качестве второго аргумента. По умолчанию рассматривается поле рациональных чисел.

Функция TrivalGroup ( [ filter ] ) создает тривиальную группу в категории filter. Если filter не указан, по умолчанию он равен IsPcGroup .

gap> TrivialGroup();
<pc group of size 1 with 0 generators>
gap> TrivialGroup( IsPermGroup );
Group(())


Функция CyclicGroup ( [ filt, ] n ) строит циклическую группу порядка n в категории filt. Если filt не указан, по умолчанию он равен IsPcGroup.

gap> CyclicGroup(12);
<pc group of size 12 with 3 generators>
gap> CyclicGroup(IsPermGroup,12);
Group([ (1,2,3,4,5,6,7,8,9,10,11,12) ])
gap> matgrp1:= CyclicGroup( IsMatrixGroup, 12 );
<matrix group of size 12 with 1 generators>
gap> FieldOfMatrixGroup( matgrp1 );
Rationals
gap> matgrp2:= CyclicGroup( IsMatrixGroup, GF(2), 12 );
<matrix group of size 12 with 1 generators>
gap> FieldOfMatrixGroup( matgrp2 );
GF(2)

Функция AbelianGroup ( [filt, ] ints ) строит абелeву группу в категории filt, имеющую тип изоморфизма  Сints[1]ints[2] *…*Cints[n]. Ints должно являться списком натуральных чисел. Если filt не указан, по умолчанию он равен IsPcGroup . Порождающие элементы возвращаемой группы соответствуют элементам списка ints.

gap> AbelianGroup([1,2,3]);
<pc group of size 6 with 3 generators>

Функция ElementaryAbelianGroup ( [filt,] n) возвращает элементарную абeлeву группу порядка n в категории filt. (по умолчанию IsPcGroup).

gap> ElementaryAbelianGroup(8192);
<pc group of size 8192 with 13 generators>

Функция DihedralGroup ( [filt,] n) возвращает группу диэдра порядка n в категории filt (по умолчанию IsPcGroup).

gap> DihedralGroup(10);
<pc group of size 10 with 2 generators>

Функция ExtraspecialGroup ( [filt,] order, exp) возвращает экстраспециальную группу в категории filt (по умолчанию IsPcGroup). Эта группа зависит от параметра exp и имеет порядок order, где order имеет вид p2n+1, где р – простое число, а n – натуральное. Если р нечетное, то допустимыми значениями exp являются экспонента (т.е. показатель) группы (либо р, либо р2 ), или же одно один из знаков '+', "+", '-', "-" . Для р=2 допустимы только знаки плюса или минуса.

gap> ExtraspecialGroup( 27, 3 );
<pc group of size 27 with 3 generators>
gap> ExtraspecialGroup( 27, '+' );
<pc group of size 27 with 3 generators>
gap> ExtraspecialGroup( 8, "-" );
<pc group of size 8 with 3 generators>

Функции AlternatingGroup ( [filt,] deg) и AlternatingGroup ( [filt,] dom)  возвращают знакопеременную группу степени deg в категории filt (по умолчанию IsPcGroup). Во втором варианте возвращается знакопеременная группа, действующая на множестве dom , которое должно состоять из натуральных чисел.

gap> AlternatingGroup(5);
Alt([1..5])

Функции SymmetricGroup ( [filt,] deg) и SymmetricGroup ( [filt,] dom)  возвращают симметрическую группу степени deg в категории filt (по умолчанию IsPcGroup). Во втором варианте возвращается симметрическая  группа, действующая на множестве dom, которое должно состоять из натуральных чисел.

gap> SymmetricGroup(10);
Sym([1..10])

Заметим, что методы для работы с группами подстановок особо рассматривают симметрические и знакопеременные группы.

Функция MathieuGroup ( [filt,] degree) конструирует группу Матье степени degree (которая может принимать значения [9, 10, 11, 12, 21, 22, 23, 24]), в категории filt (по умолчанию IsPermGroup ).

gap> MathieuGroup( 11 );
Group([ ( 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11), ( 3, 7,11, 8)( 4,10, 5, 6) ])

Функции SuzukiGroup ( [filt,] q) и Sz ( [filt,] q) конструируют группу, изоморфную группе Сузуки Sz(q) над полем из q элементов (где q>=8 и является нечетной степенью 2) в категории filt (по умолчанию IsMatrixGroup , т.е. возвращается сама группа Сузуки).

gap> SuzukiGroup( 32 );
Sz(32)


Классические матричные группы

Следующие функции возвращают классические матричные группы.
  • GeneralLinearGroup( [filt, ]d , q )
  • GL( [filt, ]d , q )
  • GeneralLinearGroup( d, Integers )
  • GL( d, Integers )
  • GeneralLinearGroup( d, Integers mod m )
  • GL( d, Integers mod m )

    В первых двух вариантах возвращается группа, изоморфную полной линейной группе GL( d, q ) матриц размера d ×d над полем из q элементов в категории filt (по умолчанию IsMatrixGroup). Третий и четвертый варианты строят группу целочисленных ообратимых матриц размера d ×d . Последние два варианта строят полную линейную группу степени d над кольцом классов вычетов Z/mZ.

    gap> GL(4,3);
    GL(4,3)
    gap> GL(2,Integers);
    GL(2,Integers)
    gap> GL(3,Integers mod 12);
    GL(3,Z/12Z)

  • SpecialLinearGroup( [filt, ] d, q )
  • SL( [filt, ]d , q )
  • SpecialLinearGroup( d, Integers )
  • SL( d, Integers )
  • SpecialLinearGroup( d, Integers mod m )
  • SL( d, Integers mod m )

    Первые две функции строят группу изоморфную специальной линейной группе SL( d, q ), состоящей из матриц размера d × d над полем из q элементов, определитель которых является единицей этого поля, в категории filt (по умолчанию  IsMatrixGroup). Третья и четвертая функции возвращают группу целочисленных матриц с размера d ×d с определителем 1. Последние два варианта строят группу матриц размера d ×d над кольцом Z/m Z с определителем 1 (mod m).

    gap> SpecialLinearGroup(2,2);
    SL(2,2)
    gap> SL(3,Integers);
    SL(3,Integers)
    gap> SL(4,Integers mod 4);
    SL(4,Z/4Z)

    В руководстве по системе может быть найдена дальнейшая информация о следующих функциях, смысл которых понятен из их названий:


  • Группы малых порядков

    Библиотека групп малых порядков содержит все конечные группы, порядок которых не превышает 2000, за исключением групп порядка 1024. Каждая группа из библиотеки имеет свой номер, обозначающий ее тип изоморфизма. Этот номер имеет вид [n1, n2], где n1 - порядок группы, n2 - ее номер в каталоге групп порядка n1. Группу, имеющую тип изоморфизма [n1, n2], можно вызвать из виблиотеки с помощью функции SmallGroup, например:

    gap> S:=SmallGroup(16,8);
    <pc group of size 16 with 4 generators>

    С другой стороны, для многих групп возможно определение их типа изоморфизма с помощью функции IdGroup. Так, например, группа диэдра порядка 8 может быть получена как группа с номером 3 из библиотеки групп порядка 8:

    gap> D:=DihedralGroup(8);
    <pc group of size 8 with 3 generators>
    gap> IdGroup(D);
    [ 8, 3 ]

    Для отбора групп из библиотеки используется функция AllSmallGroups в комбинации с различными аргументами, первым из которых всегда является Size, вторым - порядок требуемых групп). Далее могут быть записаны другие пары аргументов, где в каждой паре первый аргумент - функция для отбора групп, второй - ее требуемое значение. В следующем примере получается список всех неабелевых групп порядка 64:

    gap> l:=AllSmallGroups(Size,64, IsAbelian, false);;
    gap> Length(last);
    256

    Таким образом, существует 256 таких групп. Теперь с помощью функций работы со списками выделим из них те, которые имеют класс нильпотентности 4 и циклический коммутант:

    gap> l:=Filtered(l, x -> ( Length(LowerCentralSeries(x))=5 and IsCyclic(DerivedSubgroup(x))) );;
    gap> Length(last);
    16

    Таких групп уже 16. Теперь выделим из этих 16 групп только те, у которых факторгруппа по коммутанту является елементарной абелевой группой:

    gap> l:=Filtered(l, x -> IsElementaryAbelian(x/DerivedSubgroup(x)));;
    gap> Length(last);
    6

    Всего получили шесть таких групп. Установим их тип изоморфизма:

    gap> List(l, IdGroup);
    [ [ 64, 186 ], [ 64, 187 ], [ 64, 188 ], [ 64, 189 ], [ 64, 190 ],
      [ 64, 191 ] ]
     
    Другие функции для работы с библиотекой конечных групп описаны в соответствующей главе оригинального руководства по системе GAP.


    Вернуться к списку примеров