2,786 research outputs found
Invariant Generation for Multi-Path Loops with Polynomial Assignments
Program analysis requires the generation of program properties expressing
conditions to hold at intermediate program locations. When it comes to programs
with loops, these properties are typically expressed as loop invariants. In
this paper we study a class of multi-path program loops with numeric variables,
in particular nested loops with conditionals, where assignments to program
variables are polynomial expressions over program variables. We call this class
of loops extended P-solvable and introduce an algorithm for generating all
polynomial invariants of such loops. By an iterative procedure employing
Gr\"obner basis computation, our approach computes the polynomial ideal of the
polynomial invariants of each program path and combines these ideals
sequentially until a fixed point is reached. This fixed point represents the
polynomial ideal of all polynomial invariants of the given extended P-solvable
loop. We prove termination of our method and show that the maximal number of
iterations for reaching the fixed point depends linearly on the number of
program variables and the number of inner loops. In particular, for a loop with
m program variables and r conditional branches we prove an upper bound of m*r
iterations. We implemented our approach in the Aligator software package.
Furthermore, we evaluated it on 18 programs with polynomial arithmetic and
compared it to existing methods in invariant generation. The results show the
efficiency of our approach
Aligator.jl - A Julia Package for Loop Invariant Generation
We describe the Aligator.jl software package for automatically generating all
polynomial invariants of the rich class of extended P-solvable loops with
nested conditionals. Aligator.jl is written in the programming language Julia
and is open-source. Aligator.jl transforms program loops into a system of
algebraic recurrences and implements techniques from symbolic computation to
solve recurrences, derive closed form solutions of loop variables and infer the
ideal of polynomial invariants by variable elimination based on Gr\"obner basis
computation
Polynomial Invariants for Affine Programs
We exhibit an algorithm to compute the strongest polynomial (or algebraic)
invariants that hold at each location of a given affine program (i.e., a
program having only non-deterministic (as opposed to conditional) branching and
all of whose assignments are given by affine expressions). Our main tool is an
algebraic result of independent interest: given a finite set of rational square
matrices of the same dimension, we show how to compute the Zariski closure of
the semigroup that they generate
LNCS
This paper presents Aligators, a tool for the generation of universally quantified array invariants. Aligators leverages recurrence solving and algebraic techniques to carry out inductive reasoning over array content. The Aligators’ loop extraction module allows treatment of multi-path loops by exploiting their commutativity and serializability properties. Our experience in applying Aligators on a collection of loops from open source software projects indicates the applicability of recurrence and algebraic solving techniques for reasoning about arrays
The Hardness of Finding Linear Ranking Functions for Lasso Programs
Finding whether a linear-constraint loop has a linear ranking function is an
important key to understanding the loop behavior, proving its termination and
establishing iteration bounds. If no preconditions are provided, the decision
problem is known to be in coNP when variables range over the integers and in
PTIME for the rational numbers, or real numbers. Here we show that deciding
whether a linear-constraint loop with a precondition, specifically with
partially-specified input, has a linear ranking function is EXPSPACE-hard over
the integers, and PSPACE-hard over the rationals. The precise complexity of
these decision problems is yet unknown. The EXPSPACE lower bound is derived
from the reachability problem for Petri nets (equivalently, Vector Addition
Systems), and possibly indicates an even stronger lower bound (subject to open
problems in VAS theory). The lower bound for the rationals follows from a novel
simulation of Boolean programs. Lower bounds are also given for the problem of
deciding if a linear ranking-function supported by a particular form of
inductive invariant exists. For loops over integers, the problem is PSPACE-hard
for convex polyhedral invariants and EXPSPACE-hard for downward-closed sets of
natural numbers as invariants.Comment: In Proceedings GandALF 2014, arXiv:1408.5560. I thank the organizers
of the Dagstuhl Seminar 14141, "Reachability Problems for Infinite-State
Systems", for the opportunity to present an early draft of this wor
(Un)Solvable Loop Analysis
Automatically generating invariants, key to computer-aided analysis of
probabilistic and deterministic programs and compiler optimisation, is a
challenging open problem. Whilst the problem is in general undecidable, the
goal is settled for restricted classes of loops. For the class of solvable
loops, introduced by Kapur and Rodr\'iguez-Carbonell in 2004, one can
automatically compute invariants from closed-form solutions of recurrence
equations that model the loop behaviour. In this paper we establish a technique
for invariant synthesis for loops that are not solvable, termed unsolvable
loops. Our approach automatically partitions the program variables and
identifies the so-called defective variables that characterise unsolvability.
Herein we consider the following two applications. First, we present a novel
technique that automatically synthesises polynomials from defective monomials,
that admit closed-form solutions and thus lead to polynomial loop invariants.
Second, given an unsolvable loop, we synthesise solvable loops with the
following property: the invariant polynomials of the solvable loops are all
invariants of the given unsolvable loop. Our implementation and experiments
demonstrate both the feasibility and applicability of our approach to both
deterministic and probabilistic programs.Comment: Extended version of the conference paper `Solving Invariant
Generation for Unsolvable Loops' published at SAS 2022 (see also the preprint
arXiv:2206.06943). We extended both the text and results. 36 page
- …