Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package gap-cohomolo for openSUSE:Factory 
checked in at 2026-09-02 17:03:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gap-cohomolo (Old)
 and      /work/SRC/openSUSE:Factory/.gap-cohomolo.new.1265 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gap-cohomolo"

Wed Sep  2 17:03:32 2026 rev:4 rq:1375328 version:1.7.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/gap-cohomolo/gap-cohomolo.changes        
2026-08-15 22:41:31.390480928 +0200
+++ /work/SRC/openSUSE:Factory/.gap-cohomolo.new.1265/gap-cohomolo.changes      
2026-09-02 17:03:59.133905150 +0200
@@ -1,0 +2,8 @@
+Wed Sep  2 07:38:04 UTC 2026 - Jan Engelhardt <[email protected]>
+
+- Update to release 1.7.1
+  * In `SplitExtensionCHR`, `NonsplitExtension` and
+    `CoveringGroup`, the order of the result is now known if the
+    order of the given finitely presented group is known.
+
+-------------------------------------------------------------------

Old:
----
  cohomolo-1.7.0.tar.gz

New:
----
  cohomolo-1.7.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gap-cohomolo.spec ++++++
--- /var/tmp/diff_new_pack.cdKT2g/_old  2026-09-02 17:03:59.906931979 +0200
+++ /var/tmp/diff_new_pack.cdKT2g/_new  2026-09-02 17:03:59.907932014 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           gap-cohomolo
-Version:        1.7.0
+Version:        1.7.1
 Release:        0
 Summary:        GAP: Cohomology groups of finite groups on finite modules
 License:        GPL-2.0-only

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.cdKT2g/_old  2026-09-02 17:03:59.942933228 +0200
+++ /var/tmp/diff_new_pack.cdKT2g/_new  2026-09-02 17:03:59.947933402 +0200
@@ -1,5 +1,5 @@
-mtime: 1786760383
-commit: eb0570ffce38599085388a460fa3a41a88e805a78b0f9e6f0c9e5a5c170e67c3
+mtime: 1788334709
+commit: aa1e12b0c7230ce5402060a2ea7766eda5af9cfc33b07d557d3ff420905aee6c
 url: https://src.opensuse.org/jengelh/gap-cohomolo
 revision: master
 

++++++ build.specials.obscpio ++++++

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2026-09-02 09:38:29.000000000 +0200
@@ -0,0 +1 @@
+.osc

++++++ cohomolo-1.7.0.tar.gz -> cohomolo-1.7.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cohomolo-1.7.0/CHANGES new/cohomolo-1.7.1/CHANGES
--- old/cohomolo-1.7.0/CHANGES  2026-08-13 02:00:00.000000000 +0200
+++ new/cohomolo-1.7.1/CHANGES  2026-08-31 02:00:00.000000000 +0200
@@ -1,5 +1,10 @@
 This file describes changes in the cohomolo package.
 
+1.7.1 (2026-08-31)
+  - In SplitExtensionCHR, NonsplitExtension, and CoveringGroup, the
+    order of the result is known if the order of the given finitely
+    presented group is known
+
 1.7.0 (2026-08-13)
   - Report an error when an external program fails, instead of returning the
     result of an earlier stage of the computation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cohomolo-1.7.0/PackageInfo.g 
new/cohomolo-1.7.1/PackageInfo.g
--- old/cohomolo-1.7.0/PackageInfo.g    2026-08-13 02:00:00.000000000 +0200
+++ new/cohomolo-1.7.1/PackageInfo.g    2026-08-31 02:00:00.000000000 +0200
@@ -2,8 +2,8 @@
 
 PackageName := "cohomolo",
 Subtitle := "Cohomology groups of finite groups on finite modules",
-Version := "1.7.0",
-Date := "13/08/2026", # dd/mm/yyyy format
+Version := "1.7.1",
+Date := "31/08/2026", # dd/mm/yyyy format
 License := "GPL-2.0-or-later",
 
 Persons := [
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cohomolo-1.7.0/doc/_entities.xml 
new/cohomolo-1.7.1/doc/_entities.xml
--- old/cohomolo-1.7.0/doc/_entities.xml        2026-08-13 02:00:00.000000000 
+0200
+++ new/cohomolo-1.7.1/doc/_entities.xml        2026-08-31 02:00:00.000000000 
+0200
@@ -1,4 +1,4 @@
-<!ENTITY RELEASEDATE '13 August 2026'>
+<!ENTITY RELEASEDATE '31 August 2026'>
 <!ENTITY RELEASEYEAR '2026'>
-<!ENTITY VERSION '1.7.0'>
+<!ENTITY VERSION '1.7.1'>
 <!ENTITY cohomolo '<Package>cohomolo</Package>'>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cohomolo-1.7.0/doc/chap0.html 
new/cohomolo-1.7.1/doc/chap0.html
--- old/cohomolo-1.7.0/doc/chap0.html   2026-08-13 02:00:00.000000000 +0200
+++ new/cohomolo-1.7.1/doc/chap0.html   2026-08-31 02:00:00.000000000 +0200
@@ -29,10 +29,10 @@
 <h2>Cohomology groups of finite groups on finite modules</h2>
 
 <p>
-    1.7.0</p>
+    1.7.1</p>
 
 <p>
-    13 August 2026
+    31 August 2026
   </p>
 
 </div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cohomolo-1.7.0/doc/chap0.txt 
new/cohomolo-1.7.1/doc/chap0.txt
--- old/cohomolo-1.7.0/doc/chap0.txt    2026-08-13 02:00:00.000000000 +0200
+++ new/cohomolo-1.7.1/doc/chap0.txt    2026-08-31 02:00:00.000000000 +0200
@@ -6,10 +6,10 @@
               Cohomology groups of finite groups on finite modules 
   
   
-                                     1.7.0
+                                     1.7.1
   
   
-                                 13 August 2026
+                                 31 August 2026
   
   
                                    Derek Holt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cohomolo-1.7.0/doc/chap0_mj.html 
new/cohomolo-1.7.1/doc/chap0_mj.html
--- old/cohomolo-1.7.0/doc/chap0_mj.html        2026-08-13 02:00:00.000000000 
+0200
+++ new/cohomolo-1.7.1/doc/chap0_mj.html        2026-08-31 02:00:00.000000000 
+0200
@@ -32,10 +32,10 @@
 <h2>Cohomology groups of finite groups on finite modules</h2>
 
 <p>
-    1.7.0</p>
+    1.7.1</p>
 
 <p>
-    13 August 2026
+    31 August 2026
   </p>
 
 </div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cohomolo-1.7.0/doc/chap1.html 
new/cohomolo-1.7.1/doc/chap1.html
--- old/cohomolo-1.7.0/doc/chap1.html   2026-08-13 02:00:00.000000000 +0200
+++ new/cohomolo-1.7.1/doc/chap1.html   2026-08-31 02:00:00.000000000 +0200
@@ -134,7 +134,7 @@
 <h5>1.3-1 CoveringGroup</h5>
 
 <div class="func"><table class="func" width="100%"><tr><td 
class="tdleft"><code class="func">&#8227; CoveringGroup</code>( <var 
class="Arg">chr</var> )</td><td 
class="tdright">(&nbsp;function&nbsp;)</td></tr></table></div>
-<p><var class="Arg">chr</var> must be a cohomology-record, created by a call 
of <code class="code">CHR(<var class="Arg">G</var>,<var 
class="Arg">p</var>,<var class="Arg">F</var>[,<var 
class="Arg">mats</var>])</code>, where <var class="Arg">F</var> is a finitely 
presented group. <code class="code">CoveringGroup</code> calculates a 
presentation of a covering extension of <span class="SimpleMath">Mul_p</span> 
by <var class="Arg">G</var>, where <span class="SimpleMath">Mul_p</span> is the 
<var class="Arg">p</var>-part of the Schur multiplier <var 
class="Arg">Mul</var> of <var class="Arg">G</var>. The set of generators of the 
finitely presented group that is returned is a union of two sets, which are in 
one-one correspondence with the generators of <var class="Arg">F</var> and of 
<span class="SimpleMath">Mul_p</span>, respectively.</p>
+<p><var class="Arg">chr</var> must be a cohomology-record, created by a call 
of <code class="code">CHR(<var class="Arg">G</var>,<var 
class="Arg">p</var>,<var class="Arg">F</var>[,<var 
class="Arg">mats</var>])</code>, where <var class="Arg">F</var> is a finitely 
presented group. <code class="func">CoveringGroup</code> calculates a 
presentation of a covering extension of <span class="SimpleMath">Mul_p</span> 
by <var class="Arg">G</var>, where <span class="SimpleMath">Mul_p</span> is the 
<var class="Arg">p</var>-part of the Schur multiplier <var 
class="Arg">Mul</var> of <var class="Arg">G</var>. The set of generators of the 
finitely presented group that is returned is a union of two sets, which are in 
one-one correspondence with the generators of <var class="Arg">F</var> and of 
<span class="SimpleMath">Mul_p</span>, respectively.</p>
 
 <p>The relators fall into three classes:</p>
 
