--- doc/libraries.xml.orig 2020-07-24 17:55:13.000000000 -0600
+++ doc/libraries.xml 2022-09-11 10:11:23.941827015 -0600
@@ -7,11 +7,14 @@
There are the following generic pcp-groups available.
<ManSection>
-<Func Name="AbelianPcpGroup" Arg="n, rels"/>
+<Func Name="AbelianPcpGroup" Arg="n[, rels]"/>
+<Func Name="AbelianPcpGroup" Arg="rels"/>
<Description>
constructs the abelian group on <A>n</A> generators such that
generator <M>i</M> has order <M>rels[i]</M>. If this order is infinite,
- then <M>rels[i]</M> should be either unbound or 0.
+ then <M>rels[i]</M> should be either unbound or 0 or infinity.
+ If <A>n</A> is not provided then the length of <A>rels</A> is used.
+ If <A>rels</A> is omitted then all generators will have infinite order.
</Description>
</ManSection>
--- doc/methods.xml.orig 2020-07-24 17:55:13.000000000 -0600
+++ doc/methods.xml 2022-09-11 10:11:54.293893324 -0600
@@ -729,7 +729,7 @@ g2^-2*g4
and <M>R/C</M> is isomorphic to <A>M</A>.
<Example><![CDATA[
-gap> G := AbelianPcpGroup( 3,[] );
+gap> G := AbelianPcpGroup( 3 );
Pcp-group with orders [ 0, 0, 0 ]
gap> ext := SchurCover( G );
Pcp-group with orders [ 0, 0, 0, 0, 0, 0 ]
@@ -753,7 +753,7 @@ true
<Example><![CDATA[
gap> G := DihedralPcpGroup( 0 );
Pcp-group with orders [ 2, 0 ]
-gap> DirectProduct( G, AbelianPcpGroup( 2, [] ) );
+gap> DirectProduct( G, AbelianPcpGroup( 2 ) );
Pcp-group with orders [ 0, 0, 2, 0 ]
gap> AbelianInvariantsMultiplier( last );
[ 0, 2, 2, 2, 2 ]
--- gap/basic/construct.gi.orig 2020-07-24 17:55:13.000000000 -0600
+++ gap/basic/construct.gi 2022-09-11 10:12:49.853014707 -0600
@@ -40,7 +40,7 @@ function( filter, ints )
# construct group
coll := FromTheLeftCollector( n );
for i in [1..n] do
- if IsBound( r[i] ) and r[i] > 0 then
+ if IsBound( r[i] ) and r[i] > 0 and r[i] <> infinity then
SetRelativeOrder( coll, i, r[i] );
fi;
od;