Automated Verification for Functional and Relational Properties of - - PowerPoint PPT Presentation

automated verification for functional and relational
SMART_READER_LITE
LIVE PREVIEW

Automated Verification for Functional and Relational Properties of - - PowerPoint PPT Presentation

Automated Verification for Functional and Relational Properties of Voting Rules Bernhard Beckert, Thorsten Bormer, Michael Kirsten, Till Neuber, Mattias Ulbrich | July 26, 2016 KARLSRUHE INSTITUTE OF TECHNOLOGY INSTITUTE OF THEORETICAL


slide-1
SLIDE 1

KARLSRUHE INSTITUTE OF TECHNOLOGY – INSTITUTE OF THEORETICAL INFORMATICS

Automated Verification for Functional and Relational Properties of Voting Rules

Bernhard Beckert, Thorsten Bormer, Michael Kirsten, Till Neuber, Mattias Ulbrich | July 26, 2016

KIT – The Research University in the Helmholtz Association

www.kit.edu

slide-2
SLIDE 2

Motivation: An Example

Exemplary election for candidates A, B, and C, and nine voters

Ballot Profile

Voter Ballot 1 A 2 A 3 A 4 A 5 B 6 B 7 B 8 C 9 C

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 2/15

slide-3
SLIDE 3

Motivation: An Example

Exemplary election for candidates A, B, and C, and nine voters

Ballot Profile

Voter Ballot 1 A 2 A 3 A 4 A 5 B 6 B 7 B 8 C 9 C What should be the election outcome?

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 2/15

slide-4
SLIDE 4

Motivation: An Example

Exemplary election for candidates A, B, and C, and nine voters

Ballot Profile

Voter Ballot 1 A 2 A 3 A 4 A 5 B , C 6 B , C 7 B , C 8 C 9 C What should be the election outcome?

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 2/15

slide-5
SLIDE 5

Motivation: An Example

Exemplary election for candidates A, B, and C, and nine voters

Ballot Profile

Voter Ballot 1 A > B > C 2 A > B > C 3 A > B > C 4 A > B > C 5 B > C > A 6 B > C > A 7 B > C > A 8 C > B > A 9 C > B > A What should be the election outcome?

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 2/15

slide-6
SLIDE 6

Motivation: An Example

Exemplary election for candidates A, B, and C, and nine voters

Ballot Profile

Voter Ballot 1 A > B > C 2 A > B > C 3 A > B > C 4 A > B > C 5 B > C > A 6 B > C > A 7 B > C > A 8 C > B > A 9 C > B > A What should be the election outcome? Candidate B?

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 2/15

slide-7
SLIDE 7

Motivation: An Example

Exemplary election for candidates A, B, C, D, and E, and nine voters

Ballot Profile

Voter Ballot 1 A > B > D > E > C 2 A > E > D > B > C 3 A > B > E > D > C 4 A > D > B > E > C 5 B > E > D > C > A 6 E > D > B > C > A 7 B > D > E > C > A 8 C > E > D > B > A 9 C > E > B > D > A What should be the election outcome? Candidate B? What if B is actually a coalition of the three candidates B, D, and E?

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 2/15

slide-8
SLIDE 8

Motivation: The General Idea

Voting Rule V

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 3/15

slide-9
SLIDE 9

Motivation: The General Idea

Voting Rule V Ballot Profile B

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 3/15

slide-10
SLIDE 10

Motivation: The General Idea

Voting Rule V Ballot Profile B Outcome V(B)

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 3/15

slide-11
SLIDE 11

Motivation: The General Idea

Voting Rule V Axiomatic Property P

∀x, y.∃z . . .

Ballot Profile B Outcome V(B)

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 3/15

slide-12
SLIDE 12

Motivation: The General Idea

Voting Rule V Axiomatic Property P

∀x, y.∃z . . .

Ballot Profile B Outcome V(B) Does V satisfy P ?

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 3/15

slide-13
SLIDE 13

Motivation: The General Idea

Voting Rule V Axiomatic Property P

∀x, y.∃z . . .

Tedious, non-trivial and error-prone Especially for multiple properties Can this be automated? Ballot Profile B Outcome V(B) Does V satisfy P ?

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 3/15

slide-14
SLIDE 14

Motivation: The General Idea

Voting Rule V Axiomatic Property P

