I studied Logic and Computation as an undergraduate at Victoria University of Wellington in New Zealand, then completed a PhD at the University of Cambridge in 2010. I worked as a research fellow at ANU, then as a postdoc and assistant lecturer at Aarhus University in Denmark, then returned to ANU in 2018 to take up a Lecturer position.
I am interested in creating new logics, or adapting old ones, to solve problems in computer science. For example, I have studied logics for recursively defined infinite structures such as streams, for mutable resources such as memory locations, and for handling variable names. I am particularly interested in how logics can be turned into type systems to guarantee well-behaved code, or to support formally checked mathematics.
From 2019 I will be teaching COMP1100 (Programming as Problem Solving), an introductory course on programming.