> < ^ Date: Wed, 15 Nov 1995 18:40:53 NFT
> ^ From: Claude Quitte <quitte@knuth.univ-poitiers.fr >
^ Subject: GAP problem

Hello,

Thanks for your system G.A.P. !

I have a problem with the function "IsInjective" (I use the version 3,
release 4, 18 May 95). Here the exact GAP file with its execution.
I don't know the best way to send a report problem so I put the 2 files
(the source file + execution). Is there a good way to transmit reports ??

Best regards.

------------------------------- cut here -----------
LogTo("bug1.gap.result") ;

# Pour les matrices a coefficients dans un corps premier
pretty := function(M)
   local Copy_M, nm, n, m, i, j ;
   Copy_M := Copy(M) ;
   nm := DimensionsMat(Copy_M) ;
   n := nm[1] ; m := nm[2] ;
   for i in [1..n] do
      for j in [1..m] do
         Copy_M[i][j] := IntFFE(Copy_M[i][j]) ;
      od ;
   od ;
   return Copy_M ;
end ;

q := 5 ;
GL2Fq := GeneralLinearGroup(2, q) ;
for g in GL2Fq.generators do Print(pretty(g), "\n") ; od ;
Size(GL2Fq) ;
# h := generateur de Fq-{0}
h := Z(q) * [[1, 0], [0, 1]] ;; pretty(h) ;
Order(GL2Fq, h) ;

# C := centre de GL(2,Fq)
C := Subgroup(GL2Fq, [h]) ; C.name := "C" ;
Size(C) ;
C = Centre(GL2Fq) ;

# PGL2(Fq) = GL2(Fq)/centre
PGL2Fq := GL2Fq / C ;  PGL2Fq.name := "PGL2Fq" ;
Size(PGL2Fq) ;

# l'application canonique class : GL2Fq -> PGL2Fq
class := function(x) return FactorGroupElement(C, x) ; end ;

# sous-groupe K de Jean-Louis d'ordre 24
f := class((Z(q)^0 * [[1, 1], [2, 3]])) ;
of := Order(PGL2Fq, f) ;
g := class((Z(q)^0 * [[1, 3], [3, 1]])) ;
og := Order(PGL2Fq, g) ;
K := Subgroup(PGL2Fq, [f, g]) ; K.name := "K" ;
Size(K) ;

K_Left_Cosets := LeftCosets(PGL2Fq, K) ;
Operation_Of_PGL2Fq_On_K_Left_Cosets := Operation(PGL2Fq, K_Left_Cosets, OnLeft) ;
perm := OperationHomomorphism(PGL2Fq, Operation_Of_PGL2Fq_On_K_Left_Cosets) ;

IsSurjective(perm) ;

# Probleme GAP : IsInjective(perm) provoque une erreur
IsInjective(perm) ;

LogTo() ;

---------- and the execution ------------------------------------------