@@ -153,6 +153,17 @@
 
 </dd>
 </dl>
+
+<div class="example"><pre>
+<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">G:= 
AlternatingGroup( 5 );</span>
+Alt( [ 1 .. 5 ] )
+<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">F:= Image( 
IsomorphismFpGroupByGenerators( G, GeneratorsOfGroup(G) ) );</span>
+&lt;fp group of size 60 on the generators [ F1, F2 ]&gt;
+<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">C:= CHR( G, 2, F 
);;</span>
+<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">CoveringGroup( C 
);</span>
+&lt;fp group of size 120 on the generators [ f1, f2, f3 ]&gt;
+</pre></div>
+
 <p><a id="X7A34884A789EB9A9" name="X7A34884A789EB9A9"></a></p>
 
 <h4>1.4 <span class="Heading">FirstCohomologyDimension</span></h4>
@@ -184,7 +195,19 @@
 <h5>1.6-1 SplitExtensionCHR</h5>
 
 <div class="func"><table class="func" width="100%"><tr><td 
class="tdleft"><code class="func">&#8227; SplitExtensionCHR</code>( <var 
class="Arg">chr</var> )</td><td 
class="tdright">(&nbsp;function&nbsp;)</td></tr></table></div>
-<p><var class="Arg">chr</var> must be a cohomology-record, created by a call 
of <code class="code">CHR(<var class="Arg">G</var>,<var 
class="Arg">p</var>,<var class="Arg">F</var>,<var 
class="Arg">mats</var>)</code>, where <var class="Arg">F</var> is a finitely 
presented group. <code class="code">SplitExtensionCHR</code> returns a 
presentation of the split extension of the module <var class="Arg">M</var> 
defined by the matrices <var class="Arg">mats</var> by the group <var 
class="Arg">G</var>. This is a straightforward calculation, and involves no 
call of the external cohomology programs. It is provided here for 
convenience.</p>
+<p><var class="Arg">chr</var> must be a cohomology-record, created by a call 
of <code class="code">CHR(<var class="Arg">G</var>,<var 
class="Arg">p</var>,<var class="Arg">F</var>,<var 
class="Arg">mats</var>)</code>, where <var class="Arg">F</var> is a finitely 
presented group. <code class="func">SplitExtensionCHR</code> returns a 
presentation of the split extension of the module <var class="Arg">M</var> 
defined by the matrices <var class="Arg">mats</var> by the group <var 
class="Arg">G</var>. This is a straightforward calculation, and involves no 
call of the external cohomology programs. It is provided here for 
convenience.</p>
+
+
+<div class="example"><pre>
+<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">G:= Group( [ 
(1,2), (3,4) ] );;</span>
+<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">F:= Image( 
IsomorphismFpGroupByGenerators( G, GeneratorsOfGroup(G) ) );</span>
+&lt;fp group of size 4 on the generators [ F1, F2 ]&gt;
+<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">C:= CHR( G, 2, 
F, [ [[1]], [[1]] ] * Z(2) );;</span>
+<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">ext:= 
SplitExtensionCHR( C );</span>
+&lt;fp group of size 8 on the generators [ f1, f2, f3 ]&gt;
+<span class="GAPprompt">gap&gt;</span> <span 
class="GAPinput">StructureDescription( ext );</span>
+"C2 x C2 x C2"
+</pre></div>
 
 <p><a id="X85E6B6BB7C54A1BF" name="X85E6B6BB7C54A1BF"></a></p>
 
@@ -195,7 +218,7 @@
 <h5>1.7-1 NonsplitExtension</h5>
 
 <div class="func"><table class="func" width="100%"><tr><td 
class="tdleft"><code class="func">&#8227; NonsplitExtension</code>( <var 
class="Arg">chr</var>[, <var class="Arg">vec</var>] )</td><td 
class="tdright">(&nbsp;function&nbsp;)</td></tr></table></div>
-<p><var class="Arg">chr</var> must be a cohomology-record, created by a call 
of <code class="code">CHR(<var class="Arg">G</var>,<var 
class="Arg">p</var>,<var class="Arg">F</var>,<var 
class="Arg">mats</var>)</code>, where <var class="Arg">F</var> is a finitely 
presented group. If present, <var class="Arg">vec</var> must be a list of 
integers of length equal to the dimension over <var class="Arg">K</var> = <span 
class="SimpleMath">GF(p)</span> of the second cohomology group <span 
class="SimpleMath">H^2(G,M)</span> of the group <var class="Arg">G</var> in its 
action on the module <var class="Arg">M</var> defined by the matrices <var 
class="Arg">mats</var>. <code class="code">NonsplitExtension</code> calculates 
and returns a presentation of a nonsplit extension of <var class="Arg">M</var> 
by <var class="Arg">G</var>. Since there may be many such extensions, and the 
equivalence classes of these extensions are in one-one correspondence with the 
nonzero elements of <span class="SimpleMath"
 >H^2(G,M)</span>, the optional second parameter can be used to specify an 
 >element of <span class="SimpleMath">H^2(G,M)</span> as a vector. The default 
 >value of this vector is <code class="code">[1,0,...,0]</code>. The set of 
 >generators of the finitely presented group that is returned is a union of two 
 >sets, which are in one-one correspondence with the generators of <var 
 >class="Arg">F</var> and of <var class="Arg">M</var> (as an abelian group), 
 >respectively.</p>
+<p><var class="Arg">chr</var> must be a cohomology-record, created by a call 
of <code class="code">CHR(<var class="Arg">G</var>,<var 
class="Arg">p</var>,<var class="Arg">F</var>,<var 
class="Arg">mats</var>)</code>, where <var class="Arg">F</var> is a finitely 
presented group. If present, <var class="Arg">vec</var> must be a list of 
integers of length equal to the dimension over <var class="Arg">K</var> = <span 
class="SimpleMath">GF(p)</span> of the second cohomology group <span 
class="SimpleMath">H^2(G,M)</span> of the group <var class="Arg">G</var> in its 
action on the module <var class="Arg">M</var> defined by the matrices <var 
class="Arg">mats</var>. <code class="func">NonsplitExtension</code> calculates 
and returns a presentation of a nonsplit extension of <var class="Arg">M</var> 
by <var class="Arg">G</var>. Since there may be many such extensions, and the 
equivalence classes of these extensions are in one-one correspondence with the 
nonzero elements of <span class="SimpleMath"
 >H^2(G,M)</span>, the optional second parameter can be used to specify an 
 >element of <span class="SimpleMath">H^2(G,M)</span> as a vector. The default 
 >value of this vector is <code class="code">[1,0,...,0]</code>. The set of 
 >generators of the finitely presented group that is returned is a union of two 
 >sets, which are in one-one correspondence with the generators of <var 
 >class="Arg">F</var> and of <var class="Arg">M</var> (as an abelian group), 
 >respectively.</p>
 
 <p>The relators fall into three classes:</p>
 
