24 research outputs found
Formal Verification of Voting Schemes
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. 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. 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\u27\u27 and ``light-weight\u27\u27 verification techniques. The ``medium-
weight\u27\u27 approach uses the annotation-based deductive verification tool VCC based on
an auto-active methodology and the ``light-weight\u27\u27 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\u27\u27 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
A rigorous treatment of Meek's method for single transferable vote with formal proofs of key properties
This thesis presents a mechanised formalisation of key concepts and properties of Meek's method of Single Transferable Vote (STV). This method is currently in use in a number of local elections in New Zealand, the Royal Statistical Society, and even the Stack Exchange network. Using a formal approach, we show that the iterative solution to the surplus transfer round of Meek's method converges to a unique and valid solution, and connect a functional implementation of its key components to a more abstract and generalised proof.
Along the way, we consider and address issues present in existing pen-and-paper proofs, and discuss a general representation of strict ballots suitable for the proof patterns encountered in our formal development and for the implementation of Meek's method.
We believe that this work pushes the boundaries of interactive theorem proving for the formal verification of voting algorithms, and offers multiple promising avenues for further work on formally verifying the correctness and termination of STV methods in Isabelle/HOL
Reasoning About Vote Counting Schemes Using Light-weight and Heavy-weight Methods
We compare and contrast our experiences in specifying, implementing
and verifying the monotonicity property of a simple plurality voting
scheme using modern light-weight and heavy-weight verification tools
Formally Verified Verifiable Electronic Voting Scheme
Since the introduction of secret ballots in Victoria, Australia in 1855, paper (ballots) are widely used around the world to record the preferences of eligible voters. Paper ballots provide three important ingredients: correctness, privacy, and verifiability. However, the paper ballot election brings various other challenges, e.g. it is slow for large democracies like India, error prone for complex voting method like single transferable vote, and poses operational challenges for large countries like Australia. In order to solve these problems and various others, many countries are adopting electronic voting. However, electronic voting has a whole new set of problems. In most cases, the software programs used to conduct the election have numerous problems, including, but not limited to, counting bugs, ballot identification, etc. Moreover, these software programs are treated as commercial in confidence and
are not allowed to be inspected by members of the public. As a consequence, the result produced by these software programs can not be substantiated.
In this thesis, we address the three main concerns posed by electronic voting, i.e. correctness, privacy, and verifiability. We address the correctness concern by using theorem prover to implement the vote counting algorithm,
privacy concern by using cryptography, and verifiability concern by generating a independently checkable scrutiny sheet (certificate). Our work has been carried out in the Coq theorem prover
Dynamic Logic for an Intermediate Language: Verification, Interaction and Refinement
This thesis is about ensuring that software behaves as it is supposed to behave. More precisely, it is concerned with the deductive verification of the compliance of software implementations with their formal specification. Two successful ideas in program verification are integrated into a new approach: dynamic logic and intermediate verification language. The well-established technique of refinement is used to decompose the difficult task of program verification into two easier tasks
An infrastructure mechanism for dynamic ontology-based knowledge infrastructures
Centre for Intelligent Systems and their ApplicationsBoth semantic web applications and individuals are in need of knowledge infrastructures that can be used in dynamic and distributed environments where autonomous entities create knowledge and build their own view of a domain. The prevailing view today is that the process of ontology evolution is difficult to monitor and control, so few efforts have been made to support such a controlled process formally involving several ontologies. The new paradigm we propose is to use an infrastructure mechanism that processes ontology change proposals from autonomous entities while maintaining user-defined consistency between the ontologies of these entities. This makes so called semantic autonomy possible. A core invention of our approach is to formalise consistency constraints as so called spheres of consistency that define 1) knowledge regions within which consistency is maintained and 2) a variable degree of proof-bounded consistency within these regions. Our infrastructure formalism defines a protocol and its computational semantics, as well as a model theory and proof theory for the reasoning layer of the mechanism. The conclusion of this thesis is that this new paradigm is possible and beneficial, assuming that the knowledge representation is kept simple, the ontology evolution operations are kept simple and one proposal is processed at a tim
Proceedings of the Second NASA Formal Methods Symposium
This publication contains the proceedings of the Second NASA Formal Methods Symposium sponsored by the National Aeronautics and Space Administration and held in Washington D.C. April 13-15, 2010. Topics covered include: Decision Engines for Software Analysis using Satisfiability Modulo Theories Solvers; Verification and Validation of Flight-Critical Systems; Formal Methods at Intel -- An Overview; Automatic Review of Abstract State Machines by Meta Property Verification; Hardware-independent Proofs of Numerical Programs; Slice-based Formal Specification Measures -- Mapping Coupling and Cohesion Measures to Formal Z; How Formal Methods Impels Discovery: A Short History of an Air Traffic Management Project; A Machine-Checked Proof of A State-Space Construction Algorithm; Automated Assume-Guarantee Reasoning for Omega-Regular Systems and Specifications; Modeling Regular Replacement for String Constraint Solving; Using Integer Clocks to Verify the Timing-Sync Sensor Network Protocol; Can Regulatory Bodies Expect Efficient Help from Formal Methods?; Synthesis of Greedy Algorithms Using Dominance Relations; A New Method for Incremental Testing of Finite State Machines; Verification of Faulty Message Passing Systems with Continuous State Space in PVS; Phase Two Feasibility Study for Software Safety Requirements Analysis Using Model Checking; A Prototype Embedding of Bluespec System Verilog in the PVS Theorem Prover; SimCheck: An Expressive Type System for Simulink; Coverage Metrics for Requirements-Based Testing: Evaluation of Effectiveness; Software Model Checking of ARINC-653 Flight Code with MCP; Evaluation of a Guideline by Formal Modelling of Cruise Control System in Event-B; Formal Verification of Large Software Systems; Symbolic Computation of Strongly Connected Components Using Saturation; Towards the Formal Verification of a Distributed Real-Time Automotive System; Slicing AADL Specifications for Model Checking; Model Checking with Edge-valued Decision Diagrams; and Data-flow based Model Analysis
Computer Aided Verification
This open access two-volume set LNCS 13371 and 13372 constitutes the refereed proceedings of the 34rd International Conference on Computer Aided Verification, CAV 2022, which was held in Haifa, Israel, in August 2022. The 40 full papers presented together with 9 tool papers and 2 case studies were carefully reviewed and selected from 209 submissions. The papers were organized in the following topical sections: Part I: Invited papers; formal methods for probabilistic programs; formal methods for neural networks; software Verification and model checking; hyperproperties and security; formal methods for hardware, cyber-physical, and hybrid systems. Part II: Probabilistic techniques; automata and logic; deductive verification and decision procedures; machine learning; synthesis and concurrency. This is an open access book