Elsevier

Information Processing Letters

Volume 91, Issue 5, 15 September 2004, Pages 233-244
Information Processing Letters

Computing polynomial program invariants

https://doi.org/10.1016/j.ipl.2004.05.004Get rights and content

Abstract

We present two automatic program analyses. The first analysis checks if a given polynomial relation holds among the program variables whenever control reaches a given program point. It fully interprets assignment statements with polynomial expressions on the right-hand side and polynomial disequality guards. Other assignments are treated as non-deterministically assigning any value and guards that are not polynomial disequalities are ignored. The second analysis extends this checking procedure. It computes the set of all polynomial relations of an arbitrary given form that are valid at a given target program point. It is also complete up to the abstraction described above.

References (15)

  • N Bjørner et al.

    Automatic generation of invariants and intermediate assertions

    Theoret. Comput. Sci.

    (1997)
  • K.R Apt et al.

    Countable nondeterminism and random assignment

    J. ACM

    (1986)
  • T Becker et al.

    Gröbner Bases. A Computational Approach to Commutative Algebra

    (1998)
  • S Bensalem et al.

    Powerful techniques for the automatic generation of invariants

  • P Cousot

    Constructive design of a hierarchy of semantics of a transition system by abstract interpretation

  • J Gunnarsson et al.

    Verification of a large discrete system using algebraic methods

  • M.S Hecht

    Flow Analysis of Computer Programs

    (1977)
There are more references available in the full text version of this article.

Cited by (85)

  • A novel data-driven approach on inferring loop invariants for C programs

    2022, Journal of Computer Languages
    Citation Excerpt :

    Chen et al. [46] apply multivariate Lagrange interpolation to synthesize polynomial loop invariants directly. Müller-Olm et al. [47] exploit an abstract interpretation-based technique to obtain possible algebraic invariants by combining user-provided monomials. Cachera et al. [48] extend the work of Müller-Olm et al. [47], and utilize abstract interpretation with a constant-based technique to compute loop invariants for imperative programs, where program variables are interpreted as values over the real numbers.

  • Polynomial interrupt timed automata: Verification and expressiveness

    2021, Information and Computation
    Citation Excerpt :

    Linear constraints are not always expressive enough for modeling purposes. In an untimed setting, polynomials of discrete variables were considered for the analysis of programs [14–16]. In the context of hybrid systems, several biological models shown in [17] involve polynomials (or even rational functions) of continuous variables, that appear in the differential equations, but can also be compared with threshold values.

  • Solvable Polynomial Ideals: The Ideal Reflection for Program Analysis

    2024, Proceedings of the ACM on Programming Languages
View all citing articles on Scopus
1

On leave from Universität Dortmund.

View full text