A Complete Approach to Loop Verification with Invariants and Summaries

10/12/2020
by   Gidon Ernst, et al.
0

Loop invariants characterize the partial result computed by a loop so far up to an intermediate state. It has been noted, however, that complementing invariants by summaries, which characterize the remaining iterations of a loop, can often lead to simpler correctness proofs. In this paper, we derive sound verification conditions for this approach, and moreover characterize completeness relative to a class of "safe" invariants, alongside with fundamental and novel insights in the relation between invariants and summaries. All theoretical results have immediate practical consequences for tool use and construction. Summaries should therefore be regarded as a principal alternative to invariants. To substantiate this claim experimentally, we evaluate the automation potential using state-of-the-art Horn solvers, which shows that the the proposed approach is competitive, even without specialized solving strategies.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
02/13/2023

From Polynomial Invariants to Linear Loops

Loop invariants are software properties that hold before and after every...
research
09/25/2019

CLN2INV: Learning Loop Invariants with Continuous Logic Networks

Program verification offers a framework for ensuring program correctness...
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
10/10/2020

Cuvée: Blending SMT-LIB with Programs and Weakest Preconditions

Cuvée is a program verification tool that reads SMT-LIB-like input files...
research
05/19/2020

Pegasus: Sound Continuous Invariant Generation

Continuous invariants are an important component in deductive verificati...
research
03/18/2021

Computing Parameterized Invariants of Parameterized Petri Nets

A fundamental advantage of Petri net models is the possibility to automa...
research
03/17/2020

Learning Nonlinear Loop Invariants with Gated Continuous Logic Networks

In many cases, verifying real-world programs requires inferring loop inv...

Please sign up or login with your details

Forgot password? Click here to reset