Bounded verification of voting software
Author(s)Dennis, Gregory D.; Yessenov, Kuat T.; Jackson, Daniel
MetadataShow full item record
We present a case-study in which vote-tallying software is analyzed using a bounded verification technique, 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.
DepartmentMassachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory; Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
Lecture Notes in Computer Science
Springer Berlin Heidelberg
Dennis, Greg, Kuat Yessenov, and Daniel Jackson. “Bounded Verification of Voting Software.” Verified Software: Theories, Tools, Experiments 2008.
Author's final manuscript