∀x, y.∃z . . .

Tedious, non-trivial and error-prone Especially for multiple properties Can this be automated? Computer-aided verification for trustworthy voting rules! Ballot Profile B Outcome V(B) Does V satisfy P ?

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 3/15

slide-15
SLIDE 15

Used Verification Techniques

bounded interactive automatic universal

Deductive Theorem Proving Bounded Model Checking (BMC)

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 4/15

slide-16
SLIDE 16

Used Verification Techniques

bounded interactive automatic universal

Deductive Theorem Proving Bounded Model Checking (BMC)

KeY CBMC Established verification techniques

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 4/15

slide-17
SLIDE 17

Used Verification Techniques

bounded interactive automatic universal

Deductive Theorem Proving Bounded Model Checking (BMC)

KeY CBMC Established verification techniques Expressive languages for imperative algorithms (C / Java) and properties (FOLN)

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 4/15

slide-18
SLIDE 18

Functional and Relational Properties

Functional Properties (intra-profile (Fishburn 1973))

Consider individual election evaluations (one profile with outcome) Examples: majority criterion, Condorcet criterion

Relational Properties (inter-profile (Fishburn 1973))

Consider multiple election evaluations (two profiles with outcomes) Examples: anonymity property, monotonicity property

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 5/15

slide-19
SLIDE 19

Functional and Relational Properties

Functional Properties (intra-profile (Fishburn 1973))

Consider individual election evaluations (one profile with outcome) Examples: majority criterion, Condorcet criterion

Relational Properties (inter-profile (Fishburn 1973))

Consider multiple election evaluations (two profiles with outcomes) Examples: anonymity property, monotonicity property

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 5/15

slide-20
SLIDE 20

Verification of Relational Properties

Separate Evaluations

  • B ∼
  • B′

V V . . . . . . . . . . . . . . . . . .

V(B)

V(B′)

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 6/15

slide-21
SLIDE 21

Verification of Relational Properties

Separate Evaluations

  • B ∼
  • B′

V V . . . . . . . . . . . . . . . . . .

V(B)

V(B′)

Example

maxc

N

i=0 Bi,c = maxc

N

i=0 B′i,c

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 6/15

slide-22
SLIDE 22

Verification of Relational Properties

Separate Evaluations

  • B ∼
  • B′

V V . . . . . . . . . . . . . . . . . .

V(B)

V(B′)

Example

maxc

N

i=0 Bi,c = maxc

N

i=0 B′i,c

Coupling Evaluations

  • B ∼
  • B′

. . .

. . . . . . . . .

. . . . . . . . .

. . . . . .

. . .

. . .

. . .

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 6/15

slide-23
SLIDE 23

Verification of Relational Properties

Separate Evaluations

  • B ∼
  • B′

V V . . . . . . . . . . . . . . . . . .

V(B)

V(B′)

Example

maxc

N

i=0 Bi,c = maxc

N

i=0 B′i,c

Coupling Evaluations

  • B ∼
  • B′

. . .

. . . . . . . . .

. . . . . . . . .

. . . . . .

. . .

. . .

. . .

Example

result1

=

result2

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 6/15

slide-24
SLIDE 24

Verification of Relational Properties

Separate Evaluations

  • B ∼
  • B′

V V . . . . . . . . . . . . . . . . . .

V(B)

V(B′)

Coupling Evaluations

  • B ∼
  • B′

. . .

. . . . . . . . .

. . . . . . . . .

. . . . . .

. . .

. . .

. . .

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 6/15

Relational Verification

Often enables short and concise specifications (only differences) Eases verification effort

slide-25
SLIDE 25

Specification with Coupling Evaluations

Example: Homogeneity for plurality rule

V: Each voter chooses one candidate, candidate with most votes wins P: Outcome only depends on proportion of each ballot type, i.e., if every ballot is replicated N times, the outcome is indifferent

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 7/15

slide-26
SLIDE 26

Specification with Coupling Evaluations

Example: Homogeneity for plurality rule