@@ -210,10 +233,29 @@
 
 </dd>
 <dt><strong class="Mark">(c)</strong></dt>
-<dd><p>Those that give the values of the relators of <var class="Arg">F</var> 
as elements of <span class="SimpleMath">M</span>. (<em>Note</em>: It is not 
particularly efficient to call <code 
class="code">SecondCohomologyDimension</code> first to calculate the dimension 
of <span class="SimpleMath">H^2(G,M)</span>, which must of course be known if 
the second parameter is to be given; it is preferable to call <code 
class="code">NonsplitExtension</code> immediately without the second parameter 
(which will return one nonsplit extension), and then to call <code 
class="code">SecondCohomologyDimension</code>, which will at that stage return 
the required dimension immediately - all subsequent calls of <code 
class="code">NonsplitExtension</code> on <var class="Arg">chr</var> will also 
yield immediate results.)</p>
+<dd><p>Those that give the values of the relators of <var class="Arg">F</var> 
as elements of <span class="SimpleMath">M</span>. (<em>Note</em>: It is not 
particularly efficient to call <code 
class="code">SecondCohomologyDimension</code> first to calculate the dimension 
of <span class="SimpleMath">H^2(G,M)</span>, which must of course be known if 
the second parameter is to be given; it is preferable to call <code 
class="func">NonsplitExtension</code> immediately without the second parameter 
(which will return one nonsplit extension), and then to call <code 
class="func">SecondCohomologyDimension</code> (<a 
href="chap1.html#X87440B9B7B137892"><span class="RefLink">1.5-1</span></a>), 
which will at that stage return the required dimension immediately - all 
subsequent calls of <code class="func">NonsplitExtension</code> on <var 
class="Arg">chr</var> will also yield immediate results.)</p>
 
 </dd>
 </dl>
+
+<div class="example"><pre>
+<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">G:= 
ElementaryAbelianGroup( IsPermGroup, 4 );</span>
+Group([ (1,2), (3,4) ])
+<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">F:= Image( 
IsomorphismFpGroupByGenerators( G, GeneratorsOfGroup(G) ) );</span>
+&lt;fp group of size 4 on the generators [ F1, F2 ]&gt;
+<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">C:= CHR( G, 2, 
F, [ [[1]], [[1]] ] * Z(2) );;</span>
+<span class="GAPprompt">gap&gt;</span> <span 
class="GAPinput">SecondCohomologyDimension( C );</span>
+3
+<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">ext:= 
NonsplitExtension( C, [ 1, 0, 0 ] );</span>
+&lt;fp group of size 8 on the generators [ f1, f2, f3 ]&gt;
+<span class="GAPprompt">gap&gt;</span> <span 
class="GAPinput">StructureDescription( ext );</span>
+"D8"
+<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">ext:= 
NonsplitExtension( C, [ 1, 1, 1 ] );</span>
+&lt;fp group of size 8 on the generators [ f1, f2, f3 ]&gt;
+<span class="GAPprompt">gap&gt;</span> <span 
class="GAPinput">StructureDescription( ext );</span>
+"Q8"
+</pre></div>
+
 <p><a id="X785B656883E116E6" name="X785B656883E116E6"></a></p>
 
 <h4>1.8 <span class="Heading">CalcPres</span></h4>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cohomolo-1.7.0/doc/chap1.txt 
new/cohomolo-1.7.1/doc/chap1.txt
--- old/cohomolo-1.7.0/doc/chap1.txt    2026-08-13 02:00:00.000000000 +0200
+++ new/cohomolo-1.7.1/doc/chap1.txt    2026-08-31 02:00:00.000000000 +0200
@@ -98,7 +98,7 @@
   CoveringGroup( chr )  function
   
   chr  must  be  a  cohomology-record, created by a call 
of 
CHR(G,p,F[,mats]),
-  where   F   is  a  finitely  presented  group.  
CoveringGroup  calculates  a
+  where   F   is  a  finitely  presented  group.  
CoveringGroup  calculates  a
   presentation  of  a  covering  extension  of  Mul_p by 
G, where Mul_p is the
   p-part  of  the  Schur  multiplier  Mul  of  
G. The set of generators of the
   finitely  presented group that is returned is a union of two sets, which are
@@ -116,6 +116,16 @@
   (c)
         Those that give the values of the relators of F 
as elements of Mul_p.
   
+    Example  
+    gap> G:= AlternatingGroup( 5 );
+    Alt( [ 1 .. 5 ] )
+    gap> F:= Image( IsomorphismFpGroupByGenerators( G, 
GeneratorsOfGroup(G) ) );
+    <fp group of size 60 on the generators [ F1, F2 ]>
+    gap> C:= CHR( G, 2, F );;
+    gap> CoveringGroup( C );
+    <fp group of size 120 on the generators [ f1, f2, f3 
]>
+  
+  
   
   1.4 FirstCohomologyDimension
   
@@ -150,11 +160,22 @@
   SplitExtensionCHR( chr )  
function
   
   chr must be a cohomology-record, created by a call of 
CHR(G,p,F,mats),
 where
-  F is a finitely presented group. SplitExtensionCHR 
returns a presentation of
+  F is a finitely presented group. SplitExtensionCHR 
returns a presentation of
   the  split  extension  of  the  module M defined by the matrices 
mats by the
   group  G. This is a straightforward calculation, and involves no 
call of the
   external cohomology programs. It is provided here for convenience.
   
+    Example  
+    gap> G:= Group( [ (1,2), (3,4) ] );;
+    gap> F:= Image( IsomorphismFpGroupByGenerators( G, 
GeneratorsOfGroup(G) ) );
+    <fp group of size 4 on the generators [ F1, F2 ]>
+    gap> C:= CHR( G, 2, F, [ [[1]], [[1]] ] * Z(2) 
);;
+    gap> ext:= SplitExtensionCHR( C );
+    <fp group of size 8 on the generators [ f1, f2, f3 ]>
+    gap> StructureDescription( ext );
+    "C2 x C2 x C2"
+  
+  
   
   1.7 NonsplitExtension
   
@@ -166,7 +187,7 @@
   F  is a finitely presented group. If present, vec must 
be a list of integers
   of  length  equal  to  the dimension over K = GF(p) of 
the second cohomology
   group  H^2(G,M)  of the group G in its action on the 
module M defined by the
-  matrices  mats. NonsplitExtension calculates and 
returns a presentation of a
+  matrices  mats. NonsplitExtension calculates and returns 
a presentation of a
   nonsplit  extension  of M by G. Since there may be many 
such extensions, and
   the  equivalence  classes  of these extensions are in one-one correspondence
   with  the nonzero elements of H^2(G,M), the optional second 
