Chaudhuri, Swarat2019-05-172019-05-172017-122018-04-13December 2Rahbar, Afsaneh. "Learning Program Invariants from Proof Corpora." (2018) Master’s Thesis, Rice University. <a href="https://hdl.handle.net/1911/105626">https://hdl.handle.net/1911/105626</a>.https://hdl.handle.net/1911/105626In 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.application/pdfengCopyright is held by the author, unless otherwise indicated. Permission to reuse, publish, or reproduce the work beyond the bounds of fair use or other exemptions to copyright law must be obtained from the copyright holder.InvariantsProof SynthesisProgram verificationHoare logicLearning Program Invariants from Proof CorporaThesis2019-05-17