Bounded Verification of Voting Software

  • Authors:
  • Greg Dennis;Kuat Yessenov;Daniel Jackson

  • Affiliations:
  • Computer Science and Artificial Intelligence Laboratory, Massachusetts Institute of Technology, Cambridge, USA MA 02139;Computer Science and Artificial Intelligence Laboratory, Massachusetts Institute of Technology, Cambridge, USA MA 02139;Computer Science and Artificial Intelligence Laboratory, Massachusetts Institute of Technology, Cambridge, USA MA 02139

  • Venue:
  • VSTTE '08 Proceedings of the 2nd international conference on Verified Software: Theories, Tools, Experiments
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present a case-study in which vote-tallying software is analyzed using a bounded verificationtechnique, whereby all executions of a procedure are exhaustively examined within a finite space given by a bound on the size of the heap and the number of loop unrollings. The technique involves an encoding of the procedure in an intermediate relational programming language, a translation of that language to relational logic, and an analysis of the logic that exploits recent advances in finite model-finding. Our technique yields concrete counterexamples --- traces of the procedure that violate the specification.The vote-tallying software, used for public elections in the Netherlands, had previously been annotated with specifications in the Java Modeling Language and analyzed with ESC/Java2. Our analysis found counterexamples to the JML contracts, indicating bugs in the code and errors in the specifications that evaded prior analysis.