V: Each voter chooses one candidate, candidate with most votes wins P: Outcome only depends on proportion of each ballot type, i.e., if every ballot is replicated N times, the outcome is indifferent /∗@ requires votes1.length == V ∧ votes2.length == N ∗ V ; @ requires (∀ int a; 0 ≤ a < V; 0 ≤ votes1[a] < C) ; @ requires (∀ int a; 0 ≤ a < N ∗V; 0 ≤ votes2[a] < C) ; @ requires (∀ int v,k; 0 ≤ v < V ∧ 0 ≤ k < N ; @

votes1[v] == votes2[k + v ∗ N]) ;

@ assignable res1, res2, result1, result2 ; @ ensures result1 == result2 ; @∗/ void voting ( int [ ] votes1 , int [ ] votes2 ) ; Example: JML method contract for homogeneity

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 7/15

slide-27
SLIDE 27

Specification with Coupling Evaluations

Example: Homogeneity for plurality rule

V: Each voter chooses one candidate, candidate with most votes wins P: Outcome only depends on proportion of each ballot type, i.e., if every ballot is replicated N times, the outcome is indifferent /∗@ requires votes1.length == V ∧ votes2.length == N ∗ V ; @ requires (∀ int a; 0 ≤ a < V; 0 ≤ votes1[a] < C) ; @ requires (∀ int a; 0 ≤ a < N ∗V; 0 ≤ votes2[a] < C) ; @ requires (∀ int v,k; 0 ≤ v < V ∧ 0 ≤ k < N ; @

votes1[v] == votes2[k + v ∗ N]) ;

@ assignable res1, res2, result1, result2 ; @ ensures result1 == result2 ; @∗/ void voting ( int [ ] votes1 , int [ ] votes2 ) ;

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 7/15

slide-28
SLIDE 28

Specification with Coupling Evaluations

Example: Homogeneity for plurality rule

V: Each voter chooses one candidate, candidate with most votes wins P: Outcome only depends on proportion of each ballot type, i.e., if every ballot is replicated N times, the outcome is indifferent /∗@ requires votes1.length == V ∧ votes2.length == N ∗ V ; @ requires (∀ int a; 0 ≤ a < V; 0 ≤ votes1[a] < C) ; @ requires (∀ int a; 0 ≤ a < N ∗V; 0 ≤ votes2[a] < C) ; @ requires (∀ int v,k; 0 ≤ v < V ∧ 0 ≤ k < N ; @

votes1[v] == votes2[k + v ∗ N]) ;

@ assignable res1, res2, result1, result2 ; @ ensures result1 == result2 ; @∗/ void voting ( int [ ] votes1 , int [ ] votes2 ) ;

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 7/15

slide-29
SLIDE 29

Specification with Coupling Evaluations

Example: Homogeneity for plurality rule

V: Each voter chooses one candidate, candidate with most votes wins P: Outcome only depends on proportion of each ballot type, i.e., if every ballot is replicated N times, the outcome is indifferent /∗@ requires votes1.length == V ∧ votes2.length == N ∗ V ; @ requires (∀ int a; 0 ≤ a < V; 0 ≤ votes1[a] < C) ; @ requires (∀ int a; 0 ≤ a < N ∗V; 0 ≤ votes2[a] < C) ; @ requires (∀ int v,k; 0 ≤ v < V ∧ 0 ≤ k < N ; @

votes1[v] == votes2[k + v ∗ N]) ;

@ assignable res1, res2, result1, result2 ; @ ensures result1 == result2 ; @∗/ void voting ( int [ ] votes1 , int [ ] votes2 ) ;

res1 and res2: arrays for counting the candidates’ votes

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 7/15

slide-30
SLIDE 30

Specification with Coupling Evaluations

Example: Homogeneity for plurality rule

V: Each voter chooses one candidate, candidate with most votes wins P: Outcome only depends on proportion of each ballot type, i.e., if every ballot is replicated N times, the outcome is indifferent /∗@ requires votes1.length == V ∧ votes2.length == N ∗ V ; @ requires (∀ int a; 0 ≤ a < V; 0 ≤ votes1[a] < C) ; @ requires (∀ int a; 0 ≤ a < N ∗V; 0 ≤ votes2[a] < C) ; @ requires (∀ int v,k; 0 ≤ v < V ∧ 0 ≤ k < N ; @

votes1[v] == votes2[k + v ∗ N]) ;

@ assignable res1, res2, result1, result2 ; @ ensures result1 == result2 ; @∗/ void voting ( int [ ] votes1 , int [ ] votes2 ) ;

result1 and result2: fields storing the elected candidates

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 7/15

