Algebraic and Algorithmic Methods for Computing Polynomial Loop Invariants
Erdenebayar Bayarmagnai, Fatemeh Mohammadi, Rémi Prébet
TL;DR
This work addresses the challenge of generating polynomial loop invariants for loops with polynomial updates, focusing on invariant sets defined via algebraic geometry. It develops a principled framework around invariant sets $S_{(F,X)}$ and provides algorithms to compute these sets, test proposed invariants, and generate complete bases of invariants within finite-dimensional subspaces, including extensions to branching loops. A key contribution is a fast algorithm for invariants of the form $f(\mathbf{x})-f(\mathbf{a})$, together with a parametric description of invariants for variable initial values and efficient handling of fixed initial values. The methods are implemented in Macaulay2 and show practical improvements over existing tools like Polar, enabling the discovery of richer invariant structures in polynomial loops and offering termination insights via invariant-set analysis. This work thus advances automation in program verification for nonlinear loops by blending linear-algebraic techniques with algebraic-geometry tools and providing scalable pathways for branching nondeterministic programs.
Abstract
Loop invariants are properties of a program loop that hold both before and after each iteration of the loop. They are often used to verify programs and ensure that algorithms consistently produce correct results during execution. Consequently, generating invariants becomes a crucial task for loops. We specifically focus on polynomial loops, where both the loop conditions and the assignments within the loop are expressed as polynomials. Although computing polynomial invariants for general loops is undecidable, efficient algorithms have been developed for certain classes of loops. For instance, when all assignments within a while loop involve linear polynomials, the loop becomes solvable. In this work, we study the more general case, where the polynomials can have arbitrary degrees. Using tools from algebraic geometry, we present two algorithms designed to generate all polynomial invariants within a given vector subspace, for a branching loop with nondeterministic conditional statements. These algorithms combine linear algebraic subroutines with computations on polynomial ideals. They differ depending on whether the initial values of the loop variables are specified or treated as parameters. Additionally, we present a much more efficient algorithm for generating polynomial invariants of a specific form, applicable to all initial values. This algorithm avoids expensive ideal computations.
