Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package gap-ibnp for openSUSE:Factory checked in at 2026-06-16 13:55:38 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gap-ibnp (Old) and /work/SRC/openSUSE:Factory/.gap-ibnp.new.1981 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gap-ibnp" Tue Jun 16 13:55:38 2026 rev:2 rq:1359608 version:0.18 Changes: -------- --- /work/SRC/openSUSE:Factory/gap-ibnp/gap-ibnp.changes 2025-10-21 11:16:03.253869667 +0200 +++ /work/SRC/openSUSE:Factory/.gap-ibnp.new.1981/gap-ibnp.changes 2026-06-16 14:01:17.780940597 +0200 @@ -1,0 +2,6 @@ +Mon Jun 15 15:50:29 UTC 2026 - Jan Engelhardt <[email protected]> + +- Update to release 0.18 + * Fixed the example which failed to abort: added qo-example.tst + +------------------------------------------------------------------- Old: ---- IBNP-0.17.tar.gz New: ---- IBNP-0.18.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gap-ibnp.spec ++++++ --- /var/tmp/diff_new_pack.Nm6oK7/_old 2026-06-16 14:01:20.461052133 +0200 +++ /var/tmp/diff_new_pack.Nm6oK7/_new 2026-06-16 14:01:20.465052300 +0200 @@ -1,7 +1,7 @@ # # spec file for package gap-ibnp # -# Copyright (c) 2025 SUSE LLC and contributors +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: gap-ibnp -Version: 0.17 +Version: 0.18 Release: 0 Summary: GAP: Involutive Bases for Noncommutative Polynomials License: GPL-3.0-or-later ++++++ IBNP-0.17.tar.gz -> IBNP-0.18.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IBNP-0.17/CHANGES.md new/IBNP-0.18/CHANGES.md --- old/IBNP-0.17/CHANGES.md 2025-09-11 18:48:49.000000000 +0200 +++ new/IBNP-0.18/CHANGES.md 2025-11-04 20:43:09.000000000 +0100 @@ -4,6 +4,9 @@ ## ## CHANGES to the 'ibnp' package +## 0.17 -> 0.18 (04/11/25) + * (04/11/25) fixed example which failed to abort: added qo-example.tst + ## 0.16 -> 0.17 (11/09/25) * (11/09/25) using the new package release mechanism diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IBNP-0.17/PackageInfo.g new/IBNP-0.18/PackageInfo.g --- old/IBNP-0.17/PackageInfo.g 2025-09-11 18:48:49.000000000 +0200 +++ new/IBNP-0.18/PackageInfo.g 2025-11-04 20:43:09.000000000 +0100 @@ -7,8 +7,8 @@ PackageName := "IBNP", Subtitle := "Involutive Bases for Noncommutative Polynomials", -Version := "0.17", -Date := "11/09/2025", +Version := "0.18", +Date := "04/11/2025", License := "GPL-3.0-or-later", Persons := [ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IBNP-0.17/doc/IBNP.tex new/IBNP-0.18/doc/IBNP.tex --- old/IBNP-0.17/doc/IBNP.tex 2025-09-11 18:48:49.000000000 +0200 +++ new/IBNP-0.18/doc/IBNP.tex 2025-11-04 20:43:09.000000000 +0100 @@ -100,8 +100,8 @@ {\Huge \textbf{ Involutive Bases for Noncommutative Polynomials \mbox{}}}\\ \vfill -{\Huge 0.17 \mbox{}}\\[1cm] -{ 11 September 2025 \mbox{}}\\[1cm] +{\Huge 0.18 \mbox{}}\\[1cm] +{ 4 November 2025 \mbox{}}\\[1cm] \mbox{}\\[2cm] {\Large \textbf{ Gareth A. Evans\\ \mbox{}}}\\ @@ -876,8 +876,40 @@ \end{Verbatim} -\subsection{\textcolor{Chapter }{A more detailed example}}\label{subs-ex452} +\subsection{\textcolor{Chapter }{The process may abort}}\label{subs-abort} \logpage{[ 3, 3, 3 ]} +\hyperdef{L}{X86A1B0998692BA00}{} +{ + It may happen that the calculation of an involutive basis may start to produce +an infinite polynomial basis. The constant \texttt{InvolutiveAbortLimit} \index{InvolutiveAbortLimit} is given an initial value of $20$ which may be increased by the user. If the size of the basis being produced +reaches this limit, then \texttt{fail} is returned. + + For a simple example, we consider the Pommaret division and start with a set +of polynomials $L := [ x^3-5y, x^2*y-4y]$ all of whose leading monomials contain a power of $x$. Then, for each of these polynomials, $x$ is the only involutive divisor, and prolongations all involve multiplying by $y$. The process aborts when the basis becomes +\[ \{ xy^3-xy^2,~ x^2y^2-xy^2,~ x^3y-xy^2,~ x^4-xy \} ~\cup~ \{ xy^i-xy^2 ~|~ 4 +\leqslant i \leqslant 19 \}. \] + (This may be verified on setting \texttt{InfoLevel(InfoIBNP)} to one.) +\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example] + + !gapprompt@gap>| !gapinput@CommutativeDivision := "Pommaret";;| + !gapprompt@gap>| !gapinput@R0 := PolynomialRing( Rationals, ["x","y"] );;| + !gapprompt@gap>| !gapinput@x := R0.1;; y := R0.2;;| + !gapprompt@gap>| !gapinput@ord0 := MonomialGrlexOrdering( [x,y] );;| + !gapprompt@gap>| !gapinput@L0 := [ x^4-x*y, x^3*y-x*y^2 ];;| + !gapprompt@gap>| !gapinput@ibasP := InvolutiveBasisCP( R0, L0, ord0 );| + #I reached the involutive abort limit 20 + fail + !gapprompt@gap>| !gapinput@CommutativeDivision := "Janet";;| + !gapprompt@gap>| !gapinput@ibasP := InvolutiveBasisCP( R0, L0, ord0 );| + rec( div := "Janet", mvars := [ [ 1, 2 ], [ 1 ], [ 1 ], [ 1 ] ], + polys := [ x*y^3-x*y^2, x^2*y^2-x*y^2, x^3*y-x*y^2, x^4-x*y ] ) + +\end{Verbatim} + } + + +\subsection{\textcolor{Chapter }{A more detailed example}}\label{subs-ex452} +\logpage{[ 3, 3, 4 ]} \hyperdef{L}{X831D45437DE37177}{} { Here we consider Example 4.5.2 in the thesis \cite{gareth-thesis}. On setting \texttt{InfoLevel(InfoIBNP)} to \texttt{1} some of the intermediate calculations are displayed. The setting of the @@ -963,7 +995,7 @@ \subsection{\textcolor{Chapter }{Using homogeneous polynomials}}\label{subs-hompolys} -\logpage{[ 3, 3, 4 ]} +\logpage{[ 3, 3, 5 ]} \hyperdef{L}{X791740DF84B742A2}{} { If the polynomials in an initial basis are not homogeneous \index{homogeneous polynomials} then they may be made homogeneous by introducing an additional variable. The diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IBNP-0.17/doc/chap0.html new/IBNP-0.18/doc/chap0.html --- old/IBNP-0.17/doc/chap0.html 2025-09-11 18:48:49.000000000 +0200 +++ new/IBNP-0.18/doc/chap0.html 2025-11-04 20:43:09.000000000 +0100 @@ -29,10 +29,10 @@ <h2>Involutive Bases for Noncommutative Polynomials</h2> <p> - 0.17</p> + 0.18</p> <p> - 11 September 2025 + 4 November 2025 </p> </div> @@ -128,9 +128,11 @@ <span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X7ACAA0847CC0DBCC">3.3-1 <span class="Heading">Prolongations and Autoreduction</span></a> </span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X7B60A306820D4ED2">3.3-2 InvolutiveBasis</a></span> -<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X831D45437DE37177">3.3-3 <span class="Heading">A more detailed example</span></a> +<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X86A1B0998692BA00">3.3-3 <span class="Heading">The process may abort</span></a> </span> -<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X791740DF84B742A2">3.3-4 <span class="Heading">Using homogeneous polynomials</span></a> +<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X831D45437DE37177">3.3-4 <span class="Heading">A more detailed example</span></a> +</span> +<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X791740DF84B742A2">3.3-5 <span class="Heading">Using homogeneous polynomials</span></a> </span> </div></div> </div> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IBNP-0.17/doc/chap0.txt new/IBNP-0.18/doc/chap0.txt --- old/IBNP-0.17/doc/chap0.txt 2025-09-11 18:48:49.000000000 +0200 +++ new/IBNP-0.18/doc/chap0.txt 2025-11-04 20:43:09.000000000 +0100 @@ -6,10 +6,10 @@ [1X Involutive Bases for Noncommutative Polynomials [101X - 0.17 + 0.18 - 11 September 2025 + 4 November 2025 Gareth A. Evans @@ -93,8 +93,9 @@ 3.3 [33X[0;0YComputing a Commutative Involutive Basis[133X 3.3-1 [33X[0;0YProlongations and Autoreduction[133X 3.3-2 InvolutiveBasis - 3.3-3 [33X[0;0YA more detailed example[133X - 3.3-4 [33X[0;0YUsing homogeneous polynomials[133X + 3.3-3 [33X[0;0YThe process may abort[133X + 3.3-4 [33X[0;0YA more detailed example[133X + 3.3-5 [33X[0;0YUsing homogeneous polynomials[133X 4 [33X[0;0YFunctions for Noncommutative Monomials[133X 4.1 [33X[0;0YBasic functions for monomials[133X 4.1-1 [33X[0;0YPredefined algebras[133X diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IBNP-0.17/doc/chap0_mj.html new/IBNP-0.18/doc/chap0_mj.html --- old/IBNP-0.17/doc/chap0_mj.html 2025-09-11 18:48:49.000000000 +0200 +++ new/IBNP-0.18/doc/chap0_mj.html 2025-11-04 20:43:09.000000000 +0100 @@ -32,10 +32,10 @@ <h2>Involutive Bases for Noncommutative Polynomials</h2> <p> - 0.17</p> + 0.18</p> <p> - 11 September 2025 + 4 November 2025 </p> </div> @@ -131,9 +131,11 @@ <span class="ContSS"><br /><span class="nocss"> </span><a href="chap3_mj.html#X7ACAA0847CC0DBCC">3.3-1 <span class="Heading">Prolongations and Autoreduction</span></a> </span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap3_mj.html#X7B60A306820D4ED2">3.3-2 InvolutiveBasis</a></span> -<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3_mj.html#X831D45437DE37177">3.3-3 <span class="Heading">A more detailed example</span></a> +<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3_mj.html#X86A1B0998692BA00">3.3-3 <span class="Heading">The process may abort</span></a> </span> -<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3_mj.html#X791740DF84B742A2">3.3-4 <span class="Heading">Using homogeneous polynomials</span></a> +<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3_mj.html#X831D45437DE37177">3.3-4 <span class="Heading">A more detailed example</span></a> +</span> +<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3_mj.html#X791740DF84B742A2">3.3-5 <span class="Heading">Using homogeneous polynomials</span></a> </span> </div></div> </div> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IBNP-0.17/doc/chap3.html new/IBNP-0.18/doc/chap3.html --- old/IBNP-0.17/doc/chap3.html 2025-09-11 18:48:49.000000000 +0200 +++ new/IBNP-0.18/doc/chap3.html 2025-11-04 20:43:09.000000000 +0100 @@ -51,9 +51,11 @@ <span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X7ACAA0847CC0DBCC">3.3-1 <span class="Heading">Prolongations and Autoreduction</span></a> </span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X7B60A306820D4ED2">3.3-2 InvolutiveBasis</a></span> -<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X831D45437DE37177">3.3-3 <span class="Heading">A more detailed example</span></a> +<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X86A1B0998692BA00">3.3-3 <span class="Heading">The process may abort</span></a> </span> -<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X791740DF84B742A2">3.3-4 <span class="Heading">Using homogeneous polynomials</span></a> +<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X831D45437DE37177">3.3-4 <span class="Heading">A more detailed example</span></a> +</span> +<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X791740DF84B742A2">3.3-5 <span class="Heading">Using homogeneous polynomials</span></a> </span> </div></div> </div> @@ -519,9 +521,42 @@ </pre></div> +<p><a id="X86A1B0998692BA00" name="X86A1B0998692BA00"></a></p> + +<h5>3.3-3 <span class="Heading">The process may abort</span></h5> + +<p>It may happen that the calculation of an involutive basis may start to produce an infinite polynomial basis. The constant <code class="code">InvolutiveAbortLimit</code> is given an initial value of <span class="SimpleMath">20</span> which may be increased by the user. If the size of the basis being produced reaches this limit, then <code class="code">fail</code> is returned.</p> + +<p>For a simple example, we consider the Pommaret division and start with a set of polynomials <span class="SimpleMath">L := [ x^3-5y, x^2*y-4y]</span> all of whose leading monomials contain a power of <span class="SimpleMath">x</span>. Then, for each of these polynomials, <span class="SimpleMath">x</span> is the only involutive divisor, and prolongations all involve multiplying by <span class="SimpleMath">y</span>. The process aborts when the basis becomes</p> + +<p class="pcenter"> +\{ xy^3-xy^2,~ x^2y^2-xy^2,~ x^3y-xy^2,~ x^4-xy \} +~\cup~ \{ xy^i-xy^2 ~|~ 4 \leqslant i \leqslant 19 \}. +</p> + +<p>(This may be verified on setting <code class="code">InfoLevel(InfoIBNP)</code> to one.)</p> + + +<div class="example"><pre> + +<span class="GAPprompt">gap></span> <span class="GAPinput">CommutativeDivision := "Pommaret";;</span> +<span class="GAPprompt">gap></span> <span class="GAPinput">R0 := PolynomialRing( Rationals, ["x","y"] );;</span> +<span class="GAPprompt">gap></span> <span class="GAPinput">x := R0.1;; y := R0.2;;</span> +<span class="GAPprompt">gap></span> <span class="GAPinput">ord0 := MonomialGrlexOrdering( [x,y] );;</span> +<span class="GAPprompt">gap></span> <span class="GAPinput">L0 := [ x^4-x*y, x^3*y-x*y^2 ];;</span> +<span class="GAPprompt">gap></span> <span class="GAPinput">ibasP := InvolutiveBasisCP( R0, L0, ord0 );</span> +#I reached the involutive abort limit 20 +fail +<span class="GAPprompt">gap></span> <span class="GAPinput">CommutativeDivision := "Janet";;</span> +<span class="GAPprompt">gap></span> <span class="GAPinput">ibasP := InvolutiveBasisCP( R0, L0, ord0 );</span> +rec( div := "Janet", mvars := [ [ 1, 2 ], [ 1 ], [ 1 ], [ 1 ] ], + polys := [ x*y^3-x*y^2, x^2*y^2-x*y^2, x^3*y-x*y^2, x^4-x*y ] ) + +</pre></div> + <p><a id="X831D45437DE37177" name="X831D45437DE37177"></a></p> -<h5>3.3-3 <span class="Heading">A more detailed example</span></h5> +<h5>3.3-4 <span class="Heading">A more detailed example</span></h5> <p>Here we consider Example 4.5.2 in the thesis <a href="chapBib.html#biBgareth-thesis">[Eva05]</a>. On setting <code class="code">InfoLevel(InfoIBNP)</code> to <code class="code">1</code> some of the intermediate calculations are displayed. The setting of the problem is a rational polynomial ring in three variables with the lex ordering <span class="SimpleMath">[x,y,z]</span>, using the Janet involutive division.</p> @@ -631,7 +666,7 @@ <p><a id="X791740DF84B742A2" name="X791740DF84B742A2"></a></p> -<h5>3.3-4 <span class="Heading">Using homogeneous polynomials</span></h5> +<h5>3.3-5 <span class="Heading">Using homogeneous polynomials</span></h5> <p>If the polynomials in an initial basis are not homogeneous then they may be made homogeneous by introducing an additional variable. The resulting involutive basis will contain only homogeneous polynomials. However, if these are de-homogenised by setting the additional variable equal to <span class="SimpleMath">1</span>, the resulting basis may not be involutive.</p> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IBNP-0.17/doc/chap3.txt new/IBNP-0.18/doc/chap3.txt --- old/IBNP-0.17/doc/chap3.txt 2025-09-11 18:48:49.000000000 +0200 +++ new/IBNP-0.18/doc/chap3.txt 2025-11-04 20:43:09.000000000 +0100 @@ -544,7 +544,46 @@ [4X[32X[104X - [1X3.3-3 [33X[0;0YA more detailed example[133X[101X + [1X3.3-3 [33X[0;0YThe process may abort[133X[101X + + [33X[0;0YIt may happen that the calculation of an involutive basis may start to + produce an infinite polynomial basis. The constant [10XInvolutiveAbortLimit[110X is + given an initial value of [22X20[122X which may be increased by the user. If the size + of the basis being produced reaches this limit, then [10Xfail[110X is returned.[133X + + [33X[0;0YFor a simple example, we consider the Pommaret division and start with a set + of polynomials [22XL := [ x^3-5y, x^2*y-4y][122X all of whose leading monomials + contain a power of [22Xx[122X. Then, for each of these polynomials, [22Xx[122X is the only + involutive divisor, and prolongations all involve multiplying by [22Xy[122X. The + process aborts when the basis becomes[133X + + + [24X[33X[0;6Y\{ xy^3-xy^2,~ x^2y^2-xy^2,~ x^3y-xy^2,~ x^4-xy \} ~\cup~ \{ xy^i-xy^2 ~|~ 4 + \leqslant i \leqslant 19 \}.[133X + + [124X + + [33X[0;0Y(This may be verified on setting [10XInfoLevel(InfoIBNP)[110X to one.)[133X + + [4X[32X Example [32X[104X + [4X[28X[128X[104X + [4X[25Xgap>[125X [27XCommutativeDivision := "Pommaret";;[127X[104X + [4X[25Xgap>[125X [27XR0 := PolynomialRing( Rationals, ["x","y"] );;[127X[104X + [4X[25Xgap>[125X [27Xx := R0.1;; y := R0.2;;[127X[104X + [4X[25Xgap>[125X [27Xord0 := MonomialGrlexOrdering( [x,y] );;[127X[104X + [4X[25Xgap>[125X [27XL0 := [ x^4-x*y, x^3*y-x*y^2 ];;[127X[104X + [4X[25Xgap>[125X [27XibasP := InvolutiveBasisCP( R0, L0, ord0 );[127X[104X + [4X[28X#I reached the involutive abort limit 20[128X[104X + [4X[28Xfail[128X[104X + [4X[25Xgap>[125X [27XCommutativeDivision := "Janet";;[127X[104X + [4X[25Xgap>[125X [27XibasP := InvolutiveBasisCP( R0, L0, ord0 );[127X[104X + [4X[28Xrec( div := "Janet", mvars := [ [ 1, 2 ], [ 1 ], [ 1 ], [ 1 ] ], [128X[104X + [4X[28X polys := [ x*y^3-x*y^2, x^2*y^2-x*y^2, x^3*y-x*y^2, x^4-x*y ] )[128X[104X + [4X[28X[128X[104X + [4X[32X[104X + + + [1X3.3-4 [33X[0;0YA more detailed example[133X[101X [33X[0;0YHere we consider Example 4.5.2 in the thesis [Eva05]. On setting [10XInfoLevel(InfoIBNP)[110X to [10X1[110X some of the intermediate calculations are @@ -650,7 +689,7 @@ [4X[32X[104X - [1X3.3-4 [33X[0;0YUsing homogeneous polynomials[133X[101X + [1X3.3-5 [33X[0;0YUsing homogeneous polynomials[133X[101X [33X[0;0YIf the polynomials in an initial basis are not homogeneous then they may be made homogeneous by introducing an additional variable. The resulting diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IBNP-0.17/doc/chap3_mj.html new/IBNP-0.18/doc/chap3_mj.html --- old/IBNP-0.17/doc/chap3_mj.html 2025-09-11 18:48:49.000000000 +0200 +++ new/IBNP-0.18/doc/chap3_mj.html 2025-11-04 20:43:09.000000000 +0100 @@ -54,9 +54,11 @@ <span class="ContSS"><br /><span class="nocss"> </span><a href="chap3_mj.html#X7ACAA0847CC0DBCC">3.3-1 <span class="Heading">Prolongations and Autoreduction</span></a> </span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap3_mj.html#X7B60A306820D4ED2">3.3-2 InvolutiveBasis</a></span> -<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3_mj.html#X831D45437DE37177">3.3-3 <span class="Heading">A more detailed example</span></a> +<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3_mj.html#X86A1B0998692BA00">3.3-3 <span class="Heading">The process may abort</span></a> </span> -<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3_mj.html#X791740DF84B742A2">3.3-4 <span class="Heading">Using homogeneous polynomials</span></a> +<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3_mj.html#X831D45437DE37177">3.3-4 <span class="Heading">A more detailed example</span></a> +</span> +<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3_mj.html#X791740DF84B742A2">3.3-5 <span class="Heading">Using homogeneous polynomials</span></a> </span> </div></div> </div> @@ -522,9 +524,42 @@ </pre></div> +<p><a id="X86A1B0998692BA00" name="X86A1B0998692BA00"></a></p> + +<h5>3.3-3 <span class="Heading">The process may abort</span></h5> + +<p>It may happen that the calculation of an involutive basis may start to produce an infinite polynomial basis. The constant <code class="code">InvolutiveAbortLimit</code> is given an initial value of <span class="SimpleMath">\(20\)</span> which may be increased by the user. If the size of the basis being produced reaches this limit, then <code class="code">fail</code> is returned.</p> + +<p>For a simple example, we consider the Pommaret division and start with a set of polynomials <span class="SimpleMath">\(L := [ x^3-5y, x^2*y-4y]\)</span> all of whose leading monomials contain a power of <span class="SimpleMath">\(x\)</span>. Then, for each of these polynomials, <span class="SimpleMath">\(x\)</span> is the only involutive divisor, and prolongations all involve multiplying by <span class="SimpleMath">\(y\)</span>. The process aborts when the basis becomes</p> + +<p class="center">\[ +\{ xy^3-xy^2,~ x^2y^2-xy^2,~ x^3y-xy^2,~ x^4-xy \} +~\cup~ \{ xy^i-xy^2 ~|~ 4 \leqslant i \leqslant 19 \}. +\]</p> + +<p>(This may be verified on setting <code class="code">InfoLevel(InfoIBNP)</code> to one.)</p> + + +<div class="example"><pre> + +<span class="GAPprompt">gap></span> <span class="GAPinput">CommutativeDivision := "Pommaret";;</span> +<span class="GAPprompt">gap></span> <span class="GAPinput">R0 := PolynomialRing( Rationals, ["x","y"] );;</span> +<span class="GAPprompt">gap></span> <span class="GAPinput">x := R0.1;; y := R0.2;;</span> +<span class="GAPprompt">gap></span> <span class="GAPinput">ord0 := MonomialGrlexOrdering( [x,y] );;</span> +<span class="GAPprompt">gap></span> <span class="GAPinput">L0 := [ x^4-x*y, x^3*y-x*y^2 ];;</span> +<span class="GAPprompt">gap></span> <span class="GAPinput">ibasP := InvolutiveBasisCP( R0, L0, ord0 );</span> +#I reached the involutive abort limit 20 +fail +<span class="GAPprompt">gap></span> <span class="GAPinput">CommutativeDivision := "Janet";;</span> +<span class="GAPprompt">gap></span> <span class="GAPinput">ibasP := InvolutiveBasisCP( R0, L0, ord0 );</span> +rec( div := "Janet", mvars := [ [ 1, 2 ], [ 1 ], [ 1 ], [ 1 ] ], + polys := [ x*y^3-x*y^2, x^2*y^2-x*y^2, x^3*y-x*y^2, x^4-x*y ] ) + +</pre></div> + <p><a id="X831D45437DE37177" name="X831D45437DE37177"></a></p> -<h5>3.3-3 <span class="Heading">A more detailed example</span></h5> +<h5>3.3-4 <span class="Heading">A more detailed example</span></h5> <p>Here we consider Example 4.5.2 in the thesis <a href="chapBib_mj.html#biBgareth-thesis">[Eva05]</a>. On setting <code class="code">InfoLevel(InfoIBNP)</code> to <code class="code">1</code> some of the intermediate calculations are displayed. The setting of the problem is a rational polynomial ring in three variables with the lex ordering <span class="SimpleMath">\([x,y,z]\)</span>, using the Janet involutive division.</p> @@ -634,7 +669,7 @@ <p><a id="X791740DF84B742A2" name="X791740DF84B742A2"></a></p> -<h5>3.3-4 <span class="Heading">Using homogeneous polynomials</span></h5> +<h5>3.3-5 <span class="Heading">Using homogeneous polynomials</span></h5> <p>If the polynomials in an initial basis are not homogeneous then they may be made homogeneous by introducing an additional variable. The resulting involutive basis will contain only homogeneous polynomials. However, if these are de-homogenised by setting the additional variable equal to <span class="SimpleMath">\(1\)</span>, the resulting basis may not be involutive.</p> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IBNP-0.17/doc/chapInd.html new/IBNP-0.18/doc/chapInd.html --- old/IBNP-0.17/doc/chapInd.html 2025-09-11 18:48:49.000000000 +0200 +++ new/IBNP-0.18/doc/chapInd.html 2025-11-04 20:43:09.000000000 +0100 @@ -38,11 +38,12 @@ <code class="func">GM2NMList</code> <a href="chap4.html#X8719E2857E26325C">4.1-4</a> <br /> GP2NP <a href="chap2.html#X783C6EC87988B533">2.1</a> <br /> <code class="func">GtNPoly</code> <a href="chap5.html#X7996395279064998">5.1-3</a> <br /> -homogeneous polynomials <a href="chap3.html#X791740DF84B742A2">3.3-4</a> <br /> +homogeneous polynomials <a href="chap3.html#X791740DF84B742A2">3.3-5</a> <br /> <code class="func">IAutoreduce</code> <a href="chap3.html#X7C58A339832877E9">3.2-10</a> <br /> <code class="func">IAutoreduceCP</code> <a href="chap3.html#X7C58A339832877E9">3.2-10</a> <br /> <code class="func">IAutoreduceNP</code> <a href="chap6.html#X8189DEDD87CE1667">6.1-10</a> <br /> involutive divisor <a href="chap3.html#X7E43F2087BC8B4F9">3.2</a> <br /> +InvolutiveAbortLimit <a href="chap3.html#X86A1B0998692BA00">3.3-3</a> <br /> <code class="func">InvolutiveBasis</code> <a href="chap3.html#X7B60A306820D4ED2">3.3-2</a> <br /> <code class="func">InvolutiveBasisCP</code> <a href="chap3.html#X7B60A306820D4ED2">3.3-2</a> <br /> <code class="func">InvolutiveBasisNP</code> <a href="chap6.html#X7A71E4CD7B43726B">6.2-1</a> <br /> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IBNP-0.17/doc/chapInd.txt new/IBNP-0.18/doc/chapInd.txt --- old/IBNP-0.17/doc/chapInd.txt 2025-09-11 18:48:49.000000000 +0200 +++ new/IBNP-0.18/doc/chapInd.txt 2025-11-04 20:43:09.000000000 +0100 @@ -15,11 +15,12 @@ [2XGM2NMList[102X 4.1-4 GP2NP 2.1 [2XGtNPoly[102X 5.1-3 - homogeneous polynomials 3.3-4 + homogeneous polynomials 3.3-5 [2XIAutoreduce[102X 3.2-10 [2XIAutoreduceCP[102X 3.2-10 [2XIAutoreduceNP[102X 6.1-10 involutive divisor 3.2 + InvolutiveAbortLimit 3.3-3 [2XInvolutiveBasis[102X 3.3-2 [2XInvolutiveBasisCP[102X 3.3-2 [2XInvolutiveBasisNP[102X 6.2-1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IBNP-0.17/doc/chapInd_mj.html new/IBNP-0.18/doc/chapInd_mj.html --- old/IBNP-0.17/doc/chapInd_mj.html 2025-09-11 18:48:49.000000000 +0200 +++ new/IBNP-0.18/doc/chapInd_mj.html 2025-11-04 20:43:09.000000000 +0100 @@ -41,11 +41,12 @@ <code class="func">GM2NMList</code> <a href="chap4_mj.html#X8719E2857E26325C">4.1-4</a> <br /> GP2NP <a href="chap2_mj.html#X783C6EC87988B533">2.1</a> <br /> <code class="func">GtNPoly</code> <a href="chap5_mj.html#X7996395279064998">5.1-3</a> <br /> -homogeneous polynomials <a href="chap3_mj.html#X791740DF84B742A2">3.3-4</a> <br /> +homogeneous polynomials <a href="chap3_mj.html#X791740DF84B742A2">3.3-5</a> <br /> <code class="func">IAutoreduce</code> <a href="chap3_mj.html#X7C58A339832877E9">3.2-10</a> <br /> <code class="func">IAutoreduceCP</code> <a href="chap3_mj.html#X7C58A339832877E9">3.2-10</a> <br /> <code class="func">IAutoreduceNP</code> <a href="chap6_mj.html#X8189DEDD87CE1667">6.1-10</a> <br /> involutive divisor <a href="chap3_mj.html#X7E43F2087BC8B4F9">3.2</a> <br /> +InvolutiveAbortLimit <a href="chap3_mj.html#X86A1B0998692BA00">3.3-3</a> <br /> <code class="func">InvolutiveBasis</code> <a href="chap3_mj.html#X7B60A306820D4ED2">3.3-2</a> <br /> <code class="func">InvolutiveBasisCP</code> <a href="chap3_mj.html#X7B60A306820D4ED2">3.3-2</a> <br /> <code class="func">InvolutiveBasisNP</code> <a href="chap6_mj.html#X7A71E4CD7B43726B">6.2-1</a> <br /> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IBNP-0.17/doc/involutive-cp.xml new/IBNP-0.18/doc/involutive-cp.xml --- old/IBNP-0.17/doc/involutive-cp.xml 2025-09-11 18:48:49.000000000 +0200 +++ new/IBNP-0.18/doc/involutive-cp.xml 2025-11-04 20:43:09.000000000 +0100 @@ -657,6 +657,46 @@ ]]> </Example> +<Subsection Label="subs-abort"> +<Heading>The process may abort</Heading> +It may happen that the calculation of an involutive basis may start to +produce an infinite polynomial basis. +The constant <C>InvolutiveAbortLimit</C> <Index>InvolutiveAbortLimit</Index> +is given an initial value of <M>20</M> which may be increased by the user. +If the size of the basis being produced reaches this limit, +then <C>fail</C> is returned. +<P/> +For a simple example, we consider the Pommaret division and start with a set +of polynomials <M>L := [ x^3-5y, x^2*y-4y]</M> all of whose leading monomials contain a power of <M>x</M>. +Then, for each of these polynomials, <M>x</M> is the only involutive divisor, +and prolongations all involve multiplying by <M>y</M>. +The process aborts when the basis becomes +<Display> +\{ xy^3-xy^2,~ x^2y^2-xy^2,~ x^3y-xy^2,~ x^4-xy \} +~\cup~ \{ xy^i-xy^2 ~|~ 4 \leqslant i \leqslant 19 \}. +</Display> +(This may be verified on setting <C>InfoLevel(InfoIBNP)</C> to one.) + +<Example> +<![CDATA[ +gap> CommutativeDivision := "Pommaret";; +gap> R0 := PolynomialRing( Rationals, ["x","y"] );; +gap> x := R0.1;; y := R0.2;; +gap> ord0 := MonomialGrlexOrdering( [x,y] );; +gap> L0 := [ x^4-x*y, x^3*y-x*y^2 ];; +gap> ibasP := InvolutiveBasisCP( R0, L0, ord0 ); +#I reached the involutive abort limit 20 +fail +gap> CommutativeDivision := "Janet";; +gap> ibasP := InvolutiveBasisCP( R0, L0, ord0 ); +rec( div := "Janet", mvars := [ [ 1, 2 ], [ 1 ], [ 1 ], [ 1 ] ], + polys := [ x*y^3-x*y^2, x^2*y^2-x*y^2, x^3*y-x*y^2, x^4-x*y ] ) +]]> +</Example> + + +</Subsection> + <Subsection Label="subs-ex452"> <Heading>A more detailed example</Heading> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IBNP-0.17/doc/manual.lab new/IBNP-0.18/doc/manual.lab --- old/IBNP-0.17/doc/manual.lab 2025-09-11 18:48:49.000000000 +0200 +++ new/IBNP-0.18/doc/manual.lab 2025-11-04 20:43:09.000000000 +0100 @@ -19,8 +19,9 @@ \makelabel{ibnp:Selecting an Ordering}{3.2.3}{X785D706A86DD7343} \makelabel{ibnp:Computing a Commutative Involutive Basis}{3.3}{X864907F987701716} \makelabel{ibnp:Prolongations and Autoreduction}{3.3.1}{X7ACAA0847CC0DBCC} -\makelabel{ibnp:A more detailed example}{3.3.3}{X831D45437DE37177} -\makelabel{ibnp:Using homogeneous polynomials}{3.3.4}{X791740DF84B742A2} +\makelabel{ibnp:The process may abort}{3.3.3}{X86A1B0998692BA00} +\makelabel{ibnp:A more detailed example}{3.3.4}{X831D45437DE37177} +\makelabel{ibnp:Using homogeneous polynomials}{3.3.5}{X791740DF84B742A2} \makelabel{ibnp:Functions for Noncommutative Monomials}{4}{X872783907DFA29B7} \makelabel{ibnp:Basic functions for monomials}{4.1}{X846C3B0F79265278} \makelabel{ibnp:Predefined algebras}{4.1.1}{X84F106BB8093FCAE} @@ -54,7 +55,8 @@ \makelabel{ibnp:IAutoreduceCP}{3.2.10}{X7C58A339832877E9} \makelabel{ibnp:InvolutiveBasis}{3.3.2}{X7B60A306820D4ED2} \makelabel{ibnp:InvolutiveBasisCP}{3.3.2}{X7B60A306820D4ED2} -\makelabel{ibnp:homogeneous polynomials}{3.3.4}{X791740DF84B742A2} +\makelabel{ibnp:InvolutiveAbortLimit}{3.3.3}{X86A1B0998692BA00} +\makelabel{ibnp:homogeneous polynomials}{3.3.5}{X791740DF84B742A2} \makelabel{ibnp:AlgebraIBNP}{4.1.1}{X84F106BB8093FCAE} \makelabel{ibnp:PrintNM}{4.1.2}{X7D53D8657AEDFEB2} \makelabel{ibnp:PrintNMList}{4.1.2}{X7D53D8657AEDFEB2} Binary files old/IBNP-0.17/doc/manual.pdf and new/IBNP-0.18/doc/manual.pdf differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IBNP-0.17/doc/manual.six new/IBNP-0.18/doc/manual.six --- old/IBNP-0.17/doc/manual.six 2025-09-11 18:48:49.000000000 +0200 +++ new/IBNP-0.18/doc/manual.six 2025-11-04 20:43:09.000000000 +0100 @@ -58,53 +58,56 @@ "\033[1X\033[33X\033[0;-2YProlongations and Autoreduction\033[133X\033[101X\ ", "3.3-1", [ 3, 3, 1 ], 383, 15, "prolongations and autoreduction", "X7ACAA0847CC0DBCC" ], + [ "\033[1X\033[33X\033[0;-2YThe process may abort\033[133X\033[101X", + "3.3-3", [ 3, 3, 3 ], 546, 17, "the process may abort", + "X86A1B0998692BA00" ], [ "\033[1X\033[33X\033[0;-2YA more detailed example\033[133X\033[101X", - "3.3-3", [ 3, 3, 3 ], 546, 17, "a more detailed example", + "3.3-4", [ 3, 3, 4 ], 585, 18, "a more detailed example", "X831D45437DE37177" ], [ "\033[1X\033[33X\033[0;-2YUsing homogeneous polynomials\033[133X\033[101X" - , "3.3-4", [ 3, 3, 4 ], 652, 19, "using homogeneous polynomials", + , "3.3-5", [ 3, 3, 5 ], 691, 20, "using homogeneous polynomials", "X791740DF84B742A2" ], [ "\033[1X\033[33X\033[0;-2YFunctions for Noncommutative Monomials\033[133X\\ -033[101X", "4", [ 4, 0, 0 ], 1, 20, "functions for noncommutative monomials", +033[101X", "4", [ 4, 0, 0 ], 1, 21, "functions for noncommutative monomials", "X872783907DFA29B7" ], [ "\033[1X\033[33X\033[0;-2YBasic functions for monomials\033[133X\033[101X" - , "4.1", [ 4, 1, 0 ], 14, 20, "basic functions for monomials", + , "4.1", [ 4, 1, 0 ], 14, 21, "basic functions for monomials", "X846C3B0F79265278" ], [ "\033[1X\033[33X\033[0;-2YPredefined algebras\033[133X\033[101X", - "4.1-1", [ 4, 1, 1 ], 17, 20, "predefined algebras", + "4.1-1", [ 4, 1, 1 ], 17, 21, "predefined algebras", "X84F106BB8093FCAE" ], [ "\033[1X\033[33X\033[0;-2YFunctions for Noncommutative Polynomials\033[133X\ -\033[101X", "5", [ 5, 0, 0 ], 1, 25, +\033[101X", "5", [ 5, 0, 0 ], 1, 26, "functions for noncommutative polynomials", "X7BD27C5585EF8629" ], [ "\033[1X\033[33X\033[0;-2YBasic functions for polynomials\033[133X\033[101X\ -", "5.1", [ 5, 1, 0 ], 4, 25, "basic functions for polynomials", +", "5.1", [ 5, 1, 0 ], 4, 26, "basic functions for polynomials", "X80FC94957D03EEA6" ], [ "\033[1X\033[33X\033[0;-2YNoncommutative Involutive Bases\033[133X\033[101X\ -", "6", [ 6, 0, 0 ], 1, 28, "noncommutative involutive bases", +", "6", [ 6, 0, 0 ], 1, 29, "noncommutative involutive bases", "X797E483A84214975" ], [ "\033[1X\033[33X\033[0;-2YNoncommutative Involutive Divisions\033[133X\033[\ -101X", "6.1", [ 6, 1, 0 ], 13, 28, "noncommutative involutive divisions", +101X", "6.1", [ 6, 1, 0 ], 13, 29, "noncommutative involutive divisions", "X7A86C2437F6EB83D" ], [ "\033[1X\033[33X\033[0;-2YSelecting a Division\033[133X\033[101X", - "6.1-5", [ 6, 1, 5 ], 166, 30, "selecting a division", + "6.1-5", [ 6, 1, 5 ], 166, 31, "selecting a division", "X83A3B3F77C712DA1" ], [ "\033[1X\033[33X\033[0;-2YComputing a Noncommutative Involutive Basis\033[1\ -33X\033[101X", "6.2", [ 6, 2, 0 ], 341, 33, +33X\033[101X", "6.2", [ 6, 2, 0 ], 341, 34, "computing a noncommutative involutive basis", "X80C3BE018688AFB7" ], [ "\033[1X\033[33X\033[0;-2YThe Disjoint Cones Conditions\033[133X\033[101X" - , "6.3", [ 6, 3, 0 ], 422, 35, "the disjoint cones conditions", + , "6.3", [ 6, 3, 0 ], 422, 36, "the disjoint cones conditions", "X7DB2608C86CA3B04" ], - [ "Bibliography", "bib", [ "Bib", 0, 0 ], 1, 38, "bibliography", + [ "Bibliography", "bib", [ "Bib", 0, 0 ], 1, 39, "bibliography", "X7A6F98FD85F02BFE" ], - [ "References", "bib", [ "Bib", 0, 0 ], 1, 38, "references", + [ "References", "bib", [ "Bib", 0, 0 ], 1, 39, "references", "X7A6F98FD85F02BFE" ], - [ "Index", "ind", [ "Ind", 0, 0 ], 1, 40, "index", "X83A0356F839C696F" ], + [ "Index", "ind", [ "Ind", 0, 0 ], 1, 41, "index", "X83A0356F839C696F" ], [ "GitHub repository", "1.0", [ 1, 0, 0 ], 1, 4, "github repository", "X7DFB63A97E67C0A1" ], [ "NP2GP", "2.1", [ 2, 1, 0 ], 10, 6, "np2gp", "X783C6EC87988B533" ], @@ -143,78 +146,80 @@ "involutivebasis", "X7B60A306820D4ED2" ], [ "\033[2XInvolutiveBasisCP\033[102X", "3.3-2", [ 3, 3, 2 ], 449, 16, "involutivebasiscp", "X7B60A306820D4ED2" ], - [ "homogeneous polynomials", "3.3-4", [ 3, 3, 4 ], 652, 19, + [ "InvolutiveAbortLimit", "3.3-3", [ 3, 3, 3 ], 546, 17, + "involutiveabortlimit", "X86A1B0998692BA00" ], + [ "homogeneous polynomials", "3.3-5", [ 3, 3, 5 ], 691, 20, "homogeneous polynomials", "X791740DF84B742A2" ], - [ "AlgebraIBNP", "4.1-1", [ 4, 1, 1 ], 17, 20, "algebraibnp", + [ "AlgebraIBNP", "4.1-1", [ 4, 1, 1 ], 17, 21, "algebraibnp", "X84F106BB8093FCAE" ], - [ "\033[2XPrintNM\033[102X", "4.1-2", [ 4, 1, 2 ], 35, 20, "printnm", + [ "\033[2XPrintNM\033[102X", "4.1-2", [ 4, 1, 2 ], 35, 21, "printnm", "X7D53D8657AEDFEB2" ], - [ "\033[2XPrintNMList\033[102X", "4.1-2", [ 4, 1, 2 ], 35, 20, + [ "\033[2XPrintNMList\033[102X", "4.1-2", [ 4, 1, 2 ], 35, 21, "printnmlist", "X7D53D8657AEDFEB2" ], - [ "\033[2XNM2GM\033[102X", "4.1-3", [ 4, 1, 3 ], 59, 21, "nm2gm", + [ "\033[2XNM2GM\033[102X", "4.1-3", [ 4, 1, 3 ], 59, 22, "nm2gm", "X7AD4CF167E6B7D2E" ], - [ "\033[2XNM2GMList\033[102X", "4.1-3", [ 4, 1, 3 ], 59, 21, "nm2gmlist", + [ "\033[2XNM2GMList\033[102X", "4.1-3", [ 4, 1, 3 ], 59, 22, "nm2gmlist", "X7AD4CF167E6B7D2E" ], - [ "\033[2XGM2NM\033[102X", "4.1-4", [ 4, 1, 4 ], 78, 21, "gm2nm", + [ "\033[2XGM2NM\033[102X", "4.1-4", [ 4, 1, 4 ], 78, 22, "gm2nm", "X8719E2857E26325C" ], - [ "\033[2XGM2NMList\033[102X", "4.1-4", [ 4, 1, 4 ], 78, 21, "gm2nmlist", + [ "\033[2XGM2NMList\033[102X", "4.1-4", [ 4, 1, 4 ], 78, 22, "gm2nmlist", "X8719E2857E26325C" ], - [ "\033[2XPrefixNM\033[102X", "4.1-5", [ 4, 1, 5 ], 100, 22, "prefixnm", + [ "\033[2XPrefixNM\033[102X", "4.1-5", [ 4, 1, 5 ], 100, 23, "prefixnm", "X7F72641C8441204E" ], - [ "\033[2XSubwordNM\033[102X", "4.1-5", [ 4, 1, 5 ], 100, 22, "subwordnm", + [ "\033[2XSubwordNM\033[102X", "4.1-5", [ 4, 1, 5 ], 100, 23, "subwordnm", "X7F72641C8441204E" ], - [ "\033[2XSuffixNM\033[102X", "4.1-5", [ 4, 1, 5 ], 100, 22, "suffixnm", + [ "\033[2XSuffixNM\033[102X", "4.1-5", [ 4, 1, 5 ], 100, 23, "suffixnm", "X7F72641C8441204E" ], - [ "\033[2XSuffixPrefixPosNM\033[102X", "4.1-6", [ 4, 1, 6 ], 120, 22, + [ "\033[2XSuffixPrefixPosNM\033[102X", "4.1-6", [ 4, 1, 6 ], 120, 23, "suffixprefixposnm", "X8046DF397ACA0E5E" ], - [ "\033[2XSubwordPosNM\033[102X", "4.1-7", [ 4, 1, 7 ], 148, 22, + [ "\033[2XSubwordPosNM\033[102X", "4.1-7", [ 4, 1, 7 ], 148, 23, "subwordposnm", "X82916CB37D346978" ], - [ "\033[2XIsSubwordNM\033[102X", "4.1-7", [ 4, 1, 7 ], 148, 22, + [ "\033[2XIsSubwordNM\033[102X", "4.1-7", [ 4, 1, 7 ], 148, 23, "issubwordnm", "X82916CB37D346978" ], - [ "\033[2XLeadVarNM\033[102X", "4.1-8", [ 4, 1, 8 ], 176, 23, "leadvarnm", + [ "\033[2XLeadVarNM\033[102X", "4.1-8", [ 4, 1, 8 ], 176, 24, "leadvarnm", "X83CF80DD7CD5F166" ], - [ "\033[2XLeadExpNM\033[102X", "4.1-8", [ 4, 1, 8 ], 176, 23, "leadexpnm", + [ "\033[2XLeadExpNM\033[102X", "4.1-8", [ 4, 1, 8 ], 176, 24, "leadexpnm", "X83CF80DD7CD5F166" ], - [ "\033[2XTailNM\033[102X", "4.1-8", [ 4, 1, 8 ], 176, 23, "tailnm", + [ "\033[2XTailNM\033[102X", "4.1-8", [ 4, 1, 8 ], 176, 24, "tailnm", "X83CF80DD7CD5F166" ], - [ "\033[2XDivNM\033[102X", "4.1-9", [ 4, 1, 9 ], 198, 23, "divnm", + [ "\033[2XDivNM\033[102X", "4.1-9", [ 4, 1, 9 ], 198, 24, "divnm", "X7CECFE0C86895946" ], - [ "\033[2XMaxDegreeNP\033[102X", "5.1-1", [ 5, 1, 1 ], 7, 25, + [ "\033[2XMaxDegreeNP\033[102X", "5.1-1", [ 5, 1, 1 ], 7, 26, "maxdegreenp", "X7A1E54F279CCCF65" ], - [ "\033[2XScalarMulNP\033[102X", "5.1-2", [ 5, 1, 2 ], 34, 25, + [ "\033[2XScalarMulNP\033[102X", "5.1-2", [ 5, 1, 2 ], 34, 26, "scalarmulnp", "X7903A443865A3471" ], - [ "\033[2XLtNPoly\033[102X", "5.1-3", [ 5, 1, 3 ], 58, 26, "ltnpoly", + [ "\033[2XLtNPoly\033[102X", "5.1-3", [ 5, 1, 3 ], 58, 27, "ltnpoly", "X7996395279064998" ], - [ "\033[2XGtNPoly\033[102X", "5.1-3", [ 5, 1, 3 ], 58, 26, "gtnpoly", + [ "\033[2XGtNPoly\033[102X", "5.1-3", [ 5, 1, 3 ], 58, 27, "gtnpoly", "X7996395279064998" ], - [ "\033[2XLowestLeadMonomialPosNP\033[102X", "5.1-4", [ 5, 1, 4 ], 89, 26, + [ "\033[2XLowestLeadMonomialPosNP\033[102X", "5.1-4", [ 5, 1, 4 ], 89, 27, "lowestleadmonomialposnp", "X79B2E02082C8799E" ], - [ "\033[2XLeftDivision\033[102X", "6.1-1", [ 6, 1, 1 ], 58, 29, + [ "\033[2XLeftDivision\033[102X", "6.1-1", [ 6, 1, 1 ], 58, 30, "leftdivision", "X8593BCDB8402C46C" ], - [ "\033[2XRightDivision\033[102X", "6.1-2", [ 6, 1, 2 ], 80, 29, + [ "\033[2XRightDivision\033[102X", "6.1-2", [ 6, 1, 2 ], 80, 30, "rightdivision", "X784AF6B87B2B5E5D" ], - [ "\033[2XLeftOverlapDivision\033[102X", "6.1-3", [ 6, 1, 3 ], 95, 29, + [ "\033[2XLeftOverlapDivision\033[102X", "6.1-3", [ 6, 1, 3 ], 95, 30, "leftoverlapdivision", "X7A979BF38311024C" ], - [ "\033[2XRightOverlapDivision\033[102X", "6.1-4", [ 6, 1, 4 ], 146, 30, + [ "\033[2XRightOverlapDivision\033[102X", "6.1-4", [ 6, 1, 4 ], 146, 31, "rightoverlapdivision", "X83CE05CF7CB18611" ], - [ "NoncommutativeDivision", "6.1-5", [ 6, 1, 5 ], 166, 30, + [ "NoncommutativeDivision", "6.1-5", [ 6, 1, 5 ], 166, 31, "noncommutativedivision", "X83A3B3F77C712DA1" ], - [ "\033[2XDivisionRecordNP\033[102X", "6.1-6", [ 6, 1, 6 ], 183, 31, + [ "\033[2XDivisionRecordNP\033[102X", "6.1-6", [ 6, 1, 6 ], 183, 32, "divisionrecordnp", "X86FAAD527E20A573" ], - [ "\033[2XIPolyReduceNP\033[102X", "6.1-7", [ 6, 1, 7 ], 215, 31, + [ "\033[2XIPolyReduceNP\033[102X", "6.1-7", [ 6, 1, 7 ], 215, 32, "ipolyreducenp", "X828DA2AE844847E9" ], - [ "\033[2XLoggedIPolyReduceNP\033[102X", "6.1-8", [ 6, 1, 8 ], 248, 32, + [ "\033[2XLoggedIPolyReduceNP\033[102X", "6.1-8", [ 6, 1, 8 ], 248, 33, "loggedipolyreducenp", "X78935EBD85A02F3F" ], - [ "\033[2XVerifyLoggedRecordNP\033[102X", "6.1-9", [ 6, 1, 9 ], 295, 32, + [ "\033[2XVerifyLoggedRecordNP\033[102X", "6.1-9", [ 6, 1, 9 ], 295, 33, "verifyloggedrecordnp", "X7EBFCE307BE928BA" ], - [ "\033[2XIAutoreduceNP\033[102X", "6.1-10", [ 6, 1, 10 ], 310, 33, + [ "\033[2XIAutoreduceNP\033[102X", "6.1-10", [ 6, 1, 10 ], 310, 34, "iautoreducenp", "X8189DEDD87CE1667" ], - [ "\033[2XInvolutiveBasisNP\033[102X", "6.2-1", [ 6, 2, 1 ], 347, 33, + [ "\033[2XInvolutiveBasisNP\033[102X", "6.2-1", [ 6, 2, 1 ], 347, 34, "involutivebasisnp", "X7A71E4CD7B43726B" ], - [ "disjoint cones", "6.3", [ 6, 3, 0 ], 422, 35, "disjoint cones", + [ "disjoint cones", "6.3", [ 6, 3, 0 ], 422, 36, "disjoint cones", "X7DB2608C86CA3B04" ], [ "\033[2XStrongLeftOverlapDivision\033[102X", "6.3-1", [ 6, 3, 1 ], 430, - 35, "strongleftoverlapdivision", "X7D87860878548EF2" ], + 36, "strongleftoverlapdivision", "X7D87860878548EF2" ], [ "\033[2XStrongRightOverlapDivision\033[102X", "6.3-2", [ 6, 3, 2 ], 514, - 36, "strongrightoverlapdivision", "X819FE8F87ACDB19C" ] ] + 37, "strongrightoverlapdivision", "X819FE8F87ACDB19C" ] ] ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IBNP-0.17/doc/title.xml new/IBNP-0.18/doc/title.xml --- old/IBNP-0.17/doc/title.xml 2025-09-11 18:48:49.000000000 +0200 +++ new/IBNP-0.18/doc/title.xml 2025-11-04 20:43:09.000000000 +0100 @@ -9,7 +9,7 @@ Involutive Bases for Noncommutative Polynomials </Subtitle> <Version> - 0.17 + 0.18 </Version> <Author> Gareth A. Evans<Alt Only="LaTeX"><Br/></Alt> @@ -29,7 +29,7 @@ </Author> <Date> - 11 September 2025 + 4 November 2025 </Date> <Abstract> The &IBNP; package provides methods for computing an involutive (&Grob;) basis <M>B</M> for an ideal <M>J</M> over a polynomial ring <M>R</M> in both the commutative and noncommutative cases. <P/>Secondly, methods are provided to involutively reduce a given polynomial to its normal form in <M>R/J</M>. <P/>Bug reports, comments, suggestions for additional features, and offers to implement some of these, will all be very welcome. <P/>Please submit any issues at <URL>https://github.com/gap-packages/ibnp/issues/</URL> or send an email to the second author at <Email>[email protected]</Email>. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IBNP-0.17/lib/involutive-cp.gi new/IBNP-0.18/lib/involutive-cp.gi --- old/IBNP-0.17/lib/involutive-cp.gi 2025-09-11 18:48:49.000000000 +0200 +++ new/IBNP-0.18/lib/involutive-cp.gi 2025-11-04 20:43:09.000000000 +0100 @@ -489,16 +489,12 @@ pos := npolys; drec := DivisionRecordCP( A, old, ord ); oldvars := drec.mvars; - if ( pl > 2 ) then - Print( "old = ", old, "\n" ); - Print( "oldvars = ", oldvars, "\n" ); - fi; + Info( InfoIBNP, 2, "old = ", old ); + Info( InfoIBNP, 2, "oldvars = ", oldvars ); while ( pos > 0 ) and ( not reduced ) do ## for each poly in old ## extract pos-th element of the basis and reduce using the rest oldPoly := old[pos]; - if ( pl > 2 ) then - Print( "oldPoly = ", oldPoly, "\n" ); - fi; + Info( InfoIBNP, 2, "oldPoly = ", oldPoly ); ## construct basis without oldPoly ## calculate multiplicative Variables if using a local division newvars := Concatenation( oldvars{[1..pos-1]}, @@ -507,15 +503,17 @@ nrec := rec( div := div, mvars := newvars, polys := new ); ## involutively reduce old polynomial w.r.t. the truncated list newPoly := IPolyReduceCP( A, oldPoly, nrec, ord ); - Info( InfoIBNP, 2, "newPoly = ", newPoly ); - ## if the polynomial did not reduce to 0 + ## did the polynomial reduce to 0 or what? if ( newPoly = z ) then ## the polynomial reduced to zero ## remove the polynomial from the list - new := Concatenation( new{[1..pos-1]}, - new{[pos+1..npolys]} ); + old := Concatenation( new{[1..pos-1]}, + new{[pos+1..Length(new)]} ); pos := pos - 1; npolys := npolys - 1; + reduced := true; + Info( InfoIBNP, 2, "the polynomial reduced to zero" ); + Info( InfoIBNP, 2, "reduction! now old = ", old ); elif ( oldPoly = newPoly ) then ## we may proceed to look at the next polynomial pos := pos - 1; @@ -523,6 +521,7 @@ ## otherwise some reduction took place so start again ## add the new polynomial onto the list reduced := true; + Info( InfoIBNP, 2, "newPoly = ", newPoly ); old := Concatenation( new, [ newPoly ] ); Info( InfoIBNP, 2, "reduction! now old = ", old ); fi; @@ -633,8 +632,9 @@ found := true; Add( basis, v ); Info( InfoIBNP, 2, "adding ", v ); - if ( pl > 0 ) and - ( Length(basis) > InvolutiveAbortLimit ) then + if ( Length(basis) > InvolutiveAbortLimit ) then + Print( "#I reached the involutive abort limit ", + InvolutiveAbortLimit, "\n" ); return fail; fi; drec := DivisionRecordCP( A, basis, ord ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IBNP-0.17/tst/extras/qo-example.tst new/IBNP-0.18/tst/extras/qo-example.tst --- old/IBNP-0.17/tst/extras/qo-example.tst 1970-01-01 01:00:00.000000000 +0100 +++ new/IBNP-0.18/tst/extras/qo-example.tst 2025-11-04 20:43:09.000000000 +0100 @@ -0,0 +1,66 @@ +############################################################################# +## +#W qo-example.tst GAP4 package IBNP Gareth Evans & Chris Wensley +## + +gap> START_TEST( "qo-example.tst" ); +gap> ibnp_infolevel_saved := InfoLevel( InfoIBNP );; +gap> SetInfoLevel( InfoIBNP, 0 );; + +gap> R := PolynomialRing( GF(2), ["x","y"] );; +gap> e := One(R);; x:=R.1;; y:=R.2;; +gap> ord := MonomialGrlexOrdering( [x,y] );; +gap> L2 := [ x^6*y^6+x^2*y^2, x^6+x ];; +gap> p := x^6*y^7 + x*y^7;; +gap> q := y^8;; +gap> CommutativeDivision := "Thomas";; +gap> ibasT := InvolutiveBasis( R, L2, ord ); +rec( div := "Thomas", + mvars := [ [ 1 ], [ 2 ], [ 1 ], [ 2 ], [ 1 ], [ 2 ], [ 1 ], [ 2 ], [ 1 ], + [ 2 ], [ 1 ], [ 1, 2 ] ], + polys := [ x^6+x, x*y^6+x^2*y^2, x^6*y+x*y, x^2*y^6+x^3*y^2, x^6*y^2+x*y^2, + x^3*y^6+x^4*y^2, x^6*y^3+x*y^3, x^4*y^6+x^5*y^2, x^6*y^4+x*y^4, + x^5*y^6+x*y^2, x^6*y^5+x*y^5, x^6*y^6+x^2*y^2 ] ) +gap> rp := LoggedIPolyReduceCP( R, p, ibasT, ord ); +rec( logs := [ 0*Z(2), y, 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), + 0*Z(2), 0*Z(2), 0*Z(2), y ], + polys := [ x^6+x, x*y^6+x^2*y^2, x^6*y+x*y, x^2*y^6+x^3*y^2, x^6*y^2+x*y^2, + x^3*y^6+x^4*y^2, x^6*y^3+x*y^3, x^4*y^6+x^5*y^2, x^6*y^4+x*y^4, + x^5*y^6+x*y^2, x^6*y^5+x*y^5, x^6*y^6+x^2*y^2 ], result := 0*Z(2) ) +gap> rq := IPolyReduceCP( R, q, ibasT, ord ); +y^8 +gap> ## note that none of the powers of y reduce + +gap> CommutativeDivision := "Janet";; +gap> ibasJ := InvolutiveBasis( R, L2, ord ); +rec( div := "Janet", + mvars := [ [ 1 ], [ 2 ], [ 1 ], [ 2 ], [ 1 ], [ 2 ], [ 1 ], [ 2 ], [ 1 ], + [ 2 ], [ 1 ], [ 1, 2 ] ], + polys := [ x^6+x, x*y^6+x^2*y^2, x^6*y+x*y, x^2*y^6+x^3*y^2, x^6*y^2+x*y^2, + x^3*y^6+x^4*y^2, x^6*y^3+x*y^3, x^4*y^6+x^5*y^2, x^6*y^4+x*y^4, + x^5*y^6+x*y^2, x^6*y^5+x*y^5, x^6*y^6+x^2*y^2 ] ) +gap> ibasT!.polys = ibasJ!.polys; +true +gap> ibasT!.mvars = ibasJ!.mvars; +true +gap> ## so the same reductions apply using either division: +gap> rp := LoggedIPolyReduceCP( R, p, ibasJ, ord ); +rec( logs := [ 0*Z(2), y, 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), + 0*Z(2), 0*Z(2), 0*Z(2), y ], + polys := [ x^6+x, x*y^6+x^2*y^2, x^6*y+x*y, x^2*y^6+x^3*y^2, x^6*y^2+x*y^2, + x^3*y^6+x^4*y^2, x^6*y^3+x*y^3, x^4*y^6+x^5*y^2, x^6*y^4+x*y^4, + x^5*y^6+x*y^2, x^6*y^5+x*y^5, x^6*y^6+x^2*y^2 ], result := 0*Z(2) ) +gap> rq := IPolyReduceCP( R, q, ibasT, ord ); +y^8 + +gap> CommutativeDivision := "Pommaret";; +gap> ibasP := InvolutiveBasisCP( R, L2, ord ); +#I reached the involutive abort limit 20 +fail + +gap> SetInfoLevel( InfoIBNP, ibnp_infolevel_saved );; +gap> STOP_TEST( "qo-example.tst", 10000 ); + +############################################################################# +## +#E qo-example.tst . . . . . . . . . . . . . . . . . . . . . . . . ends here diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IBNP-0.17/tst/manual/involutive-cp.tst new/IBNP-0.18/tst/manual/involutive-cp.tst --- old/IBNP-0.17/tst/manual/involutive-cp.tst 2025-09-11 18:48:49.000000000 +0200 +++ new/IBNP-0.18/tst/manual/involutive-cp.tst 2025-11-04 20:43:09.000000000 +0100 @@ -87,6 +87,20 @@ a^3*b^2-9*a, a^3*b^3-9*a*b ], result := 9*a^2+9*a*b+6*b^2 ) gap> ## Section 3.3.3 +gap> CommutativeDivision := "Pommaret";; +gap> R0 := PolynomialRing( Rationals, ["x","y"] );; +gap> x := R0.1;; y := R0.2;; +gap> ord0 := MonomialGrlexOrdering( [x,y] );; +gap> L0 := [ x^4-x*y, x^3*y-x*y^2 ];; +gap> ibasP := InvolutiveBasisCP( R0, L0, ord0 ); +#I reached the involutive abort limit 20 +fail +gap> CommutativeDivision := "Janet";; +gap> ibasP := InvolutiveBasisCP( R0, L0, ord0 ); +rec( div := "Janet", mvars := [ [ 1, 2 ], [ 1 ], [ 1 ], [ 1 ] ], + polys := [ x*y^3-x*y^2, x^2*y^2-x*y^2, x^3*y-x*y^2, x^4-x*y ] ) + +gap> ## Section 3.3.4 gap> ## this implements Example 4.5.2 in the thesis, gap> SetInfoLevel( InfoIBNP, 1 );; gap> CommutativeDivision := "Janet";; @@ -145,7 +159,7 @@ #I reduced to: -z^21+y*z^12+z^7 -z^21+y*z^12+z^7 -gap> ## Section 3.3.4 +gap> ## Section 3.3.5 gap> SetInfoLevel( InfoIBNP, 0 ); gap> R4 := PolynomialRing( Rationals, [ "x", "y", "z", "t" ] );; gap> x := R4.1;; y := R4.2;; z := R4.3;; t := R4.4;; ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.Nm6oK7/_old 2026-06-16 14:01:20.641059625 +0200 +++ /var/tmp/diff_new_pack.Nm6oK7/_new 2026-06-16 14:01:20.645059791 +0200 @@ -1,5 +1,5 @@ -mtime: 1760954419 -commit: 77be88ebacb6b475ad34b4c82746650ae648bf3b1db94e2e0d2088d96010be16 +mtime: 1781538646 +commit: ff341172b99c29558ae887c3f8ae4497b34e4712396cb13e08a3eb20eaefa34e url: https://src.opensuse.org/jengelh/gap-ibnp 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-06-15 17:50:46.000000000 +0200 @@ -0,0 +1 @@ +.osc
