Learning Program Invariants from Proof Corpora
Date
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
In program verification, loop invariants are of particular interest. Indeed, writing a correct and useful invariant is as challenging as verifying the program itself. Current approaches to solving the problem of automatically generating invariants either generate invariants by analyzing the program or using machine learning to learn from program input and output examples, counterexamples, and so on. Each of these approaches works on particular type of programs and specific data structures. In this thesis, we describe the technique we have developed for generating these loop invariants automatically. We introduce a more general learning technique that learns from a database of annotated verified programs. Our new data-driven approach uses the existing proofs to learn proof templates, or as we call them proof blocks. In our method, the algorithm iterates over all possible proof block formulas by using logical connectors until it finds an appropriate invariant formula. We evaluated our approach on benchmarks and demonstrated the potential of our technique in verification of programs. Using the approach of learning from verified annotated programs makes invariant generation easier and reduces the burden on the verification engineer.
Description
Advisor
Degree
Type
Keywords
Citation
Rahbar, Afsaneh. "Learning Program Invariants from Proof Corpora." (2018) Master’s Thesis, Rice University. https://hdl.handle.net/1911/105626.