slide-31
SLIDE 31

Specification with Coupling Evaluations

Example: Homogeneity for plurality rule

V: Each voter chooses one candidate, candidate with most votes wins P: Outcome only depends on proportion of each ballot type, i.e., if every ballot is replicated N times, the outcome is indifferent /∗@ requires votes1.length == V ∧ votes2.length == N ∗ V ; @ requires (∀ int a; 0 ≤ a < V; 0 ≤ votes1[a] < C) ; @ requires (∀ int a; 0 ≤ a < N ∗V; 0 ≤ votes2[a] < C) ; @ requires (∀ int v,k; 0 ≤ v < V ∧ 0 ≤ k < N ; @

votes1[v] == votes2[k + v ∗ N]) ;

@ assignable res1, res2, result1, result2 ; @ ensures result1 == result2 ; @∗/ void voting ( int [ ] votes1 , int [ ] votes2 ) ; Wellformedness conditions

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 7/15

slide-32
SLIDE 32

Specification with Coupling Evaluations

Example: Homogeneity for plurality rule

V: Each voter chooses one candidate, candidate with most votes wins P: Outcome only depends on proportion of each ballot type, i.e., if every ballot is replicated N times, the outcome is indifferent /∗@ requires votes1.length == V ∧ votes2.length == N ∗ V ; @ requires (∀ int a; 0 ≤ a < V; 0 ≤ votes1[a] < C) ; @ requires (∀ int a; 0 ≤ a < N ∗V; 0 ≤ votes2[a] < C) ; @ requires (∀ int v,k; 0 ≤ v < V ∧ 0 ≤ k < N ; @

votes1[v] == votes2[k + v ∗ N]) ;

@ assignable res1, res2, result1, result2 ; @ ensures result1 == result2 ; @∗/ void voting ( int [ ] votes1 , int [ ] votes2 ) ; Precondition for homogeneity

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 7/15

slide-33
SLIDE 33

Coupling Loop Invariants: Homogeneity

Example: Summing up individual votes into arrays /∗@ loop_invariant 0 ≤ i1 ≤ V ∧ i1 ∗ N == i2 @ ∧ (∀ int c; 0 ≤ c < C; res2[c] == N∗res1[c]); @ assignable res1[*], res2[*]; @ decreases V − i1; @∗/ for ( int i1 = 0 , int i2 = 0 ; i1 < V | | i2 < V ∗ N ; ) { i f (i1 < V ) res1[votes1[i1++]]++; while (i2 < i1 ∗ N ) res2[votes2[i2++]]++; }

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 8/15

slide-34
SLIDE 34

Coupling Loop Invariants: Homogeneity

First evaluation: One single run /∗@ loop_invariant 0 ≤ i1 ≤ V ∧ i1 ∗ N == i2 @ ∧ (∀ int c; 0 ≤ c < C; res2[c] == N∗res1[c]); @ assignable res1[*], res2[*]; @ decreases V − i1; @∗/ for ( int i1 = 0 , int i2 = 0 ; i1 < V | | i2 < V ∗ N ; ) { i f (i1 < V ) res1[votes1[i1++]]++; while (i2 < i1 ∗ N ) res2[votes2[i2++]]++; }

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 8/15

slide-35
SLIDE 35

Coupling Loop Invariants: Homogeneity

Second evaluation: One run replicated N times /∗@ loop_invariant 0 ≤ i1 ≤ V ∧ i1 ∗ N == i2 @ ∧ (∀ int c; 0 ≤ c < C; res2[c] == N∗res1[c]); @ assignable res1[*], res2[*]; @ decreases V − i1; @∗/ for ( int i1 = 0 , int i2 = 0 ; i1 < V | | i2 < V ∗ N ; ) { i f (i1 < V ) res1[votes1[i1++]]++; while (i2 < i1 ∗ N ) res2[votes2[i2++]]++; }

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 8/15

slide-36
SLIDE 36

Coupling Loop Invariants: Homogeneity

Coupling invariant: Relationship between both arrays /∗@ loop_invariant 0 ≤ i1 ≤ V ∧ i1 ∗ N == i2 @ ∧ (∀ int c; 0 ≤ c < C; res2[c] == N∗res1[c]); @ assignable res1[*], res2[*]; @ decreases V − i1; @∗/ for ( int i1 = 0 , int i2 = 0 ; i1 < V | | i2 < V ∗ N ; ) { i f (i1 < V ) res1[votes1[i1++]]++; while (i2 < i1 ∗ N ) res2[votes2[i2++]]++; }

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 8/15