gap>
gap> # Pour les matrices a coefficients dans un corps premier
gap> pretty := function(M)
>    local Copy_M, nm, n, m, i, j ;
>    Copy_M := Copy(M) ;
>    nm := DimensionsMat(Copy_M) ;
>    n := nm[1] ; m := nm[2] ;
>    for i in [1..n] do
>       for j in [1..m] do
>          Copy_M[i][j] := IntFFE(Copy_M[i][j]) ;
>       od ;
>    od ;
>    return Copy_M ;
> end ;
function ( M ) ... end
gap>
gap> q := 5 ;
5
gap> GL2Fq := GeneralLinearGroup(2, q) ;
GL(2,5)
gap> for g in GL2Fq.generators do Print(pretty(g), "\n") ; od ;
[ [ 2, 0 ], [ 0, 1 ] ]
[ [ 4, 1 ], [ 4, 0 ] ]
gap> Size(GL2Fq) ;
480
gap> # h := generateur de Fq-{0}
gap> h := Z(q) * [[1, 0], [0, 1]] ;; pretty(h) ;
[ [ 2, 0 ], [ 0, 2 ] ]
gap> Order(GL2Fq, h) ;
4
gap>
gap> # C := centre de GL(2,Fq)
gap> C := Subgroup(GL2Fq, [h]) ; C.name := "C" ;
Subgroup( GL(2,5), [ [ [ Z(5), 0*Z(5) ], [ 0*Z(5), Z(5) ] ] ] )
"C"
gap> Size(C) ;
4
gap> C = Centre(GL2Fq) ;
true
gap>
gap> # PGL2(Fq) = GL2(Fq)/centre
gap> PGL2Fq := GL2Fq / C ;  PGL2Fq.name := "PGL2Fq" ;
(GL(2,5) / C)
"PGL2Fq"
gap> Size(PGL2Fq) ;
120
gap>
gap> # l'application canonique class : GL2Fq -> PGL2Fq
gap> class := function(x) return FactorGroupElement(C, x) ; end ;
function ( x ) ... end
gap>
gap> # sous-groupe K de Jean-Louis d'ordre 24
gap> f := class((Z(q)^0 * [[1, 1], [2, 3]])) ;
FactorGroupElement( C, [ [ Z(5)^3, Z(5)^3 ], [ Z(5)^0, Z(5)^2 ] ] )
gap> of := Order(PGL2Fq, f) ;
3
gap> g := class((Z(q)^0 * [[1, 3], [3, 1]])) ;
FactorGroupElement( C, [ [ Z(5)^2, Z(5) ], [ Z(5), Z(5)^2 ] ] )
gap> og := Order(PGL2Fq, g) ;
4
gap> K := Subgroup(PGL2Fq, [f, g]) ; K.name := "K" ;
Subgroup( (GL(2,5) / C),
[ FactorGroupElement( C, [ [ Z(5)^3, Z(5)^3 ], [ Z(5)^0, Z(5)^2 ] ] ),
  FactorGroupElement( C, [ [ Z(5)^2, Z(5) ], [ Z(5), Z(5)^2 ] ] ) ] )
"K"
gap> Size(K) ;
24
gap>
gap> K_Left_Cosets := LeftCosets(PGL2Fq, K) ;
[ (FactorGroupElement( C, [ [ Z(5)^0, 0*Z(5) ], [ 0*Z(5), Z(5)^0 ] ] )*K),
  (FactorGroupElement( C, [ [ 0*Z(5), Z(5)^2 ], [ Z(5)^0, Z(5)^2 ] ] )*K),
  (FactorGroupElement( C, [ [ 0*Z(5), Z(5) ], [ Z(5)^0, Z(5)^2 ] ] )*K),
  (FactorGroupElement( C, [ [ Z(5)^2, Z(5)^0 ], [ Z(5)^2, 0*Z(5) ] ] )*K),
  (FactorGroupElement( C, [ [ 0*Z(5), Z(5)^0 ], [ Z(5)^0, Z(5)^2 ] ] )*K) ]
gap> Operation_Of_PGL2Fq_On_K_Left_Cosets := Operation(PGL2Fq, K_Left_Cosets, OnLeft) ;
Group( (2,4,5,3), (1,4,2) )
gap> perm := OperationHomomorphism(PGL2Fq, Operation_Of_PGL2Fq_On_K_Left_Cosets) ;
OperationHomomorphism( (GL(2,5) / C), Group( (2,4,5,3), (1,4,2) ) )
gap>
gap> IsSurjective(perm) ;
true
gap>
gap> # Probleme GAP : IsInjective(perm) provoque une erreur
gap> IsInjective(perm) ;
Error, power of <c> and <d> is not defined in
<rec1> ^ <rec2> called from
G.operations.Core( G, U ) called from
Core( hom.source, Stabilizer( hom.source, orb[1], hom.range.operation.
    operation ) ) called from
fun( i ) called from
List( Orbits( hom.source, hom.range.operation.domain, hom.range.operation.
    operation ), function ( orb ) ... end ) called from
...
brk> quit ;
gap>
gap> LogTo() ;
-----------------------------------------------------------

Best regards.

--
Claude Quitte
Dept de Mathematiques
40 Av du recteur Pineau
86022 Poitiers Cedex FRANCE
E-mail Internet : quitte@knuth.univ-poitiers.fr
Fax : 33-49-45-40-10


> < [top]