  
  [1X1 [33X[0;0YIntroduction[133X[101X
  
  [33X[0;0YThis chapter serves as an introduction of the package [5XLINS[105X.[133X
  
  
  [1X1.1 [33X[0;0YOverview[133X[101X
  
  [33X[0;0YThe package [5XLINS[105X provides an algorithm for computing the normal subgroups of
  a finitely presented group up to some given index bound.[133X
  
  [33X[0;0YMoreover  it  provides  an  interface  for  searching in the normal subgroup
  lattice  of  a  finitely  presented  group.  For  example,  one can use this
  interface to search for [22Xl[122X normal subgroups of index [22Xn[122X.[133X
  
  [33X[0;0YThe  algorithm  is based on work of David Firth [Fir05]. He implemented that
  algorithm  in  the  algebra software MAGMA. That implementation in MAGMA has
  been revised and rewritten to a great extent by Derek Holt.[133X
  
  [33X[0;0YThe  current  implementation in [5XGAP[105X uses a table of groups that was computed
  by the code in [11XcreateTables.gi[111X.[133X
  
  
  [1X1.2 [33X[0;0YExamples[133X[101X
  
  [33X[0;0YIn this section we present example sessions which demonstrate how to use the
  main high-level functions provided by [5XLINS[105X.[133X
  
  
  [1X1.2-1 [33X[0;0YExample : all normal subgroups up to index [22Xn[122X[101X[1X[133X[101X
  
  [33X[0;0YWe compute all normal subgroups in [22XD_50[122X, the dihedral group of size [22X50[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XG := DihedralGroup(50);[127X[104X
    [4X[28X<pc group of size 50 with 3 generators>[128X[104X
    [4X[25Xgap>[125X [27XL := LowIndexNormalSubs(G, 50);;[127X[104X
    [4X[25Xgap>[125X [27XIsoTypes := List(L, StructureDescription);[127X[104X
    [4X[28X[ "D50", "C25", "C5", "1" ][128X[104X
  [4X[32X[104X
  
  
  [1X1.2-2 [33X[0;0YExample : all normal subgroups of index [22Xn[122X[101X[1X[133X[101X
  
  [33X[0;0YWe  compute  all  normal  subgroups  of  index [22X5^2 = 25[122X in [22XC_5^4[122X, the direct
  product of [22X4[122X copies of the cyclic group of order [22X5[122X:[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XG := ElementaryAbelianGroup(5^4);[127X[104X
    [4X[28X<pc group of size 625 with 4 generators>[128X[104X
    [4X[25Xgap>[125X [27XL := LowIndexNormalSubs(G, 5 ^ 2 : allSubgroups := false);;[127X[104X
    [4X[25Xgap>[125X [27XIsoTypes := Collected(List(L, StructureDescription));[127X[104X
    [4X[28X[ [ "C5 x C5", 806 ] ][128X[104X
  [4X[32X[104X
  
  
  [1X1.3 [33X[0;0YMain Functions[133X[101X
  
  [33X[0;0YIn  this  section,  we include all the main high-level functions provided to
  the  user.  For  advanced search methods in the lattice of normal subgroups,
  take a look at Chapter [14X2[114X.[133X
  
  [1X1.3-1 LowIndexNormalSubs[101X
  
  [33X[1;0Y[29X[2XLowIndexNormalSubs[102X( [3XG[103X, [3Xn:[103X [3XallSubgroups[103X [3X:=[103X [3Xtrue[103X ) [32X operation[133X
  
  [33X[0;0YReturns  a  list  of  all normal subgroups of [3XG[103X with index at most [3Xn[103X. If the
  option  [3XallSubgroups[103X  is  set  to [9Xfalse[109X, then only the normal subgroups of [3XG[103X
  with index equal to [3Xn[103X are returned.[133X
  
  [33X[0;0YThe  generic  method uses [2XIsomorphismFpGroup[102X ([14XReference: IsomorphismFpGroup[114X)
  to transform [3XG[103X into an fp-group and then calls some variant of the low-level
  function [2XLowIndexNormalSubgroupsSearch[102X ([14X2.3-1[114X).[133X
  
  [33X[0;0YNote   that   a   similar   operation  [2XLowIndexNormalSubgroups[102X  ([14Xpolycyclic:
  LowIndexNormalSubgroups[114X)  exists in the package [5Xpolycyclic[105X. Due to technical
  incompabilities, those operations could not be unified.[133X
  