slide-37
SLIDE 37

Coupling Loop Invariants: Homogeneity

Coupling evaluations: Loop invariant for replicated run for ( int i1 = 0 , int i2 = 0; i1 < V | | i2 < V ∗ N ; ) { i f (i1 < V ) res1 [ votes1 [ i1 ++]]++; /∗@ loop_invariant 0 < i1 ≤ V ∧ i2 ≤ votes2.length @ ∧ (i1 − 1) ∗ N ≤ i2 ≤ i1 ∗ N @ ∧ (∀ int c; 0 ≤ c < C ∧ c = votes1[i1 − 1]; @

res2[c] == N∗res1[c])

@ ∧ (i2 < i1 ∗ N ==> votes1[i1 − 1] == votes2[i2]) @ ∧ res2[votes1[i1 − 1]] @

== res1[votes1[i1 − 1]] * N + (i2 − i1 ∗ N) ;

@ assignable res2[*] ; @ decreases (i1 + 1) ∗ N − i2 ; @∗/ while (i2 < i1 ∗ N ) res2[votes2[i2++]]++; }

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 8/15

slide-38
SLIDE 38

Coupling Loop Invariants: Homogeneity

Range restrictions for ( int i1 = 0 , int i2 = 0; i1 < V | | i2 < V ∗ N ; ) { i f (i1 < V ) res1 [ votes1 [ i1 ++]]++; /∗@ loop_invariant 0 < i1 ≤ V ∧ i2 ≤ votes2.length @ ∧ (i1 − 1) ∗ N ≤ i2 ≤ i1 ∗ N @ ∧ (∀ int c; 0 ≤ c < C ∧ c = votes1[i1 − 1]; @

res2[c] == N∗res1[c])

@ ∧ (i2 < i1 ∗ N ==> votes1[i1 − 1] == votes2[i2]) @ ∧ res2[votes1[i1 − 1]] @

== res1[votes1[i1 − 1]] * N + (i2 − i1 ∗ N) ;

@ assignable res2[*] ; @ decreases (i1 + 1) ∗ N − i2 ; @∗/ while (i2 < i1 ∗ N ) res2[votes2[i2++]]++; }

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 8/15

slide-39
SLIDE 39

Coupling Loop Invariants: Homogeneity

Framing invariant for results from previous rounds for ( int i1 = 0 , int i2 = 0; i1 < V | | i2 < V ∗ N ; ) { i f (i1 < V ) res1 [ votes1 [ i1 ++]]++; /∗@ loop_invariant 0 < i1 ≤ V ∧ i2 ≤ votes2.length @ ∧ (i1 − 1) ∗ N ≤ i2 ≤ i1 ∗ N @ ∧ (∀ int c; 0 ≤ c < C ∧ c = votes1[i1 − 1]; @

res2[c] == N∗res1[c])

@ ∧ (i2 < i1 ∗ N ==> votes1[i1 − 1] == votes2[i2]) @ ∧ res2[votes1[i1 − 1]] @

== res1[votes1[i1 − 1]] * N + (i2 − i1 ∗ N) ;

@ assignable res2[*] ; @ decreases (i1 + 1) ∗ N − i2 ; @∗/ while (i2 < i1 ∗ N ) res2[votes2[i2++]]++; }

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 8/15

slide-40
SLIDE 40

Coupling Loop Invariants: Homogeneity

Relationship for current round, not strictly necessary for ( int i1 = 0 , int i2 = 0; i1 < V | | i2 < V ∗ N ; ) { i f (i1 < V ) res1 [ votes1 [ i1 ++]]++; /∗@ loop_invariant 0 < i1 ≤ V ∧ i2 ≤ votes2.length @ ∧ (i1 − 1) ∗ N ≤ i2 ≤ i1 ∗ N @ ∧ (∀ int c; 0 ≤ c < C ∧ c = votes1[i1 − 1]; @

res2[c] == N∗res1[c])

@ ∧ (i2 < i1 ∗ N ==> votes1[i1 − 1] == votes2[i2]) @ ∧ res2[votes1[i1 − 1]] @

== res1[votes1[i1 − 1]] * N + (i2 − i1 ∗ N) ;

@ assignable res2[*] ; @ decreases (i1 + 1) ∗ N − i2 ; @∗/ while (i2 < i1 ∗ N ) res2[votes2[i2++]]++; }

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 8/15