parameter can be
@@ -189,11 +210,30 @@
         (Note:     It     is    not    particularly    efficient    
to    call
         SecondCohomologyDimension   first   to   calculate  the  
dimension  of
         H^2(G,M),  which must of course be known if the second 
parameter is to
-        be  given;  it  is  preferable  to  call NonsplitExtension 
immediately
+        be  given;  it  is  preferable  to  call NonsplitExtension 
immediately
         without   the   second  parameter  (which  will  return  one  nonsplit
-        extension),  and then to call SecondCohomologyDimension, 
which will at
-        that  stage return the required dimension immediately - all subsequent
-        calls of NonsplitExtension on chr will also yield 
immediate results.)
+        extension),  and then to call SecondCohomologyDimension 
(1.5-1), which
+        will  at  that  stage  return the required dimension immediately - all
+        subsequent calls of NonsplitExtension on chr will 
also yield immediate
+        results.)
+  
+    Example  
+    gap> G:= ElementaryAbelianGroup( IsPermGroup, 4 
);
+    Group([ (1,2), (3,4) ])
+    gap> F:= Image( IsomorphismFpGroupByGenerators( G, 
GeneratorsOfGroup(G) ) );
+    <fp group of size 4 on the generators [ F1, F2 ]>
+    gap> C:= CHR( G, 2, F, [ [[1]], [[1]] ] * Z(2) 
);;
+    gap> SecondCohomologyDimension( C );
+    3
+    gap> ext:= NonsplitExtension( C, [ 1, 0, 0 ] 
);
+    <fp group of size 8 on the generators [ f1, f2, f3 ]>
+    gap> StructureDescription( ext );
+    "D8"
+    gap> ext:= NonsplitExtension( C, [ 1, 1, 1 ] 
);
+    <fp group of size 8 on the generators [ f1, f2, f3 ]>
+    gap> StructureDescription( ext );
+    "Q8"
+  
   
   
   1.8 CalcPres
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cohomolo-1.7.0/doc/chap1_mj.html 
new/cohomolo-1.7.1/doc/chap1_mj.html
--- old/cohomolo-1.7.0/doc/chap1_mj.html        2026-08-13 02:00:00.000000000 
+0200
+++ new/cohomolo-1.7.1/doc/chap1_mj.html        2026-08-31 02:00:00.000000000 
+0200
@@ -137,7 +137,7 @@
 <h5>1.3-1 CoveringGroup</h5>
 
 <div class="func"><table class="func" width="100%"><tr><td 
class="tdleft"><code class="func">&#8227; CoveringGroup</code>( <var 
class="Arg">chr</var> )</td><td 
class="tdright">(&nbsp;function&nbsp;)</td></tr></table></div>
-<p><var class="Arg">chr</var> must be a cohomology-record, created by a call 
of <code class="code">CHR(<var class="Arg">G</var>,<var 
class="Arg">p</var>,<var class="Arg">F</var>[,<var 
class="Arg">mats</var>])</code>, where <var class="Arg">F</var> is a finitely 
presented group. <code class="code">CoveringGroup</code> calculates a 
presentation of a covering extension of <span 
class="SimpleMath">\(Mul_p\)</span> by <var class="Arg">G</var>, where <span 
class="SimpleMath">\(Mul_p\)</span> is the <var class="Arg">p</var>-part of the 
Schur multiplier <var class="Arg">Mul</var> of <var class="Arg">G</var>. The 
set of generators of the finitely presented group that is returned is a union 
of two sets, which are in one-one correspondence with the generators of <var 
class="Arg">F</var> and of <span class="SimpleMath">\(Mul_p\)</span>, 
respectively.</p>
+<p><var class="Arg">chr</var> must be a cohomology-record, created by a call 
of <code class="code">CHR(<var class="Arg">G</var>,<var 
class="Arg">p</var>,<var class="Arg">F</var>[,<var 
class="Arg">mats</var>])</code>, where <var class="Arg">F</var> is a finitely 
presented group. <code class="func">CoveringGroup</code> calculates a 
presentation of a covering extension of <span 
class="SimpleMath">\(Mul_p\)</span> by <var class="Arg">G</var>, where <span 
class="SimpleMath">\(Mul_p\)</span> is the <var class="Arg">p</var>-part of the 
Schur multiplier <var class="Arg">Mul</var> of <var class="Arg">G</var>. The 
set of generators of the finitely presented group that is returned is a union 
of two sets, which are in one-one correspondence with the generators of <var 
class="Arg">F</var> and of <span class="SimpleMath">\(Mul_p\)</span>, 
respectively.</p>
 
 <p>The relators fall into three classes:</p>
 
@@ -156,6 +156,17 @@
 
 </dd>
 </dl>
+
+<div class="example"><pre>
+<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">G:= 
AlternatingGroup( 5 );</span>
+Alt( [ 1 .. 5 ] )
+<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">F:= Image( 
IsomorphismFpGroupByGenerators( G, GeneratorsOfGroup(G) ) );</span>
+&lt;fp group of size 60 on the generators [ F1, F2 ]&gt;
+<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">C:= CHR( G, 2, F 
);;</span>
+<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">CoveringGroup( C 
);</span>
+&lt;fp group of size 120 on the generators [ f1, f2, f3 ]&gt;
+</pre></div>
+
 <p><a id="X7A34884A789EB9A9" name="X7A34884A789EB9A9"></a></p>
 
 <h4>1.4 <span class="Heading">FirstCohomologyDimension</span></h4>
@@ -187,7 +198,19 @@
 <h5>1.6-1 SplitExtensionCHR</h5>
 
 <div class="func"><table class="func" width="100%"><tr><td 
class="tdleft"><code class="func">&#8227; SplitExtensionCHR</code>( <var 
class="Arg">chr</var> )</td><td 
class="tdright">(&nbsp;function&nbsp;)</td></tr></table></div>
-<p><var class="Arg">chr</var> must be a cohomology-record, created by a call 
of <code class="code">CHR(<var class="Arg">G</var>,<var 
class="Arg">p</var>,<var class="Arg">F</var>,<var 
class="Arg">mats</var>)</code>, where <var class="Arg">F</var> is a finitely 
presented group. <code class="code">SplitExtensionCHR</code> returns a 
presentation of the split extension of the module <var class="Arg">M</var> 
defined by the matrices <var class="Arg">mats</var> by the group <var 
class="Arg">G</var>. This is a straightforward calculation, and involves no 
call of the external cohomology programs. It is provided here for 
convenience.</p>
+<p><var class="Arg">chr</var> must be a cohomology-record, created by a call 
of <code class="code">CHR(<var class="Arg">G</var>,<var 
class="Arg">p</var>,<var class="Arg">F</var>,<var 
class="Arg">mats</var>)</code>, where <var class="Arg">F</var> is a finitely 
presented group. <code class="func">SplitExtensionCHR</code> returns a 
presentation of the split extension of the module <var class="Arg">M</var> 
defined by the matrices <var class="Arg">mats</var> by the group <var 
class="Arg">G</var>. This is a straightforward calculation, and involves no 
call of the external cohomology programs. It is provided here for 
convenience.</p>
+
+
+<div class="example"><pre>
+<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">G:= Group( [ 
(1,2), (3,4) ] );;</span>
+<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">F:= Image( 
IsomorphismFpGroupByGenerators( G, GeneratorsOfGroup(G) ) );</span>
+&lt;fp group of size 4 on the generators [ F1, F2 ]&gt;
+<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">C:= CHR( G, 2, 
F, [ [[1]], [[1]] ] * Z(2) );;</span>
+<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">ext:= 
SplitExtensionCHR( C );</span>
+&lt;fp group of size 8 on the generators [ f1, f2, f3 ]&gt;
+<span class="GAPprompt">gap&gt;</span> <span 
class="GAPinput">StructureDescription( ext );</span>
+"C2 x C2 x C2"
+</pre></div>
 
 <p><a id="X85E6B6BB7C54A1BF" name="X85E6B6BB7C54A1BF"></a></p>
 
@@ -198,7 +221,7 @@
 <h5>1.7-1 NonsplitExtension</h5>
 
 <div class="func"><table class="func" width="100%"><tr><td 
class="tdleft"><code class="func">&#8227; NonsplitExtension</code>( <var 
class="Arg">chr</var>[, <var class="Arg">vec</var>] )</td><td 
class="tdright">(&nbsp;function&nbsp;)</td></tr></table></div>
-<p><var class="Arg">chr</var> must be a cohomology-record, created by a call 
of <code class="code">CHR(<var class="Arg">G</var>,<var 
class="Arg">p</var>,<var class="Arg">F</var>,<var 
class="Arg">mats</var>)</code>, where <var class="Arg">F</var> is a finitely 
presented group. If present, <var class="Arg">vec</var> must be a list of 
integers of length equal to the dimension over <var class="Arg">K</var> = <span 
class="SimpleMath">\(GF(p)\)</span> of the second cohomology group <span 
class="SimpleMath">\(H^2(G,M)\)</span> of the group <var class="Arg">G</var> in 
its action on the module <var class="Arg">M</var> defined by the matrices <var 
class="Arg">mats</var>. <code class="code">NonsplitExtension</code> calculates 
and returns a presentation of a nonsplit extension of <var class="Arg">M</var> 
by <var class="Arg">G</var>. Since there may be many such extensions, and the 
equivalence classes of these extensions are in one-one correspondence with the 
nonzero elements of <span class="Sim
 pleMath">\(H^2(G,M)\)</span>, the optional second parameter can be used to 
