Quantifiers on Demand

06/01/2021
by   Arie Gurfinkel, et al.
0

Automated program verification is a difficult problem. It is undecidable even for transition systems over Linear Integer Arithmetic (LIA). Extending the transition system with theory of Arrays, further complicates the problem by requiring inference and reasoning with universally quantified formulas. In this paper, we present a new algorithm, Quic3, that extends IC3 to infer universally quantified invariants over the combined theory of LIA and Arrays. Unlike other approaches that use either IC3 or an SMT solver as a black box, Quic3 carefully manages quantified generalization (to construct quantified invariants) and quantifier instantiation (to detect convergence in the presence of quantifiers). While Quic3 is not guaranteed to converge, it is guaranteed to make progress by exploring longer and longer executions. We have implemented Quic3 within the Constrained Horn Clause solver engine of Z3 and experimented with it by applying Quic3 to verifying a variety of public benchmarks of array manipulating C programs.

READ FULL TEXT
POST COMMENT

Comments

There are no comments yet.

Authors

page 1

page 2

page 3

page 4

08/07/2020

From Well Structured Transition Systems to Program Verification

We describe the use of the theory of WSTS for verifying programs....
04/25/2019

Interpolation and the Array Property Fragment

Interpolation based software model checkers have been successfully emplo...
02/23/2020

Verifying Array Manipulating Programs with Full-Program Induction

We present a full-program induction technique for proving (a sub-class o...
07/12/2017

Verifying Array Manipulating Programs by Tiling

Formally verifying properties of programs that manipulate arrays in loop...
04/09/2021

A Theory of Heap for Constrained Horn Clauses (Extended Technical Report)

Constrained Horn Clauses (CHCs) are an intermediate program representati...
01/18/2021

Counterexample-Guided Prophecy for Model Checking Modulo the Theory of Arrays

We develop a framework for model checking infinite-state systems by auto...
05/27/2020

Global Guidance for Local Generalization in Model Checking

SMT-based model checkers, especially IC3-style ones, are currently the m...
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.