ICE: A robust framework for learning invariants
We introduce ICE, a robust learning paradigm for synthesizing invariants, that learns using
examples, counter-examples, and implications, and show that it admits honest teachers and …
examples, counter-examples, and implications, and show that it admits honest teachers and …
A correctness and incorrectness program logic
Abstract interpretation is a well-known and extensively used method to extract over-
approximate program invariants by a sound program analysis algorithm. Soundness means …
approximate program invariants by a sound program analysis algorithm. Soundness means …
Symbolic optimization with SMT solvers
The rise in efficiency of Satisfiability Modulo Theories (SMT) solvers has created numerous
uses for them in software verification, program synthesis, functional programming …
uses for them in software verification, program synthesis, functional programming …
Static program analysis via 3-valued logic
This paper reviews the principles behind the paradigm of “abstract interpretation via 3-
valued logic,” discusses recent work to extend the approach, and summarizes on-going …
valued logic,” discusses recent work to extend the approach, and summarizes on-going …
Non-linear reasoning for invariant synthesis
Automatic generation of non-linear loop invariants is a long-standing challenge in program
analysis, with many applications. For instance, reasoning about exponentials provides a …
analysis, with many applications. For instance, reasoning about exponentials provides a …
From invariant checking to invariant inference using randomized search
We describe a general framework c2i for generating an invariant inference procedure from
an invariant checking procedure. Given a checker and a language of possible invariants, c2i …
an invariant checking procedure. Given a checker and a language of possible invariants, c2i …
A framework for numeric analysis of array operations
Automatic discovery of relationships among values of array elements is a challenging
problem due to the unbounded nature of arrays. We present a framework for analyzing array …
problem due to the unbounded nature of arrays. We present a framework for analyzing array …
Program verification using templates over predicate abstraction
S Srivastava, S Gulwani - Proceedings of the 30th ACM SIGPLAN …, 2009 - dl.acm.org
We address the problem of automatically generating invariants with quantified and boolean
structure for proving the validity of given assertions or generating pre-conditions under …
structure for proving the validity of given assertions or generating pre-conditions under …
Stratified synthesis: automatically learning the x86-64 instruction set
The x86-64 ISA sits at the bottom of the software stack of most desktop and server software.
Because of its importance, many software analysis and verification tools depend, either …
Because of its importance, many software analysis and verification tools depend, either …
A logic for locally complete abstract interpretations
We introduce the notion of local completeness in abstract interpretation and define a logic
for proving both the correctness and incorrectness of some program specification. Abstract …
for proving both the correctness and incorrectness of some program specification. Abstract …