Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(Normal)Intersection produces wrong result, probably due to bug in IsNormal #91

Closed
stertooy opened this issue Oct 3, 2024 · 1 comment

Comments

@stertooy
Copy link
Contributor

stertooy commented Oct 3, 2024

Given the following group G and subgroups H and K, it seems the intersection being calculated is wrong:

gap> G := ExamplesOfSomePcpGroups( 1 );;
gap> H := Subgroup( G, [ G.1*G.4^5, G.1*G.2^4*G.3*G.4 ] );;
gap> K := Subgroup( G, [ G.1^-1*G.2^2*G.3^-1*G.4^-2, G.1^-1*G.2^2*G.3^-2 ] );;
gap> I := Intersection( H, K );;
gap> IsSubgroup( H, I );
true
gap> IsSubgroup( K, I );
false

The Intersection command will call NormalIntersection( K, H ), which is where the error happens. Turning on all the assertion variables (CHECK_IGS, etc) doesn't detect any problems, unfortunately.

After some digging, I found the following awkward result:

gap> IsNormal( H, K );
true
gap> HK := ClosureGroup( H, K );;
gap> IsNormal( HK, K );
false

The source code of IsNormal for PcpGroups is:

function ( H, U )
    local u, h;
    for h in GeneratorsOfPcp( Pcp( H, U ) ) do
        for u in Igs( U ) do
            if not u ^ h in U then
                return false;
            fi;
        od;
    od;
    return true;
end

I suspect that the usage of Pcp( H, U ) is to blame, and this should be Pcp( H ) instead?

@stertooy
Copy link
Contributor Author

stertooy commented Oct 3, 2024

Oops, apparently this was already fixed, but I was working on 2.16 again in my fresh install of GAP 4.13.1. Apologies.

@stertooy stertooy closed this as not planned Won't fix, can't repro, duplicate, stale Oct 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant