Papers
Click on the title of a paper for full details, pdf download and bibtex.
I am always keen to discuss my research and related work, so please feel free to email me about it.
Also, please let me know if any pdf links do not work.
PhD Thesis
Automatic Techniques for Detecting and Exploiting Symmetry in Model Checking
Edited Volumes
SPIN 2012 Workshop on Model Checking of Software
Symmetry in Constraint Satisfaction Problems
Proceedings of the 6th International Workshop on Symmetry and Constraint Satisfaction Problems
Proceedings of SymNet Workshop on Almost-Symmetry in Search
Papers in journals and conference/workshop proceedings
2013
Interleaving and Lock-Step Semantics for Analysis and Verification of GPU Kernels
2012
Automatic Verification of Message-Based Device Drivers
GPUVerify: a Verifier for GPU Kernels
SatAbs: A Bit-Precise Verifier for C Programs - (Competition Contribution)
Counterexample-guided Abstraction Refinement for Symmetric Concurrent Programs
2011
Safe Asynchronous Memory Operations
Making Software Verification Tools Really Work
Software Verification Using k-Induction
Automatic Analysis of DMA Races Using Model Checking and k-Induction
Symmetry-Aware Predicate Abstraction for Shared Variable Concurrent Programs
Static Analysis of Device Drivers: We Can Do Better!
SCRATCH: a Tool for Automatic Analysis of DMA Races
Automatic Safety Proofs for Asynchronous Memory Operations
Strengthening Induction-Based Race Checking with Lightweight Static Analysis
2010
Tightening Test Coverage Metrics: a Case Study in Equivalence Checking Using k-Induction
Programming Heterogeneous Multicore Systems using Threading Building Blocks
Type Inference and Strong Static Type Checking for Promela
Replication and Abstraction: Symmetry in Automated Formal Verification
Automatic Analysis of Scratch-pad Memory Code for Heterogeneous Multicore Processors
Automatic Offloading of C++ for the Cell BE Processor: a Case Study Using Offload
Offload - Automating Code Migration to Heterogeneous Multicore Systems
Analysing DMA Races in Multicore Software
2009
On the Constructive Orbit Problem
Language-level Symmetry Reduction for Probabilistic Model Checking
Towards Metaprogramming for Parallel Systems on a Chip
Deriving Efficient Data Movement From Decoupled Access/Execute Specifications
2008
Automatic Symmetry Detection for Promela
Tackling Online Game Development Problems with a Novel Network Scripting Language
Compile-time and Run-time Issues in an Auto-parallelisation System for the Cell BE Processor
Strict and Relaxed Sieving for Multi-Core Programming
2007
Auto-parallelisation of Sieve C++ Programs
Efficient Approximate Verification of Promela via Symmetry Markers
GRIP: Generic Representatives in PRISM
Extending Symmetry Reduction Techniques to a Realistic Model of Computation
2006
Symmetry in Temporal Logic Model Checking
Symmetry Reduction for Probabilistic Model Checking Using Generic Representatives
Exact and Approximate Strategies for Symmetry Reduction in Model Checking
A Computational Group Theoretic Symmetry Reduction Package for the SPIN Model Checker
Evaluating a Formal Methods Technique via Student Assessed Exercises
2005
ETCH: An Enhanced Type Checking Tool for Promela
Automatic Symmetry Detection for Model Checking Using Computational Group Theory
SPIN-to-GRAPE: A Tool for Analysing Symmetry in Promela Models
Finding Symmetry in Models of Concurrent Systems by Static Channel Diagram Analysis
Symmetry Reduction for Probabilistic Systems
Pen-based Input of UML Activity Diagrams for Business Process Modelling
2004
Comparing the Use of Symmetry in Constraint Processing and Model Checking