thetensor-space / TameGenus

Algorithms for isomorphism testing of groups with small genus
MIT License
1 stars 0 forks source link

more problems with TameGenus #23

Closed eamonnaobrien closed 4 years ago

eamonnaobrien commented 4 years ago
> X := SmallGroups (5^7);                                                      
Warning: May return more than 10,000 groups -- perhaps a SmallGroupProcess would
be more appropriate?

(To turn off this message, use Warning := false)
> #X;
34297

> Y := [x : x in X | pClass (x) eq 2 and Exponent (x) eq 5 and Genus (x) le 2]\
;
> #Y;
9
> for i in [1..#Y] do
for> A := TGAutomorphismGroup (Y[i]);
for> i;
for> end for;
1
2
3

TGAutomorphismGroup(
    G: GrpPC
)
__TameGenusAutomorphism(
    G: GrpPC
)
TGPseudoIsometryGroup(
    t: Tensor of valence 3, U2 x U1 >-> U0 U2 : Full Vector space o...
)
__G1_PIsometry(
    t: Tensor of valence 3, U2 x U1 >-> U0 U2 : Full Vector space o...,
    H: Maps from U2 x U1 >-> U0 to V2 x V1 >-> V0. U2 -> V2: Mappin...
)
__Galois_check(
    H: Maps from U2 x U1 >-> U0 to V2 x V1 >-> V0. U2 -> V2: Mappin...
)
__Standard_Gen(
    H: Maps from U2 x U1 >-> U0 to V2 x V1 >-> V0. U2 -> V2: Mappin...
)
In file "/home/eobr007/Stabiliser/TameGenus/src/Semilinear.m", line 107, column 
12:
>>   assert Z in Centroid(Domain(H));
              ^
Runtime error in 'in': Arguments have no covering structure

debug>                                                                         
> A := TGAutomorphismGroup (Y[4]);

TGAutomorphismGroup(
    G: GrpPC
)
__TameGenusAutomorphism(
    G: GrpPC
)
TGPseudoIsometryGroup(
    t: Tensor of valence 3, U2 x U1 >-> U0 U2 : Full Vector space o...
)
__G1_PIsometry(
    t: Tensor of valence 3, U2 x U1 >-> U0 U2 : Full Vector space o...,
    H: Maps from U2 x U1 >-> U0 to V2 x V1 >-> V0. U2 -> V2: Mappin...
)
__Galois_check(
    H: Maps from U2 x U1 >-> U0 to V2 x V1 >-> V0. U2 -> V2: Mappin...
)
__Standard_Gen(
    H: Maps from U2 x U1 >-> U0 to V2 x V1 >-> V0. U2 -> V2: Mappin...
)
In file "/home/eobr007/Stabiliser/TameGenus/src/Semilinear.m", line 107, column 
12:
>>   assert Z in Centroid(Domain(H));
              ^
Runtime error in 'in': Arguments have no covering structure

debug> 
> A := TGAutomorphismGroup (Y[5]);
> A := TGAutomorphismGroup (Y[6]);
> A := TGAutomorphismGroup (Y[7]);

TGAutomorphismGroup(
    G: GrpPC
)
__TameGenusAutomorphism(
    G: GrpPC
)
TGPseudoIsometryGroup(
    t: Tensor of valence 3, U2 x U1 >-> U0 U2 : Full Vector space o...
)
In file "/home/eobr007/Stabiliser/TameGenus/src/PIsomGroup.m", line 381, column 
30:
>>     ORD *:= Factorization(#K)^(dims_t_nd[1]*d_rad - d_rad^2);
                                ^
Runtime error in '^': Exponent must be non-negative

debug> 
> A := TGAutomorphismGroup (Y[8]);
> A := TGAutomorphismGroup (Y[9]);
joshmaglione commented 4 years ago

There are two errors here. One is:

>>     ORD *:= Factorization(#K)^(dims_t_nd[1]*d_rad - d_rad^2);
                                ^
Runtime error in '^': Exponent must be non-negative

This likely fixed by fixing Issue #21 .

The second is probably a type error. The centroid might be giving an algebra in End(U) x End(V) x End(W), but Z is only in End(V) x End (W). Like with Issue #21 , I thought I addressed this bug. Making sure t has the correct tensor category is the easiest fix. Make sure to fuse coordinates 1 ans 2.

joshmaglione commented 4 years ago

This issue was also already fixed on test branch.

eamonnaobrien commented 4 years ago

Dear all:

I currently have no problems with TameGenus: all experiments with existing groups in SmallGroups library that I performed worked ok. As does experiments with random groups, both for TGAutomorphismGroup and TGIsIsomorphic.

There remains a practical question: are updates in Master or still only in test branch?

In terms of clashing with other intrinsics, at least for TameGenus, I am not too concerned. At the moment, |IsIndecomposable| might clash. We can address this easily.

It would be good to check all of your intrinsics and see that there are potentially damaging clashes with existing magma exports. Also to make the # of intrinics you have available as small as possible. The advantage is that less documentation is required.

Josh: earlier this year I mentioned to James that you can prefix to existing intrinsic Name the string  Internal_ The intrinsic remains intrinsic and so can be accessed without import, but it no longer shows up under Tab Completion within Magma, so is typically not found by accident. That saves writing documention for it. For example:

Internal_ClassicalSolve; Intrinsic 'Internal_ClassicalSolve'

Signatures:

    (G::Grp, type::MonStgElt, d::RngIntElt, q::RngIntElt) -> BoolElt, SeqEnum, SeqEnum

        G is isomorphic to a classical group of specified in dimension d, with         defining field F; the string is one of SL, Sp, SU, Omega, Omega+, Omega-;         return maps to and from the standard copy, maps rewriting maps, standard         generators of G and their SLPs in the defining generators of G.

I discussed the package with John last week. He's interested in including it. He seemed willing to download it github. So if someone organises a release which you're all happy with and provides a link, I will engage with him to see if it can be incorporated for distribution.  But it should be clear what associated packages etc must be installed.

Best wishes. Eamonn