I have downloaded GAP version 4.7.8. for windows, and installed everything (all packages, including"ACE") with the installer. Now I want to do a simple task, enumerating the cosets. To create a group and a subgroup I execute:
gap> G := SymmetricGroup( 8 );
Sym( [ 1 .. 8 ] )
gap> U := Subgroup( G, [ (1,2), (3,4), (3,4,5) ] );
Group([ (1,2), (3,4), (3,4,5) ])
which works fine. Now for coset enumeration I found in the GAP Manual for Version 4.7.8 the function CosetTable, but when I trying to execute in analogy with the example given there I get:
gap> tab := CosetTable(G, U);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 1st choice method found for `CosetTable' on 2 arguments called from
<function "HANDLE_METHOD_NOT_FOUND">( <arguments> )
called from read-eval loop at line 3 of *stdin*
you can 'quit;' to quit to outer loop, or
you can 'return;' to continue
which leaves me with a big question sign? Using "? Coset Table" directly in GAP just gives me also the above section in the manual. Now looking further through the manual I found the function "CosetTableBySubgroup", executing gives me
gap> CosetTableBySubgroup(G,U);
[ [ 2, 4, 1, 6, 8, 3, 5, 10, 7, 9 ], [ 3, 1, 6, 2, 7, 4, 9, 5, 10, 8 ],
[ 1, 5, 7, 4, 2, 6, 3, 9, 8, 10 ], [ 1, 5, 7, 4, 2, 6, 3, 9, 8, 10 ] ]
So luckily something that works, but what would be preferable would be a list of cosets, something like this GAP Code which unluckily does not work (maybe because it refers to an old version), because it gives:
gap> LeftCosets(G, U);
Error, Variable: 'LeftCosets' must have a value not in any function at line 6 of *stdin*
While searching through the web I found this document, stating that you have to define the function "CosetTable" first, but when I try to execute the code there I get:
gap> CosetTable:=function(g,n)
> local x,y,tmp;
> tmp:=Flat(List(LeftCosets(g,n),x->Elements(x)));
Syntax error: warning: unbound global variable
tmp:=Flat(List(LeftCosets(g,n),x->Elements(x)));
^
So does not help. Then I found the package "ACE", and tried to use it, but this package, despite being installed, does not load on my system:
gap> LoadPackage("ace");
#I Package ``ACE'': The program `ace' is not compiled
fail
How should I compile, I have no compiler on my Windows 8.1 system, and I used the installer, which should have all packages pre-installed on it?
So how can I enumerate the cosets in GAP?????
Forget about the external binaries (or the ACE package, or in fact any packages at all) at the moment -- they can give runtime improvements, but that is not what you need here. Also the web pages you link are not the best references. Go to http://www.gap-system.org.
CosetTableor "coset enumeration" refers to a technical concept (a particular way to write down a permutation representation for finitely presented groups. Again this is most likely not what you are after. (TheCosetTableBySubgroupgives such a table -- each coset is represented by a number.)If you want a list of the cosets (GAP uses right cosets, not left cosets and there is basically no functionality for left cosets), you can use the command
RightCosets:You can then determine the action on the cosets by multiplication
or
ActionHomomorphism(which will not return the image group, but a homomorphism.