SymInfer: Inferring Program Invariants using Symbolic States

03/28/2019
by   ThanhVu Nguyen, et al.
0

We introduce a new technique for inferring program invariants that uses symbolic states generated by symbolic execution. Symbolic states, which consist of path conditions and constraints on local variables, are a compact description of sets of concrete program states and they can be used for both invariant inference and invariant verification. Our technique uses a counterexample-based algorithm that creates concrete states from symbolic states, infers candidate invariants from concrete states, and then verifies or refutes candidate invariants using symbolic states. The refutation case produces concrete counterexamples that prevent spurious results and allow the technique to obtain more precise invariants. This process stops when the algorithm reaches a stable set of invariants. We present SymInfer, a tool that implements these ideas to automatically generate invariants at arbitrary locations in a Java program. The tool obtains symbolic states from Symbolic PathFinder and uses existing algorithms to infer complex (potentially nonlinear) numerical invariants. Our preliminary results show that SymInfer is effective in using symbolic states to generate precise and useful invariants for proving program safety and analyzing program runtime complexity. We also show that SymInfer outperforms existing invariant generation systems.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
03/28/2019

A Counterexample-guided Approach to Finding Numerical Invariants

Numerical invariants, e.g., relationships among numerical variables in a...
research
03/22/2019

SLING: Using Dynamic Analysis to Infer Program Invariants in Separation Logic

We introduce a new dynamic analysis technique to discover invariants in ...
research
12/11/2020

Probabilistic Conditional System Invariant Generation with Bayesian Inference

Invariants are a set of properties over program attributes that are expe...
research
04/27/2023

Identifying Minimal Changes in the Zone Abstract Domain

Verification techniques express program states as logical formulas over ...
research
08/22/2020

Learning the Boundary of Inductive Invariants

We study the complexity of invariant inference and its connections to ex...
research
03/26/2020

Data-Driven Inference of Representation Invariants

A representation invariant is a property that holds of all values of abs...
research
05/30/2022

Data-driven Numerical Invariant Synthesis with Automatic Generation of Attributes

We propose a data-driven algorithm for numerical invariant synthesis and...

Please sign up or login with your details

Forgot password? Click here to reset