specify an element of <span class="SimpleMath">\(H^2(G,M)\)</span> as a vector. 
The default value of this vector is <code class="code">[1,0,...,0]</code>. The 
set of generators of the finitely presented group that is returned is a union 
of two sets, which are in one-one correspondence with the generators of <var 
class="Arg">F</var> and of <var class="Arg">M</var> (as an abelian group), 
respectively.</p>
+<p><var class="Arg">chr</var> must be a cohomology-record, created by a call 
of <code class="code">CHR(<var class="Arg">G</var>,<var 
class="Arg">p</var>,<var class="Arg">F</var>,<var 
class="Arg">mats</var>)</code>, where <var class="Arg">F</var> is a finitely 
presented group. If present, <var class="Arg">vec</var> must be a list of 
integers of length equal to the dimension over <var class="Arg">K</var> = <span 
class="SimpleMath">\(GF(p)\)</span> of the second cohomology group <span 
class="SimpleMath">\(H^2(G,M)\)</span> of the group <var class="Arg">G</var> in 
its action on the module <var class="Arg">M</var> defined by the matrices <var 
class="Arg">mats</var>. <code class="func">NonsplitExtension</code> calculates 
and returns a presentation of a nonsplit extension of <var class="Arg">M</var> 
by <var class="Arg">G</var>. Since there may be many such extensions, and the 
equivalence classes of these extensions are in one-one correspondence with the 
nonzero elements of <span class="Sim
 pleMath">\(H^2(G,M)\)</span>, the optional second parameter can be used to 
specify an element of <span class="SimpleMath">\(H^2(G,M)\)</span> as a vector. 
The default value of this vector is <code class="code">[1,0,...,0]</code>. The 
set of generators of the finitely presented group that is returned is a union 
of two sets, which are in one-one correspondence with the generators of <var 
class="Arg">F</var> and of <var class="Arg">M</var> (as an abelian group), 
respectively.</p>
 
 <p>The relators fall into three classes:</p>
 
@@ -213,10 +236,29 @@
 
 </dd>
 <dt><strong class="Mark">(c)</strong></dt>
-<dd><p>Those that give the values of the relators of <var class="Arg">F</var> 
as elements of <span class="SimpleMath">\(M\)</span>. (<em>Note</em>: It is not 
particularly efficient to call <code 
class="code">SecondCohomologyDimension</code> first to calculate the dimension 
of <span class="SimpleMath">\(H^2(G,M)\)</span>, which must of course be known 
if the second parameter is to be given; it is preferable to call <code 
class="code">NonsplitExtension</code> immediately without the second parameter 
(which will return one nonsplit extension), and then to call <code 
class="code">SecondCohomologyDimension</code>, which will at that stage return 
the required dimension immediately - all subsequent calls of <code 
class="code">NonsplitExtension</code> on <var class="Arg">chr</var> will also 
yield immediate results.)</p>
+<dd><p>Those that give the values of the relators of <var class="Arg">F</var> 
as elements of <span class="SimpleMath">\(M\)</span>. (<em>Note</em>: It is not 
particularly efficient to call <code 
class="code">SecondCohomologyDimension</code> first to calculate the dimension 
of <span class="SimpleMath">\(H^2(G,M)\)</span>, which must of course be known 
if the second parameter is to be given; it is preferable to call <code 
class="func">NonsplitExtension</code> immediately without the second parameter 
(which will return one nonsplit extension), and then to call <code 
class="func">SecondCohomologyDimension</code> (<a 
href="chap1_mj.html#X87440B9B7B137892"><span class="RefLink">1.5-1</span></a>), 
which will at that stage return the required dimension immediately - all 
subsequent calls of <code class="func">NonsplitExtension</code> on <var 
class="Arg">chr</var> will also yield immediate results.)</p>
 
 </dd>
 </dl>
+
+<div class="example"><pre>
+<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">G:= 
ElementaryAbelianGroup( IsPermGroup, 4 );</span>
+Group([ (1,2), (3,4) ])
+<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">F:= Image( 
IsomorphismFpGroupByGenerators( G, GeneratorsOfGroup(G) ) );</span>
+&lt;fp group of size 4 on the generators [ F1, F2 ]&gt;
+<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">C:= CHR( G, 2, 
F, [ [[1]], [[1]] ] * Z(2) );;</span>
+<span class="GAPprompt">gap&gt;</span> <span 
class="GAPinput">SecondCohomologyDimension( C );</span>
+3
+<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">ext:= 
NonsplitExtension( C, [ 1, 0, 0 ] );</span>
+&lt;fp group of size 8 on the generators [ f1, f2, f3 ]&gt;
+<span class="GAPprompt">gap&gt;</span> <span 
class="GAPinput">StructureDescription( ext );</span>
+"D8"
+<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">ext:= 
NonsplitExtension( C, [ 1, 1, 1 ] );</span>
+&lt;fp group of size 8 on the generators [ f1, f2, f3 ]&gt;
+<span class="GAPprompt">gap&gt;</span> <span 
class="GAPinput">StructureDescription( ext );</span>
+"Q8"
+</pre></div>
+
 <p><a id="X785B656883E116E6" name="X785B656883E116E6"></a></p>
 
 <h4>1.8 <span class="Heading">CalcPres</span></h4>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cohomolo-1.7.0/doc/cohomolo.xml 
new/cohomolo-1.7.1/doc/cohomolo.xml
--- old/cohomolo-1.7.0/doc/cohomolo.xml 2026-08-13 02:00:00.000000000 +0200
+++ new/cohomolo-1.7.1/doc/cohomolo.xml 2026-08-31 02:00:00.000000000 +0200
@@ -98,6 +98,7 @@
 </Description>
 </ManSection>
 </Section>
+
 <Section>
 <Heading>CoveringGroup</Heading>
 <Index>CoveringGroup!</Index>
@@ -106,7 +107,7 @@
 <Description>
 <A>chr</A> must be a cohomology-record, created by a call of
 <C>CHR(<A>G</A>,<A>p</A>,<A>F</A>[,<A>mats</A>])</C>, where <A>F</A> is a 
finitely presented group.
-<C>CoveringGroup</C> calculates a presentation of a covering extension of 
<M>Mul_p</M>
+<Ref Func="CoveringGroup"/> calculates a presentation of a covering extension 
of <M>Mul_p</M>
 by <A>G</A>, where <M>Mul_p</M> is the <A>p</A>-part of the Schur multiplier 
<A>Mul</A> of <A>G</A>.
 The set of generators of the finitely presented group that is returned
 is a union of two sets, which are in one-one correspondence with the
@@ -121,9 +122,20 @@
 <Mark>(c)</Mark>
 <Item>Those that give the values of the relators of <A>F</A> as elements of 
<M>Mul_p</M>.</Item>
 </List>
+
+<Example><![CDATA[
+gap> G:= AlternatingGroup( 5 );
+Alt( [ 1 .. 5 ] )
+gap> F:= Image( IsomorphismFpGroupByGenerators( G, GeneratorsOfGroup(G) ) );
+<fp group of size 60 on the generators [ F1, F2 ]>
+gap> C:= CHR( G, 2, F );;
+gap> CoveringGroup( C );
+<fp group of size 120 on the generators [ f1, f2, f3 ]>
+]]></Example>
 </Description>
 </ManSection>
 </Section>
+
 <Section>
 <Heading>FirstCohomologyDimension</Heading>
 <Index>FirstCohomologyDimension!</Index>
@@ -155,6 +167,7 @@
 </Description>
 </ManSection>
 </Section>
+
 <Section>
 <Heading>SplitExtensionCHR</Heading>
 <Index>SplitExtensionCHR!</Index>
@@ -163,13 +176,25 @@
 <Description>
 <A>chr</A> must be a cohomology-record, created by a call of
 <C>CHR(<A>G</A>,<A>p</A>,<A>F</A>,<A>mats</A>)</C>, where <A>F</A> is a 
finitely presented group.
-<C>SplitExtensionCHR</C> returns a presentation of the split extension of the 
module
+<Ref Func="SplitExtensionCHR"/> returns a presentation of the split extension 
of the module
 <A>M</A> defined by the matrices <A>mats</A> by the group <A>G</A>.
 This is a straightforward calculation, and involves no call of the
 external cohomology programs. It is provided here for convenience.
+
+<Example><![CDATA[
+gap> G:= Group( [ (1,2), (3,4) ] );;
+gap> F:= Image( IsomorphismFpGroupByGenerators( G, GeneratorsOfGroup(G) ) );
+<fp group of size 4 on the generators [ F1, F2 ]>
+gap> C:= CHR( G, 2, F, [ [[1]], [[1]] ] * Z(2) );;
+gap> ext:= SplitExtensionCHR( C );
+<fp group of size 8 on the generators [ f1, f2, f3 ]>
+gap> StructureDescription( ext );
+"C2 x C2 x C2"
+]]></Example>
 </Description>
 </ManSection>
 </Section>
+
 <Section>
 <Heading>NonsplitExtension</Heading>
 <Index>NonsplitExtension!</Index>
@@ -181,7 +206,7 @@
 If present, <A>vec</A> must be a list of integers of length equal to the
 dimension over <A>K</A> = <M>GF(p)</M> of the second cohomology group 
<M>H^2(G,M)</M> of the
 group <A>G</A> in its action on the module <A>M</A> defined by the matrices 
<A>mats</A>.
-<C>NonsplitExtension</C> calculates and returns a presentation of a nonsplit
+<Ref Func="NonsplitExtension"/> calculates and returns a presentation of a 
nonsplit
 extension of <A>M</A> by <A>G</A>. Since there may be many such extensions, and
 the equivalence classes of these extensions are in one-one correspondence
 with the nonzero elements of <M>H^2(G,M)</M>, the optional second parameter
@@ -203,15 +228,34 @@
 (<E>Note</E>: It is not particularly efficient to call 
<C>SecondCohomologyDimension</C>
 first to calculate the dimension of <M>H^2(G,M)</M>, which must of course be 
known
 if the second parameter is to be given; it is preferable to call
-<C>NonsplitExtension</C> immediately without the second parameter (which will
-return one nonsplit extension), and then to call 
<C>SecondCohomologyDimension</C>,
+<Ref Func="NonsplitExtension"/> immediately without the second parameter 
(which will
+return one nonsplit extension), and then to call <Ref 
Func="SecondCohomologyDimension"/>,
 which will at that stage return the required dimension immediately -
-all subsequent calls of <C>NonsplitExtension</C> on <A>chr</A> will also yield
+all subsequent calls of <Ref Func="NonsplitExtension"/> on <A>chr</A> will 
also yield
 immediate results.)</Item>
 </List>
+
+<Example><![CDATA[
+gap> G:= ElementaryAbelianGroup( IsPermGroup, 4 );
+Group([ (1,2), (3,4) ])
+gap> F:= Image( IsomorphismFpGroupByGenerators( G, GeneratorsOfGroup(G) ) );
+<fp group of size 4 on the generators [ F1, F2 ]>
+gap> C:= CHR( G, 2, F, [ [[1]], [[1]] ] * Z(2) );;
+gap> SecondCohomologyDimension( C );
+3
+gap> ext:= NonsplitExtension( C, [ 1, 0, 0 ] );
+<fp group of size 8 on the generators [ f1, f2, f3 ]>
+gap> StructureDescription( ext );
+"D8"
+gap> ext:= NonsplitExtension( C, [ 1, 1, 1 ] );
+<fp group of size 8 on the generators [ f1, f2, f3 ]>
+gap> StructureDescription( ext );
+"Q8"
+]]></Example>
 </Description>
 </ManSection>
 </Section>
+
 <Section>
 <Heading>CalcPres</Heading>
 <Index>CalcPres!</Index>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cohomolo-1.7.0/doc/main.tex 
new/cohomolo-1.7.1/doc/main.tex
--- old/cohomolo-1.7.0/doc/main.tex     2026-08-13 02:00:00.000000000 +0200
+++ new/cohomolo-1.7.1/doc/main.tex     2026-08-31 02:00:00.000000000 +0200
@@ -100,8 +100,8 @@
 \mbox{}}}\\
 \vfill
 
-{\Huge  1.7.0 \mbox{}}\\[1cm]
-{ 13 August 2026 \mbox{}}\\[1cm]
+{\Huge  1.7.1 \mbox{}}\\[1cm]
+{ 31 August 2026 \mbox{}}\\[1cm]
 \mbox{}\\[2cm]
 {\Large \textbf{\strut  Derek Holt     \strut\mbox{}}}\\
 \hypersetup{pdfauthor={ Derek Holt    }}
@@ -231,6 +231,16 @@
 \item[{(b)}] Those that say that the generators of $Mul_p$ are central; and
 \item[{(c)}] Those that give the values of the relators of 
\mbox{\texttt{\mdseries\slshape F}} as elements of $Mul_p$.
 \end{description}
+ 
+\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
+  !gapprompt@gap>| !gapinput@G:= AlternatingGroup( 5 );|
+  Alt( [ 1 .. 5 ] )
+  !gapprompt@gap>| !gapinput@F:= Image( IsomorphismFpGroupByGenerators( G, 
GeneratorsOfGroup(G) ) );|
+  <fp group of size 60 on the generators [ F1, F2 ]>
+  !gapprompt@gap>| !gapinput@C:= CHR( G, 2, F );;|
+  !gapprompt@gap>| !gapinput@CoveringGroup( C );|
+  <fp group of size 120 on the generators [ f1, f2, f3 ]>
+\end{Verbatim}
  }
 
  }
@@ -286,7 +296,18 @@
 
 
  \mbox{\texttt{\mdseries\slshape chr}} must be a 
cohomology\texttt{\symbol{45}}record, created by a call of 
\texttt{CHR(\mbox{\texttt{\mdseries\slshape G}},\mbox{\texttt{\mdseries\slshape 
p}},\mbox{\texttt{\mdseries\slshape F}},\mbox{\texttt{\mdseries\slshape 
mats}})}, where \mbox{\texttt{\mdseries\slshape F}} is a finitely presented 
group. \texttt{SplitExtensionCHR} returns a presentation of the split extension 
of the module \mbox{\texttt{\mdseries\slshape M}} defined by the matrices 
\mbox{\texttt{\mdseries\slshape mats}} by the group 
\mbox{\texttt{\mdseries\slshape G}}. This is a straightforward calculation, and 
involves no call of the external
-cohomology programs. It is provided here for convenience. }
+cohomology programs. It is provided here for convenience. 
+\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
+  !gapprompt@gap>| !gapinput@G:= Group( [ (1,2), (3,4) ] );;|
+  !gapprompt@gap>| !gapinput@F:= Image( IsomorphismFpGroupByGenerators( G, 
GeneratorsOfGroup(G) ) );|
+  <fp group of size 4 on the generators [ F1, F2 ]>
+  !gapprompt@gap>| !gapinput@C:= CHR( G, 2, F, [ [[1]], [[1]] ] * Z(2) );;|
+  !gapprompt@gap>| !gapinput@ext:= SplitExtensionCHR( C );|
+  <fp group of size 8 on the generators [ f1, f2, f3 ]>
+  !gapprompt@gap>| !gapinput@StructureDescription( ext );|
+  "C2 x C2 x C2"
+\end{Verbatim}
+ }
 
  }
 
