Topics of Research

I believe in a strongly cross-disciplinary approach to computer science, mathematics, and related topics.  I find it convenient to use category theory as a common language, and also have an interest in the foundations of category theory itself.

Formal Logic

My PhD thesis was an analysis of J-Y Girard's Geometry of Interaction program, via category theory & inverse semigroups. 

Using tools from this program in other fields, sometimes far removed from logic or computation, is a significant theme in my work.

Quantum Computing

I have a strong interest in the  foundations of quantum computation, and  how it interacts with other fields of theoretical computer science.

My work in this field particularly relates to the theoretical computer science behind J. Myers' critique of  Deutsch's proposal for QM Turing machines, and the reasons why the circuit model became the dominant paradigm.

Cognitive Science

I have had a long and fruitful interaction with psychologists and cognitive scientists, based on a project using information theory to study clustering and classification.

I am the author of Matlab and C++ packages that perform the required calculations and manipulations. 

These tools have also found applications elsewhere, particularly to the analysis of communication channels.

Pure Mathematics

From my PhD onwards, I have worked with semigroups - particularly inverse semigroups  - and related algebraic structures such as automata and state machines.  This has taken in applications to fields ranging from ring theory to axiomatic notions of summation.

A core interest is in algebraic structures that have additional properties derived from category theory,  such as monoidal tensors, enrichments, or closure operations. 

Theoretical Computer Science

My interests in theoretical computer science relate to mathematical models of computing structures,  both 'operational' (automata, Turing machines, von Neumann architecture, &c.) and 'denotational' (lambda calculus, domain theory, fixed points, logic programming, &c.).

I am particularly interested in relating the two strands, using category theory for the underlying unifying language. 

My theoretical interests also inform my practical programming work. 

Category theory

In category theory, we distinguish between 'large' categories, such as the category of all sets, and 'small' categories, which may themselves be individual algebraic structures such as monoids or posets. 

My guiding principle is that many interesting structures from algebra and computer science are 'small' versions of important properties of large categories. 

I have recently published a coherence theorem that allows this to be formalised, and am currently working on a book exploring the implications of this.


My work in linguistics is based around the use of J. Lambek's pregroups as a typing system for natural language.  These were originally introduced via their connection to Girard's linear logic, and unsurprisingly share very similar categorical and algebraic models.

My most recent publication in linguistics uses these connections to demonstrate that grammars for languages used to communicate information have structural features that need not be present in arbitrary formal grammars.


My interest in theoretical aspects of cryptography is quite recent, by comparison with my other fields of study, and consists of two strands:

Category theory provides a convenient tool to describe and reason about information flow in communication - encrypted or otherwise.

It is also notable that many popular algebraic platforms for protocols have a strongly categorical interpretation, related to the foundations of categorical coherence.