-
Notifications
You must be signed in to change notification settings - Fork 163
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
Fp-group handling #596
Comments
I tried this experiment with Again all but the last two lines ran instantenous, then when I ask for
Same error if I run the last line. I am not even sure what the elements of this Another interesting thing, already mentioned in #592 by @bh11 is that for pc groups BTW, I know these are in some sense ridiculous examples that are probably will never tried by any user, so just let me know if I should stop. |
In your first example, |
Leaving aside that this is a constructed example there are a couple of items that an interested person could code and thereby improve the system:
This is -- both in terms how to convert to a monoid, i.e. addition of generators for inverses, and the actual Knuth Bendix implementation by far weaker than standalone code and thus could be improved substantially (with what also would amount to substantial work).
|
@hulpke Yes, I completely agree that abelian fp groups should be handled differently, because you basically only do Gaussian elimination (Smith normal form, whatever) on them. If somebody points me to the right direction on how to make them new objects, etc. , I would be willing (at some point) to look at this. However, currently I have zero knowledge on a) how exactly GAP handles fp-groups and b) how new objects/categories/whatever would need to be introduced. BTW, this task may be easier than at first look, because one could always say GAP to compute the independent generators, and the simply have an isomorphism e.g. to an abelian pc-group, no? |
Dear Alexander, Gabor,
just to note that I have started working on some research to do with finitely
presented groups (and semigroups, while I am at it), in particular in relation
to hyperbolic groups. I was planning on improving some of the GAP
infrastructure here, but haven't gotten there yet.
Thanks for the heads up on the current state in this though!
Cheers,
Markus
|
Note that finitely generated abelian groups already can be dealt with quite efficiently in GAP: just represent them as pcp-groups, using the polycyclic package. So I am not sure we need another type just for those. |
@hungaborhorvath PcGroups are inherently finite and cannot be used to represent infinite groups. |
@fingolfin I tried to use them, but got an error message that I cannot really place, see #595. @hulpke Sorry for my ignorance, I thought pc-groups are polycyclic groups, thus Z can be in the representation, as well. Or are you saying that for practical purposes, GAP only deals with finite polycyclic groups? |
@hungaborhorvath |
@fingolfin Does "polycyclic" provide a method for |
@hulpke Not quite:
|
@hungaborhorvath both pc-groups and pcp-groups are special representations of polycyclic groups, designed around polycylic presentations. But of course e.g. a permutation group can be polycylic, too, without being a pc-group or a pcp-group. This is why there are two chapters in the GAP manual, one on "pc groups", one on "polycyclic groups" [ EDIT: oops, sorry, that was for @hungaborhorvath and not @hulpke ] |
@fingolfin Ah, yes -- it's a constructor. The library creates infinite abelian groups by default as fp groups because it does not know better -- it would be nice if one could make them Pcp if the package is available (but that seems to be more tricky). Thanks! |
I played around with fp-groups a bit, and found some weird behaviour in GAP. I am not sure if these are bugs or neccessities due to the presentation of the group.
I played with the following group:
First of all,
IsAbelian(G)
did not give me any results in a reasonable time (couple minutes). If I invert the relations then GAP immediately recognizes them as commutators, andIsAbelian(G)
is instantenous.Second,
AbelianInvariants
is instantenous. Then, however,IndependentGeneratorsOfAbelianGroup
takes again an immensely long time. Without havingIsAbelian
set to true, it seems that it is stuck with trying to check some properties to determine which method to use. If I setIsAbelian
to true, then it runslib/grpfp.gi:6041
for again a very long time (85 seconds).I checked this method and ran all but the last two lines of it. These all ran instantenous. The last two lines are
The interesting thing is, that if I simply ask GAP to print
base
, it already takes an enormous time (around 40 seconds).If I TraceMethod it, then this is what uses the most time:
This seems to mean that the algorithm itself is fine, the problem seems to lie in how the elements of an fp-group are represented for GAP.
Is that really the case and can this be helped in any way?
The text was updated successfully, but these errors were encountered: