5.4. Instant-Runoff Voting
Total Page:16
File Type:pdf, Size:1020Kb
Formal Verification of Voting Schemes Diploma Thesis by Michael Kirsten Department of Informatics Institute of Theoretical Informatics (ITI) Application-oriented Formal Verification Supervisor: Prof. Dr. rer. nat. Bernhard Beckert Advisors: Dipl.-Inform. Thorsten Bormer Prof. Dr. Rajeev Goré December 21, 2014 KIT – University of the State of Baden-Wuerttemberg and National Research Center of the Helmholtz Association www.kit.edu Abstract Fundamental trust and credibility in democratic systems is commonly established through the existence and execution of democratic elections. The vote-counting of an election, usually formalised by a voting scheme, essentially boils down to a mechanism that aggregates individual preferences of the voters to reach a decision. For this matter, there are various differing voting schemes in use throughout the world, commonly based on high expectations and means to ensure a sensible democratic process. However, incidents such as the ruling by the German federal constitutional court which led to a change of the German legislation in 2013 manifest that it is difficult for a voting scheme to meet these legitimate expectations [BGB13]. In fact, there is no general notion of correctness for a voting scheme and thus no universal mechanism as shown in Kenneth J. Arrow’s Impossibility Theorem in 1951 [Arr51]. As a consequence, designing a real-world voting scheme without flaws, which still gives significant democratic guarantees, is a difficult task as a trade-off between desirable properties is non-trivial and error-prone. The approach in this thesis is based on the idea to tackle this issue by proposing an incremental and iterative development process for voting schemes based on automated formal reasoning methods using program verification. We analyse two different forms of verification considering their role in this development process in order to achieve formal correctness of voting schemes. We perform a comprehensive set of case studies by applying “medium-weight” and “light-weight” verification techniques. The “medium- weight” approach uses the annotation-based deductive verification tool VCC based on an auto-active methodology and the “light-weight” technique is performed with the bounded model checking tool LLBMC. Our analysis covers a set of well-known voting schemes combined with a set of prominent voting scheme criteria. In addition to giving precise formalisations for these criteria adapted to the specific voting schemes and tools used, we advance the efficiency of the “light-weight” approach by exploiting fundamental symmetric properties. Furthermore, we investigate on encountered challenges posed by the auto-active verification methodology, which lies in-between automatic and interactive verification methodologies, with respect to specific characteristics in voting schemes and also explore the potential of bounded verification techniques to produce precise counterexamples in order to enhance the capability of our envisioned development process to give early feedback. This thesis gives fundamental insights in general challenges and the potential of automated formal reasoning with the goal of correct voting schemes. Deutsche Zusammenfassung Ein großer Teil des Vertrauens und der Glaubwürdigkeit in demokratischen Systemen wird gemeinhin durch das Abhalten und den Ablauf von demokratischen Wahlen geschaffen. Die Entscheidungsfindung einer Wahl, gewöhnlich durch ein Wahlverfahren formalisiert, ist im Kern ein Mechanismus zur Aggregation individueller Wählerpräferenzen auf ein Wahlergebnis. Für diese Aufgabe wird eine Vielzahl unterschiedlicher Wahlverfahren in vielen Ländern der Erde angewandt, die üblicherweise auf hohen gesellschaftlichen Ansprüchen basieren um einen angemessenen demokratischen Prozess sicherzustellen. Jedoch zeigen Vorfälle wie das Urteil des Bundesverfassungsgerichts der Bundesrepu- blik Deutschland, das 2013 zu einer Änderung der deutschen Verfassung führte, dass es schwierig ist, ein Wahlverfahren zu finden, dass diese berechtigten Erwartungen er- füllt [BGB13]. In der Tat existiert keine allgemein gültige Auffassung von Korrektheit für ein Wahlverfahren und in der Konsequenz auch keine universelle Prozedur, wie schon Kenneth J. Arrow 1951 in seinem Allgemeinen Unmöglichkeitstheorem zeigte [Arr51]. Daraus ergibt sich, dass der Entwurf eines realistischen fehlerfreien Wahlverfahrens, das dennoch angemessene demokratische Zusicherungen gibt, eine schwierige Aufgabe ist, da ein Ausgleich zwischen wünschenswerten Eingenschaften fehleranfällig und nicht trivial ist. Das Vorgehen dieser Arbeit um diesen Missstand anzugehen basiert auf der Idee ei- nes stufenweisen und iterativen Entwicklungsprozesses für Wahlsysteme basierend auf automatischen formal-logischen Beweisverfahren. Es werden zwei verschiedene Beweis- techniken bezüglich ihrer Rolle in diesem Entwicklungsprozess analysiert, um formale Korrektheit für Wahlverfahren zu erreichen. Dabei wird eine umfassende Fallstudie durch- geführt, bei der verschiedene Verifikationstechniken, die wir als “leichtgewichtig” und “mittel-gewichtig” klassifizieren, zur Anwendung kommen. Der “mittelschwere” Ansatz wird durch das annotationsbasierte deduktive Verifikationswerkzeug VCC unterstützt, das auf einer auto-aktiven Methodik basiert und die “leichtgewichtige” Technik nutzt das Werkzeug LLBMC zur beschränkten Modellprüfung (bounded model checking). Die Ana- lyse beinhaltet bekannte Wahlverfahren kombiniert mit allgemeinen Korrektheitskriterien für Wahlverfahren. Über die Aufstellung präziser Formalisierungen dieser Kriterien ange- passt auf die spezifischen Wahlverfahren hinaus wird die Effizienz des “leichtgewichtigen” Ansatzes durch die Ausnutzung fundamentaler Symmetrieeigenschaften vorangebracht. Außerdem untersucht diese Arbeit Herausforderungen, die sich aus der auto-aktiven Me- thodik bezüglich bestimmter Charakteristika von Wahlverfahren ergeben, und erkundet das Potential von Verifikationstechniken innerhalb bestimmter Grenzen bezüglich der Eingabegrößen, präzise Gegenbeispiele zu generieren, um den langfristig angestrebten Ent- wicklungsprozess um die Möglichkeit zu erweitern, frühzeitige Rückmeldungen bezüglich der Korrektheit zu geben. Diese Arbeit erarbeitet fundamentale Einsichten in allgemeine vi Herausforderungen und das Potential automatisierter formal-logischer Beweisverfahren bezüglich korrekter Wahlverfahren. Acknowledgements I would like to thank Prof. Dr. Bernhard Beckert and Prof. Dr. Rajeev Goré for giving me the opportunity to be part of this exciting project and the experiences gained during my visit at the Australian National University (ANU) in Canberra, Australia. Great thanks go especially to Prof. Dr. Bernhard Beckert for supporting my work during my visit and beyond, including lots of productive and motivating discussions. A special thanks goes to my advisor Thorsten Bormer for taking the time for me, having lots of patience, motivating me and many lively debates supporting my work. Last but not least, I want to thank my parents for all the support for me and my studies over the years. Statement of Authorship I declare that I have developed and written the enclosed thesis completely by myself, and have not used sources or means without declaration in the text. Karlsruhe, December 21, 2014 .......................................... (Michael Kirsten) Contents 1. Introduction 1 1.1. Research Objectives . .2 1.2. Correctness of Voting Schemes . .2 1.3. Outline . .3 2. Voting Schemes and Correctness Properties 5 2.1. A General Definition of Voting Schemes . .5 2.2. Arrow’s Impossibility Theorem and its Implications . .7 2.3. Selected Voting Schemes . .9 2.3.1. Plurality Voting . 10 2.3.2. Approval Voting . 12 2.3.3. Instant-Runoff Voting . 13 2.3.4. Single Transferable Vote . 17 2.4. Selected Voting Scheme Properties . 17 2.4.1. Monotonicity Criterion . 19 2.4.2. Condorcet Winner and Loser Criteria . 21 3. Techniques and Tools for Verification 25 3.1. Selected Verification Techniques . 25 3.1.1. Auto-Active Deductive Program Verification . 26 3.1.2. Software Bounded Model Checking . 28 3.2. Selected Verification Tools . 29 3.2.1. Deductive Verification with VCC . 29 3.2.2. Bounded Verification with LLBMC . 33 4. Deductive Verification of Plurality Voting with VCC 35 4.1. FPTP Implementation and Specification of Monotonicity Criterion . 35 4.2. Full Verification with Auxiliary Specifications . 39 4.3. Simplifying the Specification with Loop Unrolling . 46 5. Bounded Verification with LLBMC and Counterexample Generation 51 5.1. General Setup and Encoding . 51 5.2. Plurality Voting . 54 5.3. Approval Voting . 58 5.4. Instant-Runoff Voting . 60 5.5. Single Transferable Vote . 66 5.6. Summary . 70 xii Contents 5.7. Generation of Counterexamples . 72 5.7.1. Instant-Runoff Voting . 72 5.7.2. Single Transferable Vote . 75 6. Improving Performance of Bounded Verification by Symmetry Reduction 79 6.1. Plurality Voting with Anonymity . 79 6.2. Plurality Voting with Anonymity and Neutrality . 83 6.3. Approval Voting with Anonymity and Neutrality . 85 7. Conclusion 89 7.1. Related Work . 89 7.2. Summary and Results . 90 7.3. Outlook and Future Work . 92 A. Implementations and Specifications 93 A.1. Plurality Voting for VCC . 93 A.1.1. Full Specification of Monotonicity for Plurality Voting . 93 A.1.2. Lemma for Monotonicity Criterion . 96 A.2. Plurality Voting for LLBMC . 97 A.2.1. General Plurality Voting . 98 A.2.2. FPTP with Symmetry Breaking Predicates for Anonymity . 99 A.2.3. FPTP with Predicates for Anonymity and Neutrality . 101 A.3. Approval Voting for LLBMC