My research is centered around term rewriting: a formal system based on oriented equations, which can be used both to reason about mathematical structures and to specify algorithms. Within this context, I have studied both first-order and higher-order term rewriting, as well as constrained and conditional term rewriting systems.

Currently, my focus is on applying results from term rewriting in other areas of computer science. Term rewriting is a well-studied field with decades of progress on a wide range of questions. Although this work has a theoretical focus, a lot of the ideas also have applications in other domains, such as software verification, computational complexity and resource analysis, fault tree optimisation, and many more.

In the menu to the left, you can find all my publications (both formal and informal, and including my Master and PhD thesis), and an explanation of and links to the analysis tools that I have written as part of this research. You can also find a short description of the projects I have been involved in.