StrictlyPositiveCert
The code is available here
The package StrictlyPositiveCert implements Algorithm 4 in (Shang
et
al. 2025), which computes certificates of strictly positive polynomials
over basic semialgebraic sets associated a set of generators \(G\) for
which the quadratic module generated by \(G\) is Archimedean in the
multivariate case.
Installation
Use the make command at the root of the project to produce the maple
library file StrictlyPositiveCert.mla. Then, load the
StrictlyPositiveCert package by
adding the following two lines at the beginning of your maple file:
libname := libname, "<PATH-TO-STRICTLYPOSITIVECERT>/StrictlyPositiveCert.mla":
with(StrictlyPositiveCert):
Usage and examples
The command spCertificate has the following inputs:
f: Denotes the input polynomialbasis: This is a list of polynomials (generators) in the free variablexx: Denotes the free variable of the ring of univariate polynomial
The directory tests contains benchmarks and examples reported in
(Shang et al. 2025).
For a simple example, we can execute
libname := libname, "../StrictlyPositiveCert.mla":
with(StrictlyPositiveCert);
spCertificates(x+1, [-x^2], x);
The output is
> libname := libname, "../StrictlyPositiveCert.mla":
> with(StrictlyPositiveCert);
[bound_info, dot_product, findEps, spCertificates]
> spCertificates(x+1, [-x^2], x);
2
[x + 1 + 9/10 x , 9/10]
We can verify \(x+1 = (x+1+\frac{9}{10}x^2 + \frac{9}{10} \dot (-x^2))\) and \(x+1+\frac{9}{10}x^2 = (\frac{1}{2}x+1)^2+\frac{13}{20}x^2\)
References
Shang, Weifeng, Chenqi Mou, Jose Abel Castellanos Joo, and Deepak Kapur. 2025. Computing Certificates of Strictly Positive Polynomials in Archimedean Quadratic Modules. https://arxiv.org/abs/2503.11119.