  Loop invariants are properties of a program loop that hold before and after
each iteration of the loop. They are often employed to verify programs and
ensure that algorithms consistently produce correct results during execution.
Consequently, the generation of invariants becomes a crucial task for loops. We
specifically focus on polynomial loops, where both the loop conditions and
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
exhibit arbitrary degrees.
  Applying tools from algebraic geometry, we present two algorithms designed to
generate all polynomial invariants for a while loop, up to a specified degree.
These algorithms differ based on whether the initial values of the loop
variables are given or treated as parameters. Furthermore, we introduce various
methods to address cases where the algebraic problem exceeds the computational
capabilities of our methods. In such instances, we identify alternative
approaches to generate specific polynomial invariants.
