This page documents my doctoral research and related academic work.
The research sits at the intersection of mathematics, algorithms and optimisation, and reflects an early focus on how complex systems can be modelled, analysed and improved. While the work is academic in form, many of the underlying ideas continue to inform how I approach technology, systems and decision-making today.
Links are provided to the original thesis and relevant academic references.
Doctoral Thesis
Published in the Journal of Universal Computer Science. Also presented at BCTCS’99 in April 1999. This paper presents a functional interpretation of logic programs, bridging the gap between the two programming paradigms.
This paper shows how to embed definite logic programs in a lazy functional language. It explores the integration of functional and logic programming paradigms through a clean embedding in Haskell.
Published in the Proceedings of the Symposium in honour of work of C.A.R. Hoare. This paper explores the algebraic foundations of search algorithms in the context of logic programming.
This paper develops some of the algebra underlying logic programming. The algebraic treatment of logic programming sets out to achieve an integration of the current approaches for the specification and development of logic programs.
This paper develops some techniques for the derivation and transformation of logic programs. The framework is based on an embedding of logic programs into a lazy functional language in Haskell. The paper extends the calculational techniques developed by Bird and de Moor in their Algebra of Programming by applying some of them to logic programs.
Declarative programming, with its mathematical underpinning, was aimed to simplify rigorous reasoning about programs. For functional programs, an algebraic calculus of relations has previously been applied to optimisation problems to derive efficient greedy or dynamic programs from the corresponding inefficient but obviously correct specifications. Here we argue that this approach is natural also in the logic programming setting.
