Formal Specification and Verification of Voting Software Bernhard - - PowerPoint PPT Presentation

formal specification and verification of voting software
SMART_READER_LITE
LIVE PREVIEW

Formal Specification and Verification of Voting Software Bernhard - - PowerPoint PPT Presentation

Formal Specification and Verification of Voting Software Bernhard Beckert | ComSoC, 14.04.13 K ARLSRUHE I NSTITUTE OF T ECHNOLOGY | D EPARTMENT OF C OMPUTER S CIENCE www.kit.edu KIT University of the State of Baden-Wuerttemberg and National


slide-1
SLIDE 1

www.kit.edu

KIT – University of the State of Baden-Wuerttemberg and National Laboratory of the Helmholtz Association

Bernhard Beckert | ComSoC, 14.04.13

Formal Specification and Verification of Voting Software

KARLSRUHE INSTITUTE OF TECHNOLOGY | DEPARTMENT OF COMPUTER SCIENCE

slide-2
SLIDE 2

FORMAL SPECIFICATION AND VERIFICATION

slide-3
SLIDE 3

Formal Specification and Verification

What?

Logic-based methods for specification (describing a system’s properties) verification (proving that a system satisfies its specification)

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 3/27

slide-4
SLIDE 4

Formal Specification and Verification

Tool Support is Essential

Automate repetitive tasks Avoid clerical errors, etc. Cope with large/complex systems Make verification certifiable

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 4/27

slide-5
SLIDE 5

Formal Specification and Verification

Why?

Dependable Systems

Safety Security

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 5/27

slide-6
SLIDE 6

Formal Specification and Verification

Why?

Dependable Systems

Safety Security

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 5/27

slide-7
SLIDE 7

Formal Specification and Verification

Why?

Dependable Systems

Safety Security

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 5/27

slide-8
SLIDE 8

Formal Specification and Verification

Why?

Better Understanding of System’s Properties

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 6/27

slide-9
SLIDE 9

Formal Specification and Verification

Why?

Better Understanding of System’s Properties

classical science THEORY EXPERIMENT

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 6/27

slide-10
SLIDE 10

Formal Specification and Verification

Why?

Better Understanding of System’s Properties

classical science THEORY EXPERIMENT computational science

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 6/27

slide-11
SLIDE 11

Formal Specification and Verification

Why?

Better Understanding of System’s Properties

classical science THEORY EXPERIMENT computational science SIMULATION

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 6/27

slide-12
SLIDE 12

Formal Specification and Verification

Why?

Better Understanding of System’s Properties

classical science THEORY EXPERIMENT computational science AUTOMATED SIMULATION REASONING

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 6/27

slide-13
SLIDE 13

Formal Specification and Verification

Specification may be Declarative or Algorithmic

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 7/27

slide-14
SLIDE 14

Formal Specification and Verification

Specification may be Declarative or Algorithmic

Algorithmic

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 7/27

slide-15
SLIDE 15

Formal Specification and Verification

Specification may be Declarative or Algorithmic

Algorithmic Declarative

F = N!

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 7/27

slide-16
SLIDE 16

Formal Specification and Verification

It is important to know . . .

What System

Vote casting Vote transmission Vote counting Result verification

What Specification

Functional Security Resources . . .

What Level of Abstraction

Declarative description Abstract algorithm / flow chart Abstract automaton Implementation

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 8/27

slide-17
SLIDE 17

Formal Specification and Verification

It is important to know . . .

What System

Vote casting Vote transmission Vote counting Result verification

What Specification

Functional Security Resources . . .

What Level of Abstraction

Declarative description Abstract algorithm / flow chart Abstract automaton Implementation

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 8/27

slide-18
SLIDE 18

Formal Specification and Verification

It is important to know . . .

What System

Vote casting Vote transmission Vote counting Result verification

What Specification

Functional Security Resources . . .

What Level of Abstraction

Declarative description Abstract algorithm / flow chart Abstract automaton Implementation

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 8/27

slide-19
SLIDE 19

VERIFYING INFORMATION-FLOW PROPERTIES

Joint work with Daniel Bruns, Christoph Scheben, Peter H. Schmitt Karlsruhe Institute of Technology (KeY Tool) Ralf K¨ usters, Thomas Truderung University of Trier J¨ urgen Graf Karlsruhe Institute of Technology (Joanna Tool)

slide-20
SLIDE 20

System, Specification, Abstraction Level

System

Part of simple e-voting system Transfer of vote from client to server, computation of result by server

Specification

Nothing can be learned about votes except the result

Abstraction Level

System: Implementation in Java Specification: Java Modelling Language

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 10/27

slide-21
SLIDE 21

System, Specification, Abstraction Level

System

Part of simple e-voting system Transfer of vote from client to server, computation of result by server

Specification

Nothing can be learned about votes except the result

Abstraction Level

System: Implementation in Java Specification: Java Modelling Language

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 10/27

slide-22
SLIDE 22

System, Specification, Abstraction Level

System

Part of simple e-voting system Transfer of vote from client to server, computation of result by server

Specification

Nothing can be learned about votes except the result

Abstraction Level

System: Implementation in Java Specification: Java Modelling Language

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 10/27

slide-23
SLIDE 23

KeY Project

www.key-project.org Deductive Program Verification Java Specification: Java Modeling Language Source-code level

KeY Tool

Deductive rules for all Java features Sequent calculus for Dynamic Logic 100% Java Card High degree of automation / usability

>10,000 LOC / expert year

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 11/27

slide-24
SLIDE 24

KeY Project

www.key-project.org Deductive Program Verification Java Specification: Java Modeling Language Source-code level

KeY Tool

Deductive rules for all Java features Sequent calculus for Dynamic Logic 100% Java Card High degree of automation / usability

>10,000 LOC / expert year

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 11/27

slide-25
SLIDE 25

KeY Project

www.key-project.org Deductive Program Verification Java Specification: Java Modeling Language Source-code level

KeY Tool

Deductive rules for all Java features Sequent calculus for Dynamic Logic 100% Java Card High degree of automation / usability

>10,000 LOC / expert year

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 11/27

slide-26
SLIDE 26

KeY Project

www.key-project.org Deductive Program Verification Java Specification: Java Modeling Language Source-code level

KeY Tool

Deductive rules for all Java features Sequent calculus for Dynamic Logic 100% Java Card High degree of automation / usability

>10,000 LOC / expert year

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 11/27

slide-27
SLIDE 27

KeY Project

www.key-project.org Deductive Program Verification Java Specification: Java Modeling Language Source-code level

KeY Tool

Deductive rules for all Java features Sequent calculus for Dynamic Logic 100% Java Card High degree of automation / usability

>10,000 LOC / expert year

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 11/27

slide-28
SLIDE 28

KeY Project

www.key-project.org Deductive Program Verification Java Specification: Java Modeling Language Source-code level

KeY Tool

Deductive rules for all Java features Sequent calculus for Dynamic Logic 100% Java Card High degree of automation / usability

>10,000 LOC / expert year

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 11/27

slide-29
SLIDE 29

Example: JML Specification of a Java Method

/*@ requires a.length > 0; @ ensures (\forall int i; 0<=i && i<a.length ; @ \result <= a[i]); @ ensures (\exists int i; 0<=i && i<a.length ; @ result == a[i]); @*/ int min(int []a) { int i, min; min = a[0]; /*@ maintaining 0 <= i && i <= a.length; @ maintaining (\forall int j; 0 <= j && @ j < i; a[j] >= min); @ maintaining (\exists int j; 0 <= j @ && j < a.length; min == a[j]); @*/ for (i = 0; i < a.length; i++) { if (a[i] < min) min = a[i]; } return min; }

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 12/27

