Macquarie University
01whole.pdf (17.77 MB)

Verification of multi-threaded C programs

Download (17.77 MB)
posted on 2022-03-28, 17:06 authored by Matthew Pigram
Verifying the correctness of a program involves providing a guarantee, in the form of a logical proof, that the program is free of bugs for all possible inputs. It is therefore able to provide software developers and users with a much higher degree of confidence in a program's ability to perform its job than traditional testing, due to the fact that it produces certainty rather than empirical evidence of a program's partial correctness, something which is especially important when that program is responsible for large sums of money or human lives. Multi-threaded programs are able to take advantage of modern multi-core architectures more effectively than single-threaded programs but introduce challenges both to the author and the verifier. Concurrent programs are regarded as being more difficult to write and understand than traditional sequential programs by developers due to the large number of ways in which the multiple threads may interact throughout a program's execution. As such, the ability to formally verify this type of software is perhaps even more valuable than traditional single-threaded programs. For verification, the combinatorial number of ways in which the operations of each thread may be interleaved by a non-deterministic scheduler introduces the problem of state-space explosion. Here, we describe a method for adapting trace abstraction refinement, an existing technique for verification of single-threaded programs for application to multi-threaded programs in combination with an approach to reduce the state space of the program based on dynamic partial order reduction. We apply this method to enable the verification of C programs, building on the work on this topic by Cassez and Zeigler.


Table of Contents

1. Introduction -- 2. Background and related work -- 3. From C programs to formal automata based abstraction -- 4. Implementation -- 5. Results -- 6. Conclusions -- 7. Future work -- 8. Abbreviations -- Bibliography -- Appendices.


Empirical thesis. Bibliography: pages 61-63

Awarding Institution

Macquarie University

Degree Type

Thesis bachelor honours


BSc (Hons), Macquarie University, Faculty of Science and Engineering, School of Engineering

Department, Centre or School

School of Engineering

Year of Award


Principal Supervisor

Franck Cassez

Additional Supervisor 1

Anthony Sloane


Copyright Matthew Pigram 2016. Copyright disclaimer:




1 online resource (xi, 76 pages diagrams, graphs, tables)

Former Identifiers


Usage metrics

    Macquarie University Theses



    Ref. manager