@@ -316,9 +337,27 @@
 \item[{(b)}] Those that define the action of the generators of 
\mbox{\texttt{\mdseries\slshape F}} on those of \mbox{\texttt{\mdseries\slshape 
M}}; and
 \item[{(c)}] Those that give the values of the relators of 
\mbox{\texttt{\mdseries\slshape F}} as elements of $M$. (\emph{Note}: It is not 
particularly efficient to call \texttt{SecondCohomologyDimension} first to 
calculate the dimension of $H^2(G,M)$, which must of course be known if the 
second parameter is to be given; it is
 preferable to call \texttt{NonsplitExtension} immediately without the second 
parameter (which will return one nonsplit
-extension), and then to call \texttt{SecondCohomologyDimension}, which will at 
that stage return the required dimension immediately
+extension), and then to call \texttt{SecondCohomologyDimension} 
(\ref{SecondCohomologyDimension}), which will at that stage return the required 
dimension immediately
 \texttt{\symbol{45}} all subsequent calls of \texttt{NonsplitExtension} on 
\mbox{\texttt{\mdseries\slshape chr}} will also yield immediate results.)
 \end{description}
+ 
+\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
+  !gapprompt@gap>| !gapinput@G:= ElementaryAbelianGroup( IsPermGroup, 4 );|
+  Group([ (1,2), (3,4) ])
+  !gapprompt@gap>| !gapinput@F:= Image( IsomorphismFpGroupByGenerators( G, 
GeneratorsOfGroup(G) ) );|
+  <fp group of size 4 on the generators [ F1, F2 ]>
+  !gapprompt@gap>| !gapinput@C:= CHR( G, 2, F, [ [[1]], [[1]] ] * Z(2) );;|
+  !gapprompt@gap>| !gapinput@SecondCohomologyDimension( C );|
+  3
+  !gapprompt@gap>| !gapinput@ext:= NonsplitExtension( C, [ 1, 0, 0 ] );|
+  <fp group of size 8 on the generators [ f1, f2, f3 ]>
+  !gapprompt@gap>| !gapinput@StructureDescription( ext );|
+  "D8"
+  !gapprompt@gap>| !gapinput@ext:= NonsplitExtension( C, [ 1, 1, 1 ] );|
+  <fp group of size 8 on the generators [ f1, f2, f3 ]>
+  !gapprompt@gap>| !gapinput@StructureDescription( ext );|
+  "Q8"
+\end{Verbatim}
  }
 
  }
Binary files old/cohomolo-1.7.0/doc/manual.pdf and 
new/cohomolo-1.7.1/doc/manual.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cohomolo-1.7.0/doc/manual.six 
new/cohomolo-1.7.1/doc/manual.six
--- old/cohomolo-1.7.0/doc/manual.six   2026-08-13 02:00:00.000000000 +0200
+++ new/cohomolo-1.7.1/doc/manual.six   2026-08-31 02:00:00.000000000 +0200
@@ -16,26 +16,26 @@
   [ "\033[1X\033[33X\033[0;-2YCoveringGroup\033[133X\033[101X", "1.3", 
       [ 1, 3, 0 ], 93, 4, "coveringgroup", "X83494C06840C24F6" ], 
   [ "\033[1X\033[33X\033[0;-2YFirstCohomologyDimension\033[133X\033[101X", 
-      "1.4", [ 1, 4, 0 ], 119, 5, "firstcohomologydimension", 
+      "1.4", [ 1, 4, 0 ], 129, 5, "firstcohomologydimension", 
       "X7A34884A789EB9A9" ], 
   [ "\033[1X\033[33X\033[0;-2YSecondCohomologyDimension\033[133X\033[101X", 
-      "1.5", [ 1, 5, 0 ], 132, 5, "secondcohomologydimension", 
+      "1.5", [ 1, 5, 0 ], 142, 5, "secondcohomologydimension", 
       "X87440B9B7B137892" ], 
   [ "\033[1X\033[33X\033[0;-2YSplitExtensionCHR\033[133X\033[101X", "1.6", 
-      [ 1, 6, 0 ], 145, 5, "splitextensionchr", "X7DC573BE856F0320" ], 
+      [ 1, 6, 0 ], 155, 5, "splitextensionchr", "X7DC573BE856F0320" ], 
   [ "\033[1X\033[33X\033[0;-2YNonsplitExtension\033[133X\033[101X", "1.7", 
-      [ 1, 7, 0 ], 158, 5, "nonsplitextension", "X85E6B6BB7C54A1BF" ], 
+      [ 1, 7, 0 ], 179, 6, "nonsplitextension", "X85E6B6BB7C54A1BF" ], 
   [ "\033[1X\033[33X\033[0;-2YCalcPres\033[133X\033[101X", "1.8", 
-      [ 1, 8, 0 ], 198, 6, "calcpres", "X785B656883E116E6" ], 
+      [ 1, 8, 0 ], 238, 7, "calcpres", "X785B656883E116E6" ], 
   [ "\033[1X\033[33X\033[0;-2YPermRep\033[133X\033[101X", "1.9", [ 1, 9, 0 ], 
-      212, 6, "permrep", "X84A1474A84A1474A" ], 
+      252, 7, "permrep", "X84A1474A84A1474A" ], 
   [ "\033[1X\033[33X\033[0;-2YFurther Information\033[133X\033[101X", "1.10", 
-      [ 1, 10, 0 ], 225, 6, "further information", "X7A5F3AD27C649B0B" ], 
-  [ "Bibliography", "bib", [ "Bib", 0, 0 ], 1, 8, "bibliography", 
+      [ 1, 10, 0 ], 265, 7, "further information", "X7A5F3AD27C649B0B" ], 
+  [ "Bibliography", "bib", [ "Bib", 0, 0 ], 1, 9, "bibliography", 
       "X7A6F98FD85F02BFE" ], 
-  [ "References", "bib", [ "Bib", 0, 0 ], 1, 8, "references", 
+  [ "References", "bib", [ "Bib", 0, 0 ], 1, 9, "references", 
       "X7A6F98FD85F02BFE" ], 
-  [ "Index", "ind", [ "Ind", 0, 0 ], 1, 9, "index", "X83A0356F839C696F" ], 
+  [ "Index", "ind", [ "Ind", 0, 0 ], 1, 10, "index", "X83A0356F839C696F" ], 
   [ "Cohomology!", "1.0", [ 1, 0, 0 ], 1, 3, "cohomology!", 
       "X84CFC57B7E9CCCF7" ], 
   [ "CHR!", "1.1", [ 1, 1, 0 ], 62, 4, "chr!", "X7CE09B357B95D5AE" ], 
@@ -49,27 +49,27 @@
       "X83494C06840C24F6" ], 
   [ "\033[2XCoveringGroup\033[102X", "1.3-1", [ 1, 3, 1 ], 96, 4, 
       "coveringgroup", "X83494C06840C24F6" ], 