slide-41
SLIDE 41

Coupling Loop Invariants: Homogeneity

Current result array relationship, i1 ∗ N is distance from “compartment” start for ( int i1 = 0 , int i2 = 0; i1 < V | | i2 < V ∗ N ; ) { i f (i1 < V ) res1 [ votes1 [ i1 ++]]++; /∗@ loop_invariant 0 < i1 ≤ V ∧ i2 ≤ votes2.length @ ∧ (i1 − 1) ∗ N ≤ i2 ≤ i1 ∗ N @ ∧ (∀ int c; 0 ≤ c < C ∧ c = votes1[i1 − 1]; @

res2[c] == N∗res1[c])

@ ∧ (i2 < i1 ∗ N ==> votes1[i1 − 1] == votes2[i2]) @ ∧ res2[votes1[i1 − 1]] @

== res1[votes1[i1 − 1]] * N + (i2 − i1 ∗ N) ;

@ assignable res2[*] ; @ decreases (i1 + 1) ∗ N − i2 ; @∗/ while (i2 < i1 ∗ N ) res2[votes2[i2++]]++; }

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 8/15

slide-42
SLIDE 42

Verification with Coupling Evaluations

Example: Verification using KeY (including required lines of specification) Plurality V. Approval V. Range V. Borda Count Anonymity 33 43 44 44 Neutrality 42 56 57 57 Monotonicity 46 47 48 52 Participation 28 50 51 50 Homogeneity 53 70 71 71 Case study for multiple rules and properties Breaks down verification effort (roughly) to functional verification Verification using separate evaluations often not feasible Concise specifications also useful for bounded model checking

→ Guides solver to achieve higher bounds

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 9/15

slide-43
SLIDE 43

Verification with Coupling Evaluations

Example: Verification using KeY (including required lines of specification) Plurality V. Approval V. Range V. Borda Count Anonymity 33 43 44 44 Neutrality 42 56 57 57 Monotonicity 46 47 48 52 Participation 28 50 51 50 Homogeneity 53 70 71 71 Case study for multiple rules and properties Breaks down verification effort (roughly) to functional verification Verification using separate evaluations often not feasible Concise specifications also useful for bounded model checking

→ Guides solver to achieve higher bounds

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 9/15

slide-44
SLIDE 44

Exploiting Symmetries on Functional Properties

  • Introduction

Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 10/15

slide-45
SLIDE 45

Exploiting Symmetries on Functional Properties

  • Symmetric profiles (for a symmetry property S)

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 10/15

slide-46
SLIDE 46

Exploiting Symmetries on Functional Properties

  • S

S S

  • S

S

  • S

Symmetric profiles (for a symmetry property S) are reachable via symmetry (profile-) operations.

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 10/15

slide-47
SLIDE 47

Exploiting Symmetries on Functional Properties

  • S

S S

  • S

S

  • S

Symmetric profiles (for a symmetry property S) are reachable via symmetry (profile-) operations from minimal elements.

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 10/15

slide-48
SLIDE 48

Exploiting Symmetries on Functional Properties

  • S

S S

  • S

S

  • S

X

These minimal elements form a set X,

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 10/15

slide-49
SLIDE 49

Exploiting Symmetries on Functional Properties

  • S

S S

  • S

S

  • S

X

These minimal elements form a set X, via which all possible profiles are reachable.

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 10/15

slide-50
SLIDE 50

Exploiting Symmetries on Functional Properties

  • S

S S

  • S

S

  • S

X

Hence, if S-operations preserve the desired property P,

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 10/15

slide-51
SLIDE 51

Exploiting Symmetries on Functional Properties

  • X

Hence, if S-operations preserve the desired property P, verifying P only for elements in X is sufficient.

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 10/15

slide-52
SLIDE 52

Verification of Functional Properties

Verification Task: Does voting rule V satisfy property P ? Conjecture: V satisfies symmetry property S.

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 11/15

slide-53
SLIDE 53

Verification of Functional Properties

Verification Task: Does voting rule V satisfy property P ? Conjecture: V satisfies symmetry property S.

General Theorem for Verification

  • 1. Verify S for V using relational techniques
  • 2. Verify V satisfies property P only for subset X
  • 3. Prove that X spans all possible profiles
  • 4. Prove that S-operations preserve property P

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 11/15

slide-54
SLIDE 54

Verification of Functional Properties

Verification Task: Does voting rule V satisfy property P ? Conjecture: V satisfies symmetry property S.

General Theorem for Verification

  • 1. Verify S for V using relational techniques
  • 2. Verify V satisfies property P only for subset X
  • 3. Prove that X spans all possible profiles
  • 4. Prove that S-operations preserve property P

program verification

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 11/15

slide-55
SLIDE 55

Verification of Functional Properties

Verification Task: Does voting rule V satisfy property P ? Conjecture: V satisfies symmetry property S.

General Theorem for Verification

  • 1. Verify S for V using relational techniques
  • 2. Verify V satisfies property P only for subset X
  • 3. Prove that X spans all possible profiles
  • 4. Prove that S-operations preserve property P

program verification

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 11/15

slide-56
SLIDE 56

Verification of Functional Properties

Verification Task: Does voting rule V satisfy property P ? Conjecture: V satisfies symmetry property S.

General Theorem for Verification

  • 1. Verify S for V using relational techniques
  • 2. Verify V satisfies property P only for subset X
  • 3. Prove that X spans all possible profiles
  • 4. Prove that S-operations preserve property P

independent of V program verification

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 11/15

slide-57
SLIDE 57

Verification of Functional Properties

Verification Task: Does voting rule V satisfy property P ? Conjecture: V satisfies symmetry property S.

General Theorem for Verification

  • 1. Verify S for V using relational techniques
  • 2. Verify V satisfies property P only for subset X
  • 3. Prove that X spans all possible profiles
  • 4. Prove that S-operations preserve property P

Example

V: Plurality rule P: Majority criterion

S: Anonymity property X: ?

independent of V program verification

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 11/15

slide-58
SLIDE 58

Verification of Functional Properties

Verification Task: Does voting rule V satisfy property P ? Conjecture: V satisfies symmetry property S.

General Theorem for Verification

  • 1. Verify S for V using relational techniques
  • 2. Verify V satisfies property P only for subset X
  • 3. Prove that X spans all possible profiles
  • 4. Prove that S-operations preserve property P

Example

V: Plurality rule P: Majority criterion

S: Anonymity property X: All sorted (by chosen candidate) profiles

independent of V program verification

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 11/15

slide-59
SLIDE 59

Exploiting Symmetries for Verification

How do we fix the set X for use in verification?

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 12/15

slide-60
SLIDE 60

Exploiting Symmetries for Verification

How do we fix the set X for use in verification?

Answer: Use symmetry-breaking predicates (SBP).

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 12/15

slide-61
SLIDE 61

Exploiting Symmetries for Verification

How do we fix the set X for use in verification?

Answer: Use symmetry-breaking predicates (SBP). Predicates which are only valid for elements in X Means to reduce search space Used as precondition for input

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 12/15

slide-62
SLIDE 62

Exploiting Symmetries for Verification

How do we fix the set X for use in verification?

Answer: Use symmetry-breaking predicates (SBP). Predicates which are only valid for elements in X Means to reduce search space Used as precondition for input

Example for anonymity property and plurality rule

Profiles denoted as (b1, . . . , bN) (N number of cast ballots) Each ballot denotes exactly one chosen candidate Predicate valid only for sorted ballot profiles:

∀i ∈ {2, . . . , N} : bi−1 ≤ bi

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 12/15

slide-63
SLIDE 63

Exploiting Symmetries for Verification

How do we fix the set X for use in verification?

Answer: Use symmetry-breaking predicates (SBP). Predicates which are only valid for elements in X Means to reduce search space Used as precondition for input

Example for anonymity property and plurality rule

Profiles denoted as (b1, . . . , bN) (N number of cast ballots) Each ballot denotes exactly one chosen candidate Predicate valid only for sorted ballot profiles:

∀i ∈ {2, . . . , N} : bi−1 ≤ bi

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 12/15

slide-64
SLIDE 64

Verification Using Symmetry Breaking

