Skip to main content

Linear Loop Synthesis from Polynomial Invariants

Anton Varonka (TU Wien)

A loop invariant is a relation among variables that holds before and after every iteration of a program loop.

Invariants provide inductive arguments that are key for the formal verification of

recursive programs.

 

Automated generation of reasonable invariants is a much-desired step to

proving program correctness. In quest of understanding what relations

can be invariant for a loop with linear updates, we address the inverse

problem--finding (synthesising) linear loops that satisfy given

invariants. Loops synthesised modulo invariants are correct by design

and no longer need to be verified.

 

In this line of work, we consider invariants specified by polynomial

equalities. Two classes of such invariants are discussed: a)

conjunctions of pure difference binomials, and b) quadratic equations.

We introduce an algorithmic approach that constructs linear loops from

such polynomial invariants, by generating linear recurrence sequences

that have given algebraic relations amongst their terms. In particular,

we provide a procedure that, given a quadratic equation, decides whether

a loop satisfying this equation exists and, if the answer is positive,

the procedure synthesises a loop and ensures its variables achieve

infinitely many different values.

Speaker Bio

Anton Varonka is a PhD student at the Forsyte group at TU Wien, under

the supervision of Laura Kovács. Anton received his master's degree from

Saarland University, where he was part of Joel Ouaknine's group at

MPI-SWS. Before that, Anton did his undergraduate studies at Belarusian

State University.

 

Anton's work focuses on the computability aspects of

verification-motivated problems. He is most interested in studying the

expressivity of different models of computation and applying algebraic

techniques.

 

 

Share this: