Bounded verification of voting software
Author(s)
Dennis, Gregory D.; Yessenov, Kuat T.; Jackson, Daniel
Downloaddennis-bounded.pdf (186.5Kb)
PUBLISHER_POLICY
Publisher Policy
Article is made available in accordance with the publisher's policy and may be subject to US copyright law. Please refer to the publisher's site for terms of use.
Terms of use
Metadata
Show full item recordAbstract
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.
Date issued
2008-09Department
Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory; Massachusetts Institute of Technology. Department of Electrical Engineering and Computer ScienceJournal
Lecture Notes in Computer Science
Publisher
Springer Berlin Heidelberg
Citation
Dennis, Greg, Kuat Yessenov, and Daniel Jackson. “Bounded Verification of Voting Software.” Verified Software: Theories, Tools, Experiments 2008.
Version: Author's final manuscript
ISSN
1611-3349
0302-9743