Welcome To Our Shell

Mister Spy & Souheyl Bypass Shell

Current Path : /usr/share/gap/doc/ref/

Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
Upload File :
Current File : //usr/share/gap/doc/ref/chap44.txt

  
  44 Matrix Groups
  
  Matrix groups are groups generated by invertible square matrices.
  
  In  the following example we temporarily increase the line length limit from
  its default value 80 to 83 in order to get a nicer output format.
  
    Example  
    gap> m1 := [ [ Z(3)^0, Z(3)^0,   Z(3) ],
    >            [   Z(3), 0*Z(3),   Z(3) ],
    >            [ 0*Z(3),   Z(3), 0*Z(3) ] ];;
    gap> m2 := [ [   Z(3),   Z(3), Z(3)^0 ],
    >            [   Z(3), 0*Z(3),   Z(3) ],
    >            [ Z(3)^0, 0*Z(3),   Z(3) ] ];;
    gap> m := Group( m1, m2 );
    Group(
    [ 
      [ [ Z(3)^0, Z(3)^0, Z(3) ], [ Z(3), 0*Z(3), Z(3) ], 
          [ 0*Z(3), Z(3), 0*Z(3) ] ], 
      [ [ Z(3), Z(3), Z(3)^0 ], [ Z(3), 0*Z(3), Z(3) ], 
          [ Z(3)^0, 0*Z(3), Z(3) ] ] ])
  
  
  
  44.1 IsMatrixGroup (Filter)
  
  For  most  operations,  GAP  only provides methods for finite matrix groups.
  Many  calculations  in  finite  matrix  groups  are  done via so-called nice
  monomorphisms  (see  Section  40.5)  that  represent  a  faithful  action on
  vectors.
  
  44.1-1 IsMatrixGroup
  
  IsMatrixGroup( grp )  Category
  
  The category of matrix groups.
  
  
  44.2 Attributes and Properties for Matrix Groups
  
  44.2-1 DimensionOfMatrixGroup
  
  DimensionOfMatrixGroup( mat-grp )  attribute
  
  The dimension of the matrix group.
  
  44.2-2 DefaultFieldOfMatrixGroup
  
  DefaultFieldOfMatrixGroup( mat-grp )  attribute
  
  Is a field containing all the matrix entries. It is not guaranteed to be the
  smallest field with this property.
  
  44.2-3 FieldOfMatrixGroup
  
  FieldOfMatrixGroup( matgrp )  attribute
  
  The  smallest field containing all the matrix entries of all elements of the
  matrix  group  matgrp.  As  the calculation of this can be hard, this should
  only   be   used   if   one   really   needs   the   smallest   field,   use
  DefaultFieldOfMatrixGroup (44.2-2) to get (for example) the characteristic.
  
    Example  
    gap> DimensionOfMatrixGroup(m);
    3
    gap> DefaultFieldOfMatrixGroup(m);
    GF(3)
  
  
  44.2-4 TransposedMatrixGroup
  
  TransposedMatrixGroup( matgrp )  attribute
  
  returns  the  transpose  of  the  matrix  group matgrp. The transpose of the
  transpose of matgrp is identical to matgrp.
  
    Example  
    gap> G := Group( [[0,-1],[1,0]] );
    Group([ [ [ 0, -1 ], [ 1, 0 ] ] ])
    gap> T := TransposedMatrixGroup( G );
    Group([ [ [ 0, 1 ], [ -1, 0 ] ] ])
    gap> IsIdenticalObj( G, TransposedMatrixGroup( T ) );
    true
  
  
  44.2-5 IsFFEMatrixGroup
  
  IsFFEMatrixGroup( G )  Category
  
  tests whether all matrices in G have finite field element entries.
  
  
  44.3 Actions of Matrix Groups
  
  The basic operations for groups are described in Chapter 41, special actions
  for  matrix  groups mentioned there are OnLines (41.2-12), OnRight (41.2-2),
  and OnSubspacesByCanonicalBasis (41.2-15).
  
  For  subtleties  concerning  multiplication from the left or from the right,
  see 44.7.
  
  44.3-1 ProjectiveActionOnFullSpace
  
  ProjectiveActionOnFullSpace( G, F, n )  function
  
  Let  G  be  a  group of n by n matrices over a field contained in the finite
  field  F.  ProjectiveActionOnFullSpace  returns  the image of the projective
  action of G on the full row space F^n.
  
  44.3-2 ProjectiveActionHomomorphismMatrixGroup
  
  ProjectiveActionHomomorphismMatrixGroup( G )  function
  
  returns  an action homomorphism for a faithful projective action of G on the
  underlying  vector  space.  (Note: The action is not necessarily on the full
  space, if a smaller subset can be found on which the action is faithful.)
  
  44.3-3 BlowUpIsomorphism
  
  BlowUpIsomorphism( matgrp, B )  function
  
  For  a  matrix  group  matgrp and a basis B of a field extension L / K, say,
  such  that the entries of all matrices in matgrp lie in L, BlowUpIsomorphism
  returns  the  isomorphism  with source matgrp that is defined by mapping the
  matrix A to BlownUpMat( A, B ), see BlownUpMat (24.13-3).
  
    Example  
    gap> g:= GL(2,4);;
    gap> B:= CanonicalBasis( GF(4) );;  BasisVectors( B );
    [ Z(2)^0, Z(2^2) ]
    gap> iso:= BlowUpIsomorphism( g, B );;
    gap> Display( Image( iso, [ [ Z(4), Z(2) ], [ 0*Z(2), Z(4)^2 ] ] ) );
     . 1 1 .
     1 1 . 1
     . . 1 1
     . . 1 .
    gap> img:= Image( iso, g );
    <matrix group with 2 generators>
    gap> Index( GL(4,2), img );
    112
  
  
  
  44.4 GL and SL
  
  (See also section 50.2.)
  
  44.4-1 IsGeneralLinearGroup
  
  IsGeneralLinearGroup( grp )  property
  IsGL( grp )  property
  
  The  General  Linear  group  is  the group of all invertible matrices over a
  ring. This property tests, whether a group is isomorphic to a General Linear
  group.  (Note  that  currently  only a few trivial methods are available for
  this operation. We hope to improve this in the future.)
  
  44.4-2 IsNaturalGL
  
  IsNaturalGL( matgrp )  property
  
  This  property  tests, whether a matrix group is the General Linear group in
  the  right  dimension over the (smallest) ring which contains all entries of
  its elements. (Currently, only a trivial test that computes the order of the
  group is available.)
  
  44.4-3 IsSpecialLinearGroup
  
  IsSpecialLinearGroup( grp )  property
  IsSL( grp )  property
  
  The  Special  Linear  group  is  the group of all invertible matrices over a
  ring,  whose determinant is equal to 1. This property tests, whether a group
  is  isomorphic  to  a  Special Linear group. (Note that currently only a few
  trivial methods are available for this operation. We hope to improve this in
  the future.)
  
  44.4-4 IsNaturalSL
  
  IsNaturalSL( matgrp )  property
  
  This  property  tests, whether a matrix group is the Special Linear group in
  the  right  dimension over the (smallest) ring which contains all entries of
  its elements. (Currently, only a trivial test that computes the order of the
  group is available.)
  
    Example  
    gap> IsNaturalGL(m);
    false
  
  
  44.4-5 IsSubgroupSL
  
  IsSubgroupSL( matgrp )  property
  
  This  property  tests,  whether  a matrix group is a subgroup of the Special
  Linear  group in the right dimension over the (smallest) ring which contains
  all entries of its elements.
  
  
  44.5 Invariant Forms
  
  44.5-1 InvariantBilinearForm
  
  InvariantBilinearForm( matgrp )  attribute
  
  This  attribute describes a bilinear form that is invariant under the matrix
  group  matgrp. The form is given by a record with the component matrix which
  is a matrix F such that for every generator g of matgrp the equation g ⋅ F ⋅
  g^tr = F holds.
  
  44.5-2 IsFullSubgroupGLorSLRespectingBilinearForm
  
  IsFullSubgroupGLorSLRespectingBilinearForm( matgrp )  property
  
  This  property  tests, whether a matrix group matgrp is the full subgroup of
  GL  or  SL  (the  property  IsSubgroupSL  (44.4-5)  determines  which it is)
  respecting  the  form  stored as the value of InvariantBilinearForm (44.5-1)
  for matgrp.
  
  44.5-3 InvariantSesquilinearForm
  
  InvariantSesquilinearForm( matgrp )  attribute
  
  This  attribute  describes  a  sesquilinear form that is invariant under the
  matrix  group  matgrp  over  the field F with q^2 elements, say. The form is
  given by a record with the component matrix which is is a matrix M such that
  for  every  generator  g  of matgrp the equation g ⋅ M ⋅ (g^tr)^f = M holds,
  where f is the automorphism of F that raises each element to its q-th power.
  (f can be obtained as a power of the FrobeniusAutomorphism (59.4-1) value of
  F.)
  
  44.5-4 IsFullSubgroupGLorSLRespectingSesquilinearForm
  
  IsFullSubgroupGLorSLRespectingSesquilinearForm( matgrp )  property
  
  This  property  tests, whether a matrix group matgrp is the full subgroup of
  GL  or  SL  (the  property  IsSubgroupSL  (44.4-5)  determines  which it is)
  respecting  the  form  stored  as  the  value  of  InvariantSesquilinearForm
  (44.5-3) for matgrp.
  
  44.5-5 InvariantQuadraticForm
  
  InvariantQuadraticForm( matgrp )  attribute
  
  For   a   matrix  group  matgrp,  InvariantQuadraticForm  returns  a  record
  containing  at  least  the  component  matrix whose value is a matrix Q. The
  quadratic form q on the natural vector space V on which matgrp acts is given
  by q(v) = v Q v^tr, and the invariance under matgrp is given by the equation
  q(v)  = q(v M) for all v ∈ V and M in matgrp. (Note that the invariance of q
  does not imply that the matrix Q is invariant under matgrp.)
  
  q   is   defined   relative  to  an  invariant  symmetric  bilinear  form  f
  (see InvariantBilinearForm  (44.5-1)),  via  the equation q(λ x + μ y) = λ^2
  q(x) + λ μ f(x,y) + μ^2 q(y), see [CCN+85, Chapter 3.4]. If f is represented
  by  the matrix F then this implies F = Q + Q^tr. In characteristic different
  from  2,  we  have q(x) = f(x,x)/2, so Q can be chosen as the strictly upper
  triangular  part of F plus half of the diagonal part of F. In characteristic
  2,  F  does not determine Q but still Q can be chosen as an upper (or lower)
  triangular matrix.
  
  Whenever the InvariantQuadraticForm value is set in a matrix group then also
  the InvariantBilinearForm (44.5-1) value can be accessed, and the two values
  are compatible in the above sense.
  
  44.5-6 IsFullSubgroupGLorSLRespectingQuadraticForm
  
  IsFullSubgroupGLorSLRespectingQuadraticForm( matgrp )  property
  
  This property tests, whether the matrix group matgrp is the full subgroup of
  GL  or  SL  (the  property  IsSubgroupSL  (44.4-5)  determines  which it is)
  respecting the InvariantQuadraticForm (44.5-5) value of matgrp.
  
    Example  
    gap> g:= Sp( 2, 3 );;
    gap> m:= InvariantBilinearForm( g ).matrix;
    [ [ 0*Z(3), Z(3)^0 ], [ Z(3), 0*Z(3) ] ]
    gap> [ 0, 1 ] * m * [ 1, -1 ];           # evaluate the bilinear form
    Z(3)
    gap> IsFullSubgroupGLorSLRespectingBilinearForm( g );
    true
    gap> g:= SU( 2, 4 );;
    gap> m:= InvariantSesquilinearForm( g ).matrix;
    [ [ 0*Z(2), Z(2)^0 ], [ Z(2)^0, 0*Z(2) ] ]
    gap> [ 0, 1 ] * m * [ 1, 1 ];            # evaluate the bilinear form
    Z(2)^0
    gap> IsFullSubgroupGLorSLRespectingSesquilinearForm( g );
    true
    gap> g:= GO( 1, 2, 3 );;
    gap> m:= InvariantBilinearForm( g ).matrix;
    [ [ 0*Z(3), Z(3)^0 ], [ Z(3)^0, 0*Z(3) ] ]
    gap> [ 0, 1 ] * m * [ 1, 1 ];            # evaluate the bilinear form
    Z(3)^0
    gap> q:= InvariantQuadraticForm( g ).matrix;
    [ [ 0*Z(3), Z(3)^0 ], [ 0*Z(3), 0*Z(3) ] ]
    gap> [ 0, 1 ] * q * [ 0, 1 ];            # evaluate the quadratic form
    0*Z(3)
    gap> IsFullSubgroupGLorSLRespectingQuadraticForm( g );
    true
  
  
  
  44.6 Matrix Groups in Characteristic 0
  
  Most  of  the  functions  described  in  this and the following section have
  implementations  which use functions from the GAP package Carat. If Carat is
  not installed or not compiled, no suitable methods are available.
  
  44.6-1 IsCyclotomicMatrixGroup
  
  IsCyclotomicMatrixGroup( G )  Category
  
  tests whether all matrices in G have cyclotomic entries.
  
  44.6-2 IsRationalMatrixGroup
  
  IsRationalMatrixGroup( G )  property
  
  tests whether all matrices in G have rational entries.
  
  44.6-3 IsIntegerMatrixGroup
  
  IsIntegerMatrixGroup( G )  property
  
  tests whether all matrices in G have integer entries.
  
  44.6-4 IsNaturalGLnZ
  
  IsNaturalGLnZ( G )  property
  
  tests  whether  G  is GL_n(ℤ) in its natural representation by n × n integer
  matrices. (The dimension n will be read off the generating matrices.)
  
    Example  
    gap> IsNaturalGLnZ( GL( 2, Integers ) );
    true
  
  
  44.6-5 IsNaturalSLnZ
  
  IsNaturalSLnZ( G )  property
  
  tests  whether  G  is SL_n(ℤ) in its natural representation by n × n integer
  matrices. (The dimension n will be read off the generating matrices.)
  
    Example  
    gap> IsNaturalSLnZ( SL( 2, Integers ) );
    true
  
  
  44.6-6 InvariantLattice
  
  InvariantLattice( G )  attribute
  
  returns a matrix B, whose rows form a basis of a ℤ-lattice that is invariant
  under  the rational matrix group G acting from the right. It returns fail if
  the  group  is  not  unimodular.  The  columns  of  the  inverse of B span a
  ℤ-lattice invariant under G acting from the left.
  
  44.6-7 NormalizerInGLnZ
  
  NormalizerInGLnZ( G )  attribute
  
  is  an attribute used to store the normalizer of G in GL_n(ℤ), where G is an
  integer  matrix  group of dimension n. This attribute is used by Normalizer(
  GL( n, Integers ), G ).
  
  44.6-8 CentralizerInGLnZ
  
  CentralizerInGLnZ( G )  attribute
  
  is an attribute used to store the centralizer of G in GL_n(ℤ), where G is an
  integer  matrix group of dimension n. This attribute is used by Centralizer(
  GL( n, Integers ), G ).
  
  44.6-9 ZClassRepsQClass
  
  ZClassRepsQClass( G )  attribute
  
  The  conjugacy  class in GL_n(ℚ) of the finite integer matrix group G splits
  into  finitely  many  conjugacy  classes  in  GL_n(ℤ). ZClassRepsQClass( G )
  returns representative groups for these.
  
  44.6-10 IsBravaisGroup
  
  IsBravaisGroup( G )  property
  
  test   whether   G  coincides  with  its  Bravais  group  (see  BravaisGroup
  (44.6-11)).
  
  44.6-11 BravaisGroup
  
  BravaisGroup( G )  attribute
  
  returns  the  Bravais  group of a finite integer matrix group G. If C is the
  cone of positive definite quadratic forms Q invariant under g ↦ g Q g^tr for
  all  g  ∈  G, then the Bravais group of G is the maximal subgroup of GL_n(ℤ)
  leaving  the  forms  in that same cone invariant. Alternatively, the Bravais
  group  of  G  can also be defined with respect to the action g ↦ g^tr Q g on
  positive  definite  quadratic forms Q. This latter definition is appropriate
  for  groups  G  acting  from  the  right  on row vectors, whereas the former
  definition is appropriate for groups acting from the left on column vectors.
  Both definitions yield the same Bravais group.
  
  44.6-12 BravaisSubgroups
  
  BravaisSubgroups( G )  attribute
  
  returns  the  subgroups  of  the  Bravais  group  of G, which are themselves
  Bravais groups.
  
  44.6-13 BravaisSupergroups
  
  BravaisSupergroups( G )  attribute
  
  returns the subgroups of GL_n(ℤ) that contain the Bravais group of G and are
  Bravais groups themselves.
  
  44.6-14 NormalizerInGLnZBravaisGroup
  
  NormalizerInGLnZBravaisGroup( G )  attribute
  
  returns the normalizer of the Bravais group of G in the appropriate GL_n(ℤ).
  
  
  44.7 Acting OnRight and OnLeft
  
  In GAP, matrices by convention act on row vectors from the right, whereas in
  crystallography  the  convention  is to act on column vectors from the left.
  The  definition  of  certain  algebraic objects important in crystallography
  implicitly depends on which action is assumed. This holds true in particular
  for  quadratic  forms  invariant under a matrix group. In a similar way, the
  representation  of  affine  crystallographic groups, as they are provided by
  the   GAP   package   CrystGap,   depends   on   which  action  is  assumed.
  Crystallographers  are  used to the action from the left, whereas the action
  from  the  right  is  the  natural one for GAP. For this reason, a number of
  functions  which  are important in crystallography, and whose result depends
  on  which action is assumed, are provided in two versions, one for the usual
  action  from  the  right,  and  one for the crystallographic action from the
  left.
  
  For  every  such  function,  this  fact  is explicitly mentioned. The naming
  scheme  is  as  follows:  If  SomeThing  is  such  a function, there will be
  functions  SomeThingOnRight  and  SomeThingOnLeft,  assuming action from the
  right  and  from  the  left,  respectively.  In addition, there is a generic
  function  SomeThing,  which returns either the result of SomeThingOnRight or
  SomeThingOnLeft,  depending  on  the global variable CrystGroupDefaultAction
  (44.7-1).
  
  44.7-1 CrystGroupDefaultAction
  
  CrystGroupDefaultAction global variable
  
  can  have  either  of the two values RightAction and LeftAction. The initial
  value  is RightAction. For functions which have variants OnRight and OnLeft,
  this  variable determines which variant is returned by the generic form. The
  value  of  CrystGroupDefaultAction  can  be  changed  with with the function
  SetCrystGroupDefaultAction (44.7-2).
  
  44.7-2 SetCrystGroupDefaultAction
  
  SetCrystGroupDefaultAction( action )  function
  
  allows  one  to set the value of the global variable CrystGroupDefaultAction
  (44.7-1).  Only  the  arguments  RightAction  and  LeftAction  are  allowed.
  Initially, the value of CrystGroupDefaultAction (44.7-1) is RightAction.
  

bypass 1.0, Devloped By El Moujahidin (the source has been moved and devloped)
Email: contact@elmoujehidin.net bypass 1.0, Devloped By El Moujahidin (the source has been moved and devloped) Email: contact@elmoujehidin.net