slide-30
SLIDE 30

KeY Verification Process

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 13/27

slide-31
SLIDE 31

Current State of Project

Verified

Joanna Tool: No information-flow in communication Joanna Tool: No information-flow in server besides published result KeY Tool: Election result correctly computed KeY Tool: Computed result carries no additional information

Missing

Integrity of votes: Votes not changed during communication

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 14/27

slide-32
SLIDE 32

Current State of Project

Verified

Joanna Tool: No information-flow in communication Joanna Tool: No information-flow in server besides published result KeY Tool: Election result correctly computed KeY Tool: Computed result carries no additional information

Missing

Integrity of votes: Votes not changed during communication

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 14/27

slide-33
SLIDE 33

ANALYSING STV VOTING SCHEME USED AT CADE CONFERENCES

Joint work with Carsten Sch¨ urmann IT University of Copenhagen Rajeev Gor´ e Australian National University

slide-34
SLIDE 34

System, Specification, Abstraction Level

System

Single Transferable Vote Algorithm as used in election of the CADE Conference board of trustees

Specification

Properties of election result

Abstraction Level

System: Abstract algorithm formalised in linear logic program (Celf System) Specification: Axioms formalised in first-order logic

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 16/27

slide-35
SLIDE 35

System, Specification, Abstraction Level

System

Single Transferable Vote Algorithm as used in election of the CADE Conference board of trustees

Specification

Properties of election result

Abstraction Level

System: Abstract algorithm formalised in linear logic program (Celf System) Specification: Axioms formalised in first-order logic

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 16/27

slide-36
SLIDE 36

System, Specification, Abstraction Level

System

Single Transferable Vote Algorithm as used in election of the CADE Conference board of trustees

Specification

Properties of election result

Abstraction Level

System: Abstract algorithm formalised in linear logic program (Celf System) Specification: Axioms formalised in first-order logic

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 16/27

slide-37
SLIDE 37

Single Transferable Vote

System for Preferential Voting

Used in real-world elections Proportional representation Does not necessarily elect Condorcet winner

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 17/27

slide-38
SLIDE 38

Single Transferable Vote

“Standard” Version

Quota Q :=

  • votes

seats+1

  • + 1

Repeat until all seats filled (or not enough candidates left) if candidate with Q first-preference votes exists: declare elected delete Q of the votes delete from ballot-box else delete weakest candidate from ballot-box Various choice points! Various versions!

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 18/27

slide-39
SLIDE 39

Single Transferable Vote

“Standard” Version

Quota Q :=

  • votes

seats+1

  • + 1

Repeat until all seats filled (or not enough candidates left) if candidate with Q first-preference votes exists: declare elected delete Q of the votes delete from ballot-box else delete weakest candidate from ballot-box Various choice points! Various versions!

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 18/27

slide-40
SLIDE 40

Example

Candidates: A, B, C, D Seats: 2 Votes: A > B > D A > B > D A > B > D D > C C > D

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 19/27

slide-41
SLIDE 41

Example

Candidates: A, B, C, D Q =

  • 5

2+1

  • + 1 = 2

Seats: 2 Votes: A > B > D A > B > D A > B > D D > C C > D

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 19/27

slide-42
SLIDE 42

Example

Candidates: A, B, C, D Q =

  • 5

2+1

  • + 1 = 2

Seats: 2 Votes: A > B > D 1 A > B > D 2 A > B > D 3 D > C C > D

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 19/27

slide-43
SLIDE 43

Example

Candidates: A, B, C, D Q =

  • 5

2+1

  • + 1 = 2

Seats: 2 Votes: A > B > D 1 A > B > D 2 A > B > D 3 D > C C > D Elected: A

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 19/27

slide-44
SLIDE 44

Example

Candidates: A, B, C, D Q =

  • 5

2+1

  • + 1 = 2