Example: Verification using bounded model checking (CBMC)

20 40 60 80 100 300 600 900 1,200 1,500 1,800 t /o Ballots Run-time [s]

Run-times for 9 candidates in seconds

Verified majority for plurality rule With and without SBP for anonymity Results: Significantly pushed the boundaries! Case study for multiple rules and properties Composition of symmetries: anonymity plus neutrality

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 13/15

slide-65
SLIDE 65

Verification Using Symmetry Breaking

Example: Verification using bounded model checking (CBMC)

20 40 60 80 100 300 600 900 1,200 1,500 1,800 t /o Ballots Run-time [s]

Run-times for 9 candidates in seconds

Verified majority for plurality rule With and without SBP for anonymity Results: Significantly pushed the boundaries! Case study for multiple rules and properties Composition of symmetries: anonymity plus neutrality

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 13/15

slide-66
SLIDE 66

Conclusion and Outlook

Results

General approach for verification of axiomatic properties Coupling evaluations enable short and concise specifications

⇒ Often critical point to make verification feasible!

Exploiting (generalised) symmetries significantly pushes boundaries Feasibility demonstrated on a variety of well-known results

Future Work

Generalisation of approach to further classes of properties Application on further and more complex examples

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 14/15

slide-67
SLIDE 67

Conclusion and Outlook

Results

General approach for verification of axiomatic properties Coupling evaluations enable short and concise specifications

⇒ Often critical point to make verification feasible!

Exploiting (generalised) symmetries significantly pushes boundaries Feasibility demonstrated on a variety of well-known results

Future Work

Generalisation of approach to further classes of properties Application on further and more complex examples

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 14/15

slide-68
SLIDE 68

Conclusion and Outlook

Results

General approach for verification of axiomatic properties Coupling evaluations enable short and concise specifications

⇒ Often critical point to make verification feasible!

Exploiting (generalised) symmetries significantly pushes boundaries Feasibility demonstrated on a variety of well-known results

Future Work

Generalisation of approach to further classes of properties Application on further and more complex examples

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 14/15

slide-69
SLIDE 69

Conclusion and Outlook

Results

General approach for verification of axiomatic properties Coupling evaluations enable short and concise specifications

⇒ Often critical point to make verification feasible!

Exploiting (generalised) symmetries significantly pushes boundaries Feasibility demonstrated on a variety of well-known results

Future Work

Generalisation of approach to further classes of properties Application on further and more complex examples

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 14/15

slide-70
SLIDE 70

Conclusion and Outlook

Results

General approach for verification of axiomatic properties Coupling evaluations enable short and concise specifications

⇒ Often critical point to make verification feasible!

Exploiting (generalised) symmetries significantly pushes boundaries Feasibility demonstrated on a variety of well-known results

Future Work

Generalisation of approach to further classes of properties Application on further and more complex examples

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 14/15

slide-71
SLIDE 71

Conclusion and Outlook

Results

General approach for verification of axiomatic properties Coupling evaluations enable short and concise specifications

⇒ Often critical point to make verification feasible!

Exploiting (generalised) symmetries significantly pushes boundaries Feasibility demonstrated on a variety of well-known results

Future Work

Generalisation of approach to further classes of properties Application on further and more complex examples

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 14/15

slide-72
SLIDE 72

Questions and Answers

Thank you for your attention!

Any questions?

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 15/15

slide-73
SLIDE 73

Questions and Answers

Thank you for your attention!

Any questions?

Introduction Verification of Relational Properties Verification of Functional Properties Conclusion Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 15/15

slide-74
SLIDE 74

References

Peter C. Fishburn. The Theory of Social Choice. Princeton University Press, 1973 (cit. on pp. 18, 19).

References Backup Slides Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 16/15

slide-75
SLIDE 75

Verification with Coupling Evaluations

Example: Verification using bounded model checking (CBMC)

1 3 6 9 12 15 18 21 23 300 600 900 1,200 1,500 1,800 t /o Ballots Run-time [s]

Run-times for 9 candidates in seconds

Verified anonymity for plurality rule Concise specifications useable for BMC ⇒ Guidance for SAT-solver Separate and coupling evaluations Results: Achieved higher bounds

References Backup Slides Michael Kirsten – Automated Verification of Voting Rules July 26, 2016 17/15