\chapter*{Abstract} In today's increasingly technological world, software bugs can have significant consequences. In order to limit the effect of these bugs software engineers employ a wide variety of tests, but these are insufficient to guarantee that software is bug free. Guaranteeing that software is bug-free requires some sort of formal verification. While it is possible to manually prove software correct, it is a difficult and expensive process, usually requiring programs to be written in a particular way and requiring a high level of skill on the part of the proof writer. There has been considerable research interest in providing a method of automatically producing these types of proofs, but due to Rice's Theorem we know it is not possible, in general, to prove the correctness of programs. By using Abstract Interpretation we can perform an imprecise analysis of our program, allowing us to find some, but not all, classes of bugs in general programs. This imperfect analysis is sufficient to provide some level of assurance about a program's correctness while still remaining a practical approach. In this thesis we present an implementation of a game-theoretic static analyser described in \cite{EasyChair:117} as a method of finding bugs and guaranteeing correctness. We present our own enhancements to improve the algorithm's running time and evaluate our improvements on a number of benchmarks.