From Polynomial Invariants to Linear Loops

02/13/2023
by   George Kenison, et al.
0

Loop invariants are software properties that hold before and after every iteration of a loop. As such, invariants provide inductive arguments that are key in automating the verification of program loops. The problem of generating loop invariants; in particular, invariants described by polynomial relations (so called polynomial invariants), is therefore one of the hardest problems in software verification. In this paper we advocate an alternative solution to invariant generation. Rather than inferring invariants from loops, we synthesise loops from invariants. As such, we generate loops that satisfy a given set of polynomials; in other words, our synthesised loops are correct by construction. Our work turns the problem of loop synthesis into a symbolic computation challenge. We employ techniques from algebraic geometry to synthesise loops whose polynomial invariants are described by pure difference binomials. We show that such complex polynomial invariants need “only” linear loops, opening up new venues in program optimisation. We prove the existence of non-trivial loops with linear updates for polynomial invariants generated by pure difference binomials. Importantly, we introduce an algorithmic approach that constructs linear loops from such polynomial invariants, by generating linear recurrence sequences that have specified algebraic relations among their terms.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
03/05/2021

Algebra-based Synthesis of Loops and their Invariants (Invited Paper)

Provably correct software is one of the key challenges in our softwaredr...
research
07/07/2017

Data-Driven Loop Invariant Inference with Automatic Feature Synthesis

We present LoopInvGen, a tool for generating loop invariants that can pr...
research
10/25/2019

Polynomial Probabilistic Invariants and the Optional Stopping Theorem

In this paper we present methods for the synthesis of polynomial invaria...
research
10/12/2020

A Complete Approach to Loop Verification with Invariants and Summaries

Loop invariants characterize the partial result computed by a loop so fa...
research
03/02/2020

On-the-fly Optimization of Parallel Computation of Symbolic Symplectic Invariants

Group invariants are used in high energy physics to define quantum field...
research
06/26/2019

Ilinva: Using Abduction to Generate Loop Invariants

We describe a system to prove properties of programs. The key feature of...
research
01/09/2017

Semialgebraic Invariant Synthesis for the Kannan-Lipton Orbit Problem

The Orbit Problem consists of determining, given a linear transformation...

Please sign up or login with your details

Forgot password? Click here to reset