We present a new approach for constructing and verifying higherorder, imperative programs using the Coq proof assistant. We build on the past work on the Ynot system, which is bas...
Adam J. Chlipala, J. Gregory Malecha, Greg Morrise...
In order to support the verification of programs, verification tools such as ACL2 or Isabelle try to extract suitable induction axioms from the definitions of terminating, recursiv...
Program verification is usually done by adding specifications and invariants to the program and then proving that the verification conditions are all true. This makes program verif...
The definition of a data structure may permit many different concrete representations of the same logical content. A (client) program that accepts such a data structure as input i...
Aditya Kanade, Rajeev Alur, Sriram K. Rajamani, Ga...
In this paper we propose a communication-centric approach to specifying and checking how multithreaded programs use shared memory to perform inter-thread communication. Our approa...
Benjamin P. Wood, Adrian Sampson, Luis Ceze, Dan G...