Broadly speaking I am interested in the structure and representation theory of finite groups, and in combinatorial objects upon which such groups may act. Within these areas I am interested in developing computational algorithms and techniques for computing with concrete examples, especially when these examples seem out of reach of the existing methods and technology.

I’ve also got a bit of a side-line in static program analysis. Just for fun.

Find me on MathSciNet (if you have access to it).

Here are some things I am working on:

- Conjugacy Class Representatives
in the Monster Group
(With R. A. Wilson.) LMS J. Comput. Math.
**8**(2005). (MR2166573)

We use the computer constructions of the Monster to determine words in the generators for an element in each conjugacy class, up to algebraic conjugacy. We show how to distinguish the conjugacy classes. You can(not) access the Monster elements database on-line. - The Character Table Of A Maximal Subgroup Of The
Monster. (With R. A. Wilson.)
LMS J. Comput. Math. 10 (2007) 161--175.

to be precise. - The Character Table Of A Group Of Shape
.
(Preprint and program, tar.gz, 124k.)
LMS J. Comput. Math. 13 (2010) 82–89

We use the technique of Fischer matrices to write a program to produce the character table of a group of shape from the character tables of G, G:2, 2.G and 2.G:2. We also supply a simplified proof of a result frequently used in the Fischer matrices method. -
*Nets of the Monster*. I am working on a classification of “nets”, combinatorial objects obtained from the Monster group. At net is an orbit (under a certain action) of the 3 string braid group on a triple (*a*,*b*,*c*) of 2A-involutions of the Monster. The problem is to obtain representative triples for all such orbits, up to conjugacy in the Monster. An easy structure constant calculation shows there to be about 1·4 million classes of triples. My strategy has been to work in*p*-local maximal subgroups to obtain all nets centralised by an element of order*p*. I have completed all cases for*p*≥ 5. - A Trajectory-based Strict Semantics for Program Slicing.
(With
David Binkley,
Sebastian Danicic,
Mark Harman,
Robert M. Hierons,
Àkos Kiss,
Mike Laurence, and
Lahcen Ouarbya.)
Theoretical Computer Science
**411**(2010) 1372–1386.

We define a simple, intuitive trajectory-based equivalence relation which accurately captures the relationship between programs and the slices produced by the most commonly used and well-known slicing algorithms, Weiser’s and the PDG algorithm, even for non-terminating programs. Our new equivalence, unlike other approaches, is based on standard semantics. It deals with non-termination by stipulating that a program and its slice must ‘agree’ in all terminating ‘approximations’ based on finite loop unfoldings. We prove that this equivalence is preserved by Weiser’s algorithm and all slicing algorithms based on data and control dependence. We also demonstrate that this new equivalence more accurately captures the behaviour of slicing algorithms than previous work. - A unifying theory of controldependence and its application to arbitrary program structures.
(With
Sebastian Danicic,
Mark Harman,
John Howroyd,
Àkos Kiss,
and
Mike Laurence.)
Theoretical Computer Science
**412**(49) (2011) 6809–6842.

There are several similar, but not identical, definitions of control dependence in the literature. These definitions are given in terms of control flow graphs which have had extra restrictions imposed (for example, end-reachability). We define two new generalisations of non-termination insensitive and non-termination sensitive control dependence called weak and strong control-closure. These are defined for all finite directed graphs, not just control flow graphs and are hence allow control dependence to be applied to a wider class of program structures than before. We investigate all previous forms of control dependence in the literature and prove that, for the restricted graphs for which each is defined, vertex sets are closed under each if and only if they are either weakly or strongly control-closed. Low polynomial-time algorithms for producing minimal weakly and strongly control-closed sets over generalised control flow graphs are given. This paper is the first to define an underlying semantics for control dependence: we define two relations between graphs called weak and strong projections, and prove that the graph induced by a set of vertices is a weak/strong projection of the original if and only if the set is weakly/strongly control-closed. Thus, all previous forms of control dependence also satisfy our semantics. Weak and strong projections, therefore, precisely capture the essence of controldependence in our generalisations and all the previous, more restricted forms. More fundamentally, these semantics can be thought of as correctness criteria for future definitions of control dependence.

I enjoy seminars in the school, including the London Algebra Colloquium, the Monday pure mathematics seminar, sometimes the dynamical systems seminar, and the representation theory study group where I regularly contribute.

I also enjoy conferences! Maybe you’ve seen me at one.

Retirement calculator written using KnockoutJS and Twitter Boostrap.

Using TrueType fonts in LaTeX.

Using Times or Palatino in LaTeX, including equations.

Placing the end of proof symbol nicely in LaTeX.

Controlling TYPE/CREATOR codes and dealing with evil wicked file extensions in MacOS X.

A macro to help making box plots in Excel

Compiling the MeatAxe on MacOS X.

Sometimes I make websites for people.

- Johnny Ikon, a big php/mySQL project.
- Farnley Tyas Clay Pigeon Shoot. Sometimes I go, but I don’t shoot.
- GrassRoots Food Network. Quite a big project.
- Taylormade insulated window covers (both internal and external) for camper vans and RVs.

I have finally been ejected into the private sector where I am Head of Spend Analysis. I made a carbon footprint analysis thingamajig too.

Please buy one, or form a limited company!