-  [ "FirstCohomologyDimension!", "1.4", [ 1, 4, 0 ], 119, 5, 
+  [ "FirstCohomologyDimension!", "1.4", [ 1, 4, 0 ], 129, 5, 
       "firstcohomologydimension!", "X7A34884A789EB9A9" ], 
-  [ "\033[2XFirstCohomologyDimension\033[102X", "1.4-1", [ 1, 4, 1 ], 122, 5, 
+  [ "\033[2XFirstCohomologyDimension\033[102X", "1.4-1", [ 1, 4, 1 ], 132, 5, 
       "firstcohomologydimension", "X7A34884A789EB9A9" ], 
-  [ "SecondCohomologyDimension!", "1.5", [ 1, 5, 0 ], 132, 5, 
+  [ "SecondCohomologyDimension!", "1.5", [ 1, 5, 0 ], 142, 5, 
       "secondcohomologydimension!", "X87440B9B7B137892" ], 
-  [ "\033[2XSecondCohomologyDimension\033[102X", "1.5-1", [ 1, 5, 1 ], 135, 
+  [ "\033[2XSecondCohomologyDimension\033[102X", "1.5-1", [ 1, 5, 1 ], 145, 
       5, "secondcohomologydimension", "X87440B9B7B137892" ], 
-  [ "SplitExtensionCHR!", "1.6", [ 1, 6, 0 ], 145, 5, "splitextensionchr!", 
+  [ "SplitExtensionCHR!", "1.6", [ 1, 6, 0 ], 155, 5, "splitextensionchr!", 
       "X7DC573BE856F0320" ], 
-  [ "\033[2XSplitExtensionCHR\033[102X", "1.6-1", [ 1, 6, 1 ], 148, 5, 
+  [ "\033[2XSplitExtensionCHR\033[102X", "1.6-1", [ 1, 6, 1 ], 158, 5, 
       "splitextensionchr", "X7DC573BE856F0320" ], 
-  [ "NonsplitExtension!", "1.7", [ 1, 7, 0 ], 158, 5, "nonsplitextension!", 
+  [ "NonsplitExtension!", "1.7", [ 1, 7, 0 ], 179, 6, "nonsplitextension!", 
       "X85E6B6BB7C54A1BF" ], 
-  [ "\033[2XNonsplitExtension\033[102X", "1.7-1", [ 1, 7, 1 ], 161, 5, 
+  [ "\033[2XNonsplitExtension\033[102X", "1.7-1", [ 1, 7, 1 ], 182, 6, 
       "nonsplitextension", "X85E6B6BB7C54A1BF" ], 
-  [ "CalcPres!", "1.8", [ 1, 8, 0 ], 198, 6, "calcpres!", "X785B656883E116E6" 
+  [ "CalcPres!", "1.8", [ 1, 8, 0 ], 238, 7, "calcpres!", "X785B656883E116E6" 
      ], 
-  [ "\033[2XCalcPres\033[102X", "1.8-1", [ 1, 8, 1 ], 201, 6, "calcpres", 
+  [ "\033[2XCalcPres\033[102X", "1.8-1", [ 1, 8, 1 ], 241, 7, "calcpres", 
       "X785B656883E116E6" ], 
-  [ "PermRep!", "1.9", [ 1, 9, 0 ], 212, 6, "permrep!", "X84A1474A84A1474A" ],
-  [ "\033[2XPermRep\033[102X", "1.9-1", [ 1, 9, 1 ], 215, 6, "permrep", 
+  [ "PermRep!", "1.9", [ 1, 9, 0 ], 252, 7, "permrep!", "X84A1474A84A1474A" ],
+  [ "\033[2XPermRep\033[102X", "1.9-1", [ 1, 9, 1 ], 255, 7, "permrep", 
       "X84A1474A84A1474A" ] ]
 );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cohomolo-1.7.0/doc/title.xml 
new/cohomolo-1.7.1/doc/title.xml
--- old/cohomolo-1.7.0/doc/title.xml    2026-08-13 02:00:00.000000000 +0200
+++ new/cohomolo-1.7.1/doc/title.xml    2026-08-31 02:00:00.000000000 +0200
@@ -9,7 +9,7 @@
     Cohomology groups of finite groups on finite modules
   </Subtitle>
   <Version>
-    1.7.0
+    1.7.1
   </Version>
   <Author>
     Derek Holt
@@ -23,6 +23,6 @@
 <Homepage>http://homepages.warwick.ac.uk/staff/D.F.Holt/</Homepage>
   </Author>
   <Date>
-    13 August 2026
+    31 August 2026
   </Date>
   </TitlePage>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cohomolo-1.7.0/gap/coho4.g 
new/cohomolo-1.7.1/gap/coho4.g
--- old/cohomolo-1.7.0/gap/coho4.g      2026-08-13 02:00:00.000000000 +0200
+++ new/cohomolo-1.7.1/gap/coho4.g      2026-08-31 02:00:00.000000000 +0200
@@ -859,7 +859,15 @@
       od;
       Add(Erels,w);
    od; 
-   return E/Erels;
+   E:= E/Erels;
+   if HasSize( F ) then
+     if mult then
+       SetSize( E, Size( F ) * Product( chr.multiplier, 1 ) );
+     else
+       SetSize( E, Size( F ) * chr.prime^dim );
+     fi;
+   fi;
+   return E;
 end );
 
 #############################################################################
@@ -990,7 +998,7 @@
 
 #############################################################################
 ##
-#F  PermRep( <F>, <K> ). . . calculate permutation represenation of fp-group
+#F  PermRep( <F>, <K> ). . . calculate permutation representation of fp-group
 ##
 ##  <F> should be a finitely presented group and <K> a subgroup of finite
 ##  index.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cohomolo-1.7.0/tst/cohomolo01.tst 
new/cohomolo-1.7.1/tst/cohomolo01.tst
--- old/cohomolo-1.7.0/tst/cohomolo01.tst       1970-01-01 01:00:00.000000000 
+0100
+++ new/cohomolo-1.7.1/tst/cohomolo01.tst       2026-08-31 02:00:00.000000000 
+0200
@@ -0,0 +1,50 @@
+# cohomolo, chapter 1
+#
+# DO NOT EDIT THIS FILE - EDIT EXAMPLES IN THE SOURCE INSTEAD!
+#
+# This file has been generated by AutoDoc. It contains examples extracted from
+# the package documentation. Each example is preceded by a comment which gives
+# the name of a GAPDoc XML file and a line range from which the example were
+# taken. Note that the XML file in turn may have been generated by AutoDoc
+# from some other input.
+#
+gap> START_TEST("cohomolo01.tst");
+
+# doc/cohomolo.xml:126-134
+gap> G:= AlternatingGroup( 5 );
+Alt( [ 1 .. 5 ] )
+gap> F:= Image( IsomorphismFpGroupByGenerators( G, GeneratorsOfGroup(G) ) );
+<fp group of size 60 on the generators [ F1, F2 ]>
+gap> C:= CHR( G, 2, F );;
+gap> CoveringGroup( C );
+<fp group of size 120 on the generators [ f1, f2, f3 ]>
+
+# doc/cohomolo.xml:184-193
+gap> G:= Group( [ (1,2), (3,4) ] );;
+gap> F:= Image( IsomorphismFpGroupByGenerators( G, GeneratorsOfGroup(G) ) );
+<fp group of size 4 on the generators [ F1, F2 ]>
+gap> C:= CHR( G, 2, F, [ [[1]], [[1]] ] * Z(2) );;
+gap> ext:= SplitExtensionCHR( C );
+<fp group of size 8 on the generators [ f1, f2, f3 ]>
+gap> StructureDescription( ext );
+"C2 x C2 x C2"
+
+# doc/cohomolo.xml:238-254
+gap> G:= ElementaryAbelianGroup( IsPermGroup, 4 );
+Group([ (1,2), (3,4) ])
+gap> F:= Image( IsomorphismFpGroupByGenerators( G, GeneratorsOfGroup(G) ) );
+<fp group of size 4 on the generators [ F1, F2 ]>
+gap> C:= CHR( G, 2, F, [ [[1]], [[1]] ] * Z(2) );;
+gap> SecondCohomologyDimension( C );
+3
+gap> ext:= NonsplitExtension( C, [ 1, 0, 0 ] );
+<fp group of size 8 on the generators [ f1, f2, f3 ]>
+gap> StructureDescription( ext );
+"D8"
+gap> ext:= NonsplitExtension( C, [ 1, 1, 1 ] );
+<fp group of size 8 on the generators [ f1, f2, f3 ]>
+gap> StructureDescription( ext );
+"Q8"
+
+#
+gap> STOP_TEST("cohomolo01.tst", 1);

Reply via email to