dwww Home | Show directory contents | Find package

  
  8 Cohomology for pcp-groups
  
  The  GAP  4  package  Polycyclic  provides  methods to compute the first and
  second cohomology group for a pcp-group U and a finite dimensional ℤ U or FU
  module  A where F is a finite field. The algorithm for determining the first
  cohomology group is outlined in [Eic00].
  
  As a preparation for the cohomology computation, we introduce the cohomology
  records.  These  records  provide  the  technical  setup  for our cohomology
  computations.
  
  
  8.1 Cohomology records
  
  Cohomology  records provide the necessary technical setup for the cohomology
  computations for polycyclic groups.
  
  8.1-1 CRRecordByMats
  
  CRRecordByMats( U, mats )  function
  
  creates  an external module. Let U be a pcp group which acts via the list of
  matrices mats on a vector space of the form ℤ^n or F_p^n. Then this function
  creates a record which can be used as input for the cohomology computations.
  
  8.1-2 CRRecordBySubgroup
  
  CRRecordBySubgroup( U, A )  function
  CRRecordByPcp( U, pcp )  function
  
  creates  an  internal  module.  Let  U  be a pcp group and let A be a normal
  elementary  or  free  abelian  normal subgroup of U or let pcp be a pcp of a
  normal elementary of free abelian subfactor of U. Then this function creates
  a record which can be used as input for the cohomology computations.
  
  The returned cohomology record C contains the following entries:
  
  factor
        a  pcp  of  the  acting group. If the module is external, then this is
        Pcp(U).  If  the  module is internal, then this is Pcp(U, A) or Pcp(U,
        GroupOfPcp(pcp)).
  
  mats, invs and one
        the  matrix  action of factor with acting matrices, their inverses and
        the identity matrix.
  
  dim and char
        the dimension and characteristic of the matrices.
  
  relators and enumrels
        the right hand sides of the polycyclic relators of factor as generator
        exponents  lists  and  a  description  for the corresponding left hand
        sides.
  
  central
        is  true,  if  the matrices mats are all trivial. This is used locally
        for efficiency reasons.
  
  And additionally, if C defines an internal module, then it contains:
  
  group
        the original group U.
  
  normal
        this is either Pcp(A) or the input pcp.
  
  extension
        information on the extension of A by U/A.
  
  
  8.2 Cohomology groups
  
  Let  U  be  a  pcp-group  and A a free or elementary abelian pcp-group and a
  U-module. By Z^i(U, A) be denote the group of i-th cocycles and by B^i(U, A)
  the i-th coboundaries. The factor Z^i(U,A) / B^i(U,A) is the i-th cohomology
  group.  Since  A  is  elementary  or  free abelian, the groups Z^i(U, A) and
  B^i(U, A) are elementary or free abelian groups as well.
  
  The  Polycyclic  package  provides  methods  to  compute  first  and  second
  cohomology  group  for  a  polycyclic  group U. We write all involved groups
  additively  and  we  use an explicit description by bases for them. Let C be
  the cohomology record corresponding to U and A.
  
  Let  f_1,  ...,  f_n  be  the elements in the entry factor of the cohomology
  record  C. Then we use the following embedding of the first cocycle group to
  describe 1-cocycles and 1-coboundaries: Z^1(U, A) -> A^n : δ ↦ (δ(f_1), ...,
  δ(f_n))
  
  For  the  second  cohomology  group we recall that each element of Z^2(U, A)
  defines  an  extension  H  of  A  by U. Thus there is a pc-presentation of H
  extending  the  pc-presentation  of  U  given  by the record C. The extended
  presentation  is  defined by tails in A; that is, each relator in the record
  entry  relators  is  extended by an element of A. The concatenation of these
  tails  yields  a  vector  in  A^l  where l is the length of the record entry
  relators  of  C.  We use these tail vectors to describe Z^2(U, A) and B^2(U,
  A). Note that this description is dependent on the chosen presentation in C.
  However,  the  factor  Z^2(U,  A)/  B^2(U,  A)  is independent of the chosen
  presentation.
  
  The  following  functions  are available to compute explicitly the first and
  second cohomology group as described above.
  
  8.2-1 OneCoboundariesCR
  
  OneCoboundariesCR( C )  function
  OneCocyclesCR( C )  function
  TwoCoboundariesCR( C )  function
  TwoCocyclesCR( C )  function
  OneCohomologyCR( C )  function
  TwoCohomologyCR( C )  function
  
  The  first  four functions return bases of the corresponding group. The last
  two  functions  need  to  describe a factor of additive abelian groups. They
  return the following descriptions for these factors.
  
  gcc
        the basis of the cocycles of C.
  
  gcb
        the basis of the coboundaries of C.
  
  factor
        a  description  of the factor of cocycles by coboundaries. Usually, it
        would be most convenient to use additive mappings here. However, these
        are  not  available  in  case that A is free abelian and thus we use a
        description of this additive map as record. This record contains
  
        gens
              a base for the image.
  
        rels
              relative orders for the image.
  
        imgs
              the images for the elements in gcc.
  
        prei
              preimages for the elements in gens.
  
        denom
              the kernel of the map; that is, another basis for gcb.
  
  There  is  an  additional  function  which can be used to compute the second
  cohomology  group  over  an  arbitrary finitely generated abelian group. The
  finitely  generated  abelian  group should be realized as a factor of a free
  abelian group modulo a lattice. The function is called as
  
  8.2-2 TwoCohomologyModCR
  
  TwoCohomologyModCR( C, lat )  function
  
  where C is a cohomology record and lat is a basis for a sublattice of a free
  abelian module. The output format is the same as for TwoCohomologyCR.
  
  
  8.3 Extended 1-cohomology
  
  In some cases more information on the first cohomology group is of interest.
  In  particular,  if  we have an internal module given and we want to compute
  the  complements  using  the first cohomology group, then we need additional
  information.  This  extended  version of first cohomology is obtained by the
  following functions.
  
  8.3-1 OneCoboundariesEX
  
  OneCoboundariesEX( C )  function
  
  returns a record consisting of the entries
  
  basis
        a basis for B^1(U, A) ≤ A^n.
  
  transf
        There  is  a  derivation  mapping  from A to B^1(U,A). This mapping is
        described here as transformation from A to basis.
  
  fixpts
        the fixpoints of A. This is also the kernel of the derivation mapping.
  
  8.3-2 OneCocyclesEX
  
  OneCocyclesEX( C )  function
  
  returns a record consisting of the entries
  
  basis
        a basis for Z^1(U, A) ≤ A^n.
  
  transl
        a  special  solution.  This  is  only of interest in case that C is an
        internal  module  and  in this case it gives the translation vector in
        A^n used to obtain complements corresponding to the elements in basis.
        If  C  is  not an internal module, then this vector is always the zero
        vector.
  
  8.3-3 OneCohomologyEX
  
  OneCohomologyEX( C )  function
  
  returns the combined information on the first cohomology group.
  
  
  8.4 Extensions and Complements
  
  The  natural  applications  of  first  and  second  cohomology  group is the
  determination of extensions and complements. Let C be a cohomology record.
  
  8.4-1  ComplementCR
  
   ComplementCR( C, c )  function
  
  returns  the complement corresponding to the 1-cocycle c. In the case that C
  is  an  external  module, we construct the split extension of U with A first
  and then determine the complement. In the case that C is an internal module,
  the  vector  c  must  be an element of the affine space corresponding to the
  complements as described by OneCocyclesEX.
  
  8.4-2  ComplementsCR
  
   ComplementsCR( C )  function
  
  returns  all complements using the correspondence to Z^1(U,A). Further, this
  function returns fail, if Z^1(U,A) is infinite.
  
  8.4-3  ComplementClassesCR
  
   ComplementClassesCR( C )  function
  
  returns  complement  classes  using the correspondence to H^1(U,A). Further,
  this function returns fail, if H^1(U,A) is infinite.
  
  8.4-4  ComplementClassesEfaPcps
  
   ComplementClassesEfaPcps( U, N, pcps )  function
  
  Let  N  be  a  normal  subgroup  of  U. This function returns the complement
  classes  to  N  in  U.  The  classes  are  computed  by  iteration  over the
  U-invariant  efa  series  of  N  described by pcps. If at some stage in this
  iteration  infinitely  many  complements  are  discovered, then the function
  returns  fail.  (Even  though  there  might  be only finitely many conjugacy
  classes of complements to N in U.)
  
  8.4-5  ComplementClasses
  
   ComplementClasses( [V, ]U, N )  function
  
  Let  N and U be normal subgroups of V with N ≤ U ≤ V. This function attempts
  to  compute  the V-conjugacy classes of complements to N in U. The algorithm
  proceeds  by  iteration over a V-invariant efa series of N. If at some stage
  in  this  iteration  infinitely  many  complements  are discovered, then the
  algorithm returns fail.
  
  8.4-6 ExtensionCR
  
  ExtensionCR( C, c )  function
  
  returns the extension corresponding to the 2-cocycle c.
  
  8.4-7 ExtensionsCR
  
  ExtensionsCR( C )  function
  
  returns  all  extensions using the correspondence to Z^2(U,A). Further, this
  function returns fail, if Z^2(U,A) is infinite.
  
  8.4-8 ExtensionClassesCR
  
  ExtensionClassesCR( C )  function
  
  returns  extension  classes  using  the correspondence to H^2(U,A). Further,
  this function returns fail, if H^2(U,A) is infinite.
  
  8.4-9 SplitExtensionPcpGroup
  
  SplitExtensionPcpGroup( U, mats )  function
  
  returns the split extension of U by the U-module described by mats.
  
  
  8.5 Constructing pcp groups as extensions
  
  This  section contains an example application of the second cohomology group
  to  the  construction  of pcp groups as extensions. The following constructs
  extensions  of  the  group  of upper unitriangular matrices with its natural
  lattice.
  
    Example  
    # get the group and its matrix action
    gap> G := UnitriangularPcpGroup(3,0);
    Pcp-group with orders [ 0, 0, 0 ]
    gap> mats := G!.mats;
    [ [ [ 1, 1, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ],
      [ [ 1, 0, 0 ], [ 0, 1, 1 ], [ 0, 0, 1 ] ],
      [ [ 1, 0, 1 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] ]
    
    # set up the cohomology record
    gap> C := CRRecordByMats(G,mats);;
    
    # compute the second cohomology group
    gap> cc := TwoCohomologyCR(C);;
    
    # the abelian invariants of H^2(G,M)
    gap> cc.factor.rels;
    [ 2, 0, 0 ]
    
    # construct an extension which corresponds to a cocycle that has
    # infinite image in H^2(G,M)
    gap> c := cc.factor.prei[2];
    [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 1 ]
    gap> H := ExtensionCR( CR, c);
    Pcp-group with orders [ 0, 0, 0, 0, 0, 0 ]
    
    # check that the extension does not split - get the normal subgroup
    gap> N := H!.module;
    Pcp-group with orders [ 0, 0, 0 ]
    
    # create the interal module
    gap> C := CRRecordBySubgroup(H,N);;
    
    # use the complements routine
    gap> ComplementClassesCR(C);
    [  ]
  
  

Generated by dwww version 1.15 on Sun Jun 16 07:57:21 CEST 2024.