Seats: 2 Votes: ✭✭✭✭✭ ❤❤❤❤❤ A > B > D 1 ✭✭✭✭✭ ❤❤❤❤❤ A > B > D 2 A > B > D 3 D > C C > D Elected: A

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 19/27

slide-45
SLIDE 45

Example

Candidates: A, B, C, D Q =

  • 5

2+1

  • + 1 = 2

Seats: 2 Votes: ✭✭✭✭✭ ❤❤❤❤❤ A > B > D ✭✭✭✭✭ ❤❤❤❤❤ A > B > D ✓ ❙ A > B > D D > C C > D Elected: A

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 19/27

slide-46
SLIDE 46

Example

Candidates: A, B, C, D Q =

  • 5

2+1

  • + 1 = 2

Seats: 2 Votes: ✭✭✭✭✭ ❤❤❤❤❤ A > B > D ✭✭✭✭✭ ❤❤❤❤❤ A > B > D ✓ ❙ A > ✓ ❙ B > D D > C C > D Elected: A

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 19/27

slide-47
SLIDE 47

Example

Candidates: A, B, C, D Q =

  • 5

2+1

  • + 1 = 2

Seats: 2 Votes: ✭✭✭✭✭ ❤❤❤❤❤ A > B > D ✭✭✭✭✭ ❤❤❤❤❤ A > B > D ✓ ❙ A > ✓ ❙ B > D 1 D > C 2 C > D Elected: A

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 19/27

slide-48
SLIDE 48

Example

Candidates: A, B, C, D Q =

  • 5

2+1

  • + 1 = 2

Seats: 2 Votes: ✭✭✭✭✭ ❤❤❤❤❤ A > B > D ✭✭✭✭✭ ❤❤❤❤❤ A > B > D ✓ ❙ A > ✓ ❙ B > D 1 D > C 2 C > D Elected: A, D

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 19/27

slide-49
SLIDE 49

Declarative Description Computes an approximation to an optimisation problem therefore IMPOSSIBLE in PRACTICE Precise functional specification covering all inputs

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 20/27

slide-50
SLIDE 50

Declarative Description Computes an approximation to an optimisation problem therefore IMPOSSIBLE in PRACTICE Precise functional specification covering all inputs

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 20/27

slide-51
SLIDE 51

Declarative Description

Two Properties

There are enough votes for each elected candidate (ignoring preferences) Election result is consistent with union U of preferences if U is consistent (ignoring number of votes)

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 21/27

slide-52
SLIDE 52

Declarative Description

Formalisation of 1st Property ∃a

  • ∀i
  • 1 ≤ i ≤ V → 0 ≤ a[i] ≤ S

∀i

  • 1 ≤ i ≤ V → (a[i] = 0 → r[a[i]] = 0

∀i

  • (1 ≤ i ≤ V∧ a[i] = 0) → ∃j(1 ≤ j ≤ C∧ b[i,j] = r[a[i]])

∀k

  • (1 ≤ k ≤ S∧ r[k] = 0) →

∃count(count[0] = 0∧ ∀i(1 ≤ i ≤ V → (a[i] = k → count[i] = count[i − 1]+ 1)∧ (a[i] = k → count[i] = count[i − 1]))∧

count[V] = Q)

  • Specification and Verification

Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 22/27

slide-53
SLIDE 53

Bounded Model Checking

[Beckert/Gor´ e/Sch¨ urmann, CADE 2013]

Method

Generate all possible ballot-boxes (up to certain bounds) Run through algorithm implemented in linear logic program (Celf) Check result w.r.t. properties

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 23/27

slide-54
SLIDE 54

Single Transferable Vote @CADE

Quote from CADE Bylaws (legal document)

Procedure STV Elected <-- empty T <-- Tbl {* Start with the original vote matrix *} for E <-- 1 to K N’ <-- N-E+1 {* Choose a winner among N’ candidates *} T’ <-- T {* store the current vote matrix *} while (no candidate has a majority of 1st preferences) w <-- one weakest candidate for all candidates c {* remove all weakest candidates *} if c is equally weak as w Redistribute(c,T) end for end while win <-- the majority candidate Elected <-- append(Elected, [win]) T <-- T’ {* restore back to N’ candidates *} Redistribute(win, T) {* remove winner & redistrb. votes *} end for End STV

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 24/27

slide-55
SLIDE 55

Differences CADE-STV / Standard STV

CADE-STV

Quota: >50% of votes (majority) Restart with original ballot-box (deleted votes and weakest candidates come back) No autofill if not enough candidates

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 25/27

slide-56
SLIDE 56

Example

Candidates: A, B, C, D Seats: 2 Votes: A > B > D A > B > D A > B > D D > C C > D

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 26/27

slide-57
SLIDE 57

Example

Candidates: A, B, C, D Q =

5

2

  • + 1 = 3

Seats: 2 Votes: A > B > D A > B > D A > B > D D > C C > D

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 26/27

slide-58
SLIDE 58

Example

Candidates: A, B, C, D Q =

5

2

  • + 1 = 3

Seats: 2 Votes: A > B > D 1 A > B > D 2 A > B > D 3 D > C C > D

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 26/27

slide-59
SLIDE 59

Example

Candidates: A, B, C, D Q =

5

2

  • + 1 = 3

Seats: 2 Votes: A > B > D 1 A > B > D 2 A > B > D 3 D > C C > D Elected: A

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 26/27

slide-60
SLIDE 60

Example

Candidates: A, B, C, D Q =

5

2

  • + 1 = 3

Seats: 2 Votes: ✓ ❙ A > B > D 1 ✓ ❙ A > B > D 2 ✓ ❙ A > B > D 3 D > C C > D Elected: A

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 26/27

slide-61
SLIDE 61

Example

Candidates: A, B, C, D Q =

5

2

  • + 1 = 3

Seats: 2 Votes: ✓ ❙ A > B > D ✓ ❙ A > B > D ✓ ❙ A > B > D D > C C > D Elected: A

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 26/27

slide-62
SLIDE 62

Example

Candidates: A, B, C, D Q =

5

2

  • + 1 = 3

Seats: 2 Votes: ✓ ❙ A > B > D 1 ✓ ❙ A > B > D 2 ✓ ❙ A > B > D 3 D > C C > D Elected: A

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 26/27

slide-63
SLIDE 63

Example

Candidates: A, B, C, D Q =

5

2

  • + 1 = 3

Seats: 2 Votes: ✓ ❙ A > B > D 1 ✓ ❙ A > B > D 2 ✓ ❙ A > B > D 3 D > C C > D Elected: A, B

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 26/27

slide-64
SLIDE 64

Example

Candidates: A, B, C, D Q =

5

2

  • + 1 = 3

Seats: 2 Votes: ✓ ❙ A > B > D 1 ✓ ❙ A > B > D 2 ✓ ❙ A > B > D 3 D > C C > D Elected: A, B No proportional representation! Majority rules!

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 26/27

slide-65
SLIDE 65

Conclusions

Conclusion I

Support in reasoning about voting schemes needed

Conclusion II

Can be automated with bounded model checking

Conclusion III

Tailor-made properties for specific voting systems needed

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 27/27

slide-66
SLIDE 66

Conclusions

Conclusion I

Support in reasoning about voting schemes needed

Conclusion II

Can be automated with bounded model checking

Conclusion III

Tailor-made properties for specific voting systems needed

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 27/27

slide-67
SLIDE 67

Conclusions

Conclusion I

Support in reasoning about voting schemes needed

Conclusion II

Can be automated with bounded model checking

Conclusion III

Tailor-made properties for specific voting systems needed

Specification and Verification Information-flow Single Transferable Vote @CADE Bernhard Beckert – Formal Specification and Verification of Voting Software ComSoC, 14.04.13 27/27