gap-packages / primgrp

GAP Primitive Groups Library
https://gap-packages.github.io/primgrp/
GNU General Public License v2.0
2 stars 5 forks source link

Add a test to compare names and structure descriptions #34

Open olexandr-konovalov opened 4 years ago

olexandr-konovalov commented 4 years ago

This is a start of working over #31.

With it, #30 could have been detected as follows:

gap> checkname(1600);
[ 1600, 17 ] : PSU(4, 3) is PSU(3,4)
[ 1600, 18 ] : PSU(4, 3):2 is PSU(3,4) : C2
[ 1600, 19 ] : PSU(4, 3):4 is PSU(3,4) : C4

It filters some obvious cases, but because names and structure descriptions are not guaranteed to match, that's not always the case. One still needs to check manually a lot, e.g.

gap> checkname(100);
[ 100, 1 ] : J_2 is HJ
[ 100, 2 ] : J_2.2 is HJ : C2
[ 100, 5 ] : Alt(5) wreath Sym(2) is (A5 x A5) : C2
[ 100, 6 ] : Alt(5)^2.2^2 is (A5 x A5) : (C2 x C2)
[ 100, 7 ] : Alt(5)^2.4 is (A5 x A5) : C4
[ 100, 8 ] : Sym(5) wreath Sym(2) is (A5 x A5) : D8
[ 100, 9 ] : Alt(10) wreath Sym(2) is (A10 x A10) : C2
[ 100, 10 ] : Alt(10)^2.2^2 is (A10 x A10) : (C2 x C2)
[ 100, 11 ] : Alt(10)^2.4 is (A10 x A10) : C4
[ 100, 12 ] : Sym(10) wreath Sym(2) is (A10 x A10) : D8
[ 100, 13 ] : Alt(6) wreath Sym(2) is (A6 x A6) : C2
[ 100, 14 ] : Alt(6)^2.2^2 is (A6 x A6) : C4
[ 100, 15 ] : Alt(6)^2.2^2 is (A6 x A6) : (C2 x C2)
[ 100, 16 ] : Alt(6)^2.4 is (A6 x A6) : C4
[ 100, 17 ] : Alt(6)^2.2^2 is ((A6 x A6) : C2) : C2
[ 100, 18 ] : Alt(6)^2.4 is (A6 x A6) . C4
[ 100, 19 ] : Alt(6)^2.2^2 is (A6 x A6) : (C2 x C2)
[ 100, 20 ] : Alt(6)^2.D_8 is ((A6 x A6) : C4) : C2
[ 100, 21 ] : Alt(6)^2.2^3 is ((A6 x A6) : C2) : (C2 x C2)
[ 100, 22 ] : Alt(6)^2.D_8 is (A6 x A6) : D8
[ 100, 23 ] : Alt(6)^2.D_8 is (A6 x A6) : D8
[ 100, 24 ] : Alt(6)^2.D_8 is ((A6 x A6) . C4) : C2
[ 100, 25 ] : Alt(6)^2.D_8 is ((A6 x A6) . C4) : C2
[ 100, 26 ] : Alt(6)^2.(2 x 4) is ((A6 x A6) . C4) : C2
[ 100, 27 ] : Alt(6)^2.D_8 is ((A6 x A6) : C4) : C2
[ 100, 28 ] : Alt(6)^2.(2 x 4) is (A6 : (A6 : C2)) : C4
[ 100, 29 ] : Alt(6)^2.(2 x 4) is (A6 : (A6 . C2)) : C4
[ 100, 30 ] : Alt(6)^2.2^2:4 is ((A6 : S6) : C2) : C4
[ 100, 31 ] : Alt(6)^2.(2 x D_8) is (A6 : (A6 . C2)) : D8
[ 100, 32 ] : Alt(6)^2.2^2:4 is ((A6 : (A6 . C2)) : C2) : C4
[ 100, 33 ] : Alt(6)^2.(2 x D_8) is ((A6 x A6) . C4) : (C2 x C2)
[ 100, 34 ] : Alt(6)^2.(2 x D_8) is (A6 : (A6 : C2)) : D8
[ 100, 35 ] : Alt(6)^2.2^2:4 is ((A6 : (A6 . C2)) : C2) : C4
[ 100, 36 ] : PGammaL(2, 9) wreath Sym(2) is ((A6 : (A6 . C2)) : C2) : D8

Above, I've noticed the line

[ 100, 14 ] : Alt(6)^2.2^2 is (A6 x A6) : C4
olexandr-konovalov commented 4 years ago

A fix for PrimitiveGroup(289, 35) and also for PrimitiveGroup(100,14) submitted in #36.

codecov[bot] commented 4 years ago

Codecov Report

Merging #34 (6d63375) into master (a4e2d7f) will decrease coverage by 0.01%. The diff coverage is 74.15%.

@@            Coverage Diff             @@
##           master      #34      +/-   ##
==========================================
- Coverage   99.92%   99.90%   -0.02%     
==========================================
  Files          46       47       +1     
  Lines      382938   383100     +162     
==========================================
+ Hits       382633   382748     +115     
- Misses        305      352      +47     
Impacted Files Coverage Δ
lib/testutils.g 74.15% <74.15%> (ø)
lib/primitiv.gi 53.72% <0.00%> (-1.35%) :arrow_down:
lib/irredsol.gi 61.45% <0.00%> (-0.44%) :arrow_down:
lib/cohorts.grp 100.00% <0.00%> (ø)
lib/primitiv.grp 100.00% <0.00%> (ø)
fingolfin commented 4 years ago

@alex-konovalov the name for [ 100, 14 ] is also definitely wrong. You can verify this even by "brute force": there is no quotient isomorphic to C_2^2 here:

gap> G:=PrimitiveGroup( 100, 14 );
Alt(6)^2.2^2
gap> StructureDescription(G/Socle(G));
"C4"
gap> List(NormalSubgroups(G), N -> StructureDescription(G/N));
[ "(A6 x A6) : C4", "C4", "C2", "1" ]
olexandr-konovalov commented 4 years ago

@fingolfin thanks, [100,14] already in #36.

olexandr-konovalov commented 4 years ago

Rebased after merging #36.

olexandr-konovalov commented 3 years ago

This PR is unfinished, but at least issues detected with its help were merged and could be released.

olexandr-konovalov commented 2 years ago

After rebase, I see this in stable-4.11,-4.10 but not in master:

########> Diff in /tmp/gaproot/pkg/primgrp/tst/testinstall/testutils.tst:12
# Input is:
for d in [1,2,3,4] do
  for q in [2,3,4,5,7,8,9] do
    facs := Factors(q);
    p := facs[1];
    e := Length(facs);
    Assert(0, Size(SL(d,q)) * q^d = Size(ASL(d,q)));
    Assert(0, Size(GL(d,q)) * q^d = Size(AGL(d,q)));
    Assert(0, Size(SigmaL(d,q)) * q^d = Size(ASigmaL(d,q)));
    Assert(0, Size(GammaL(d,q)) * q^d = Size(AGammaL(d,q)));
    if d > 1 then
        Assert(0, Size(PSL(d,q)) * e = Size(PSigmaL(d,q)));
        Assert(0, Size(PGL(d,q)) * e = Size(PGammaL(d,q)));
    fi;
  od;
od;
# Expected output:
# But found:
Error, Variable: 'PGammaL' must have an assigned value
########