Proofs as Relational Invariants of Synthesized Execution Grammars

10/10/2017
by   Caleb Voss, et al.
0

The automatic verification of programs that maintain unbounded low-level data structures is a critical and open problem. Analyzers and verifiers developed in previous work can synthesize invariants that only describe data structures of heavily restricted forms, or require an analyst to provide predicates over program data and structure that are used in a synthesized proof of correctness. In this work, we introduce a novel automatic safety verifier of programs that maintain low-level data structures, named LTTP. LTTP synthesizes proofs of program safety represented as a grammar of a given program's control paths, annotated with invariants that relate program state at distinct points within its path of execution. LTTP synthesizes such proofs completely automatically, using a novel inductive-synthesis algorithm. We have implemented LTTP as a verifier for JVM bytecode and applied it to verify the safety of a collection of verification benchmarks. Our results demonstrate that LTTP can be applied to automatically verify the safety of programs that are beyond the scope of previously-developed verifiers.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
03/02/2019

2LS: Heap Analysis and Memory Safety (Competition Contribution)

2LS is a framework for analysis of sequential C programs that can verify...
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
01/05/2023

Builtin Types viewed as Inductive Families

State of the art optimisation passes for dependently typed languages can...
research
04/30/2019

Targeted Synthesis for Programming with Data Invariants

Programmers frequently maintain implicit data invariants, which are rela...
research
05/05/2023

Completeness Thresholds for Memory Safety of Array Traversing Programs

We report on intermediate results of – to the best of our knowledge – th...
research
08/13/2023

Formal Verification of Intersection Safety for Automated Driving

We build on our recent work on formalization of responsibility-sensitive...
research
12/24/2021

Fine-Tuning Data Structures for Analytical Query Processing

We introduce a framework for automatically choosing data structures to s...

Please sign up or login with your details

Forgot password? Click here to reset