Michael Torpey

University of St Andrews

About Me

This is the academic webpage of Michael Torpey. I am a research software engineer at the School of Computer Science in the University of St Andrews, where I am a part of the OpenDreamKit project.

I undertook my PhD in the School of Mathematics and Statistics here in St Andrews, starting in September 2014. The final version of my thesis, Semigroup Congruences: Computational Techniques and Theoretical Applications, was accepted by the university in February 2019, and I expect to graduate in June.

I have been based in the University of St Andrews since 2009, completing the degrees of BSc Computer Science/Mathematics in 2013 and MSc Mathematics with Distinction in 2014.


Office: Room 0.11

Address: School of Computer Science, Jack Cole Building, North Haugh, St Andrews, Fife, KY16 9SX.

Email: mct25@st-andrews.ac.uk

Telephone: 01334 46 1633

My Research

My main interest is in computational semigroup theory; across the period of my MSc and PhD I have contributed to the GAP computational algebra system, and in particular to the Semigroups and Digraphs packages for GAP. One particular area of my focus is on computing semigroup congruences; I have written and implemented a number of algorithms for this in the Semigroups package. Since submitting my thesis, I have also become a main author of the curlInterface and MathInTheMiddle packages for GAP, as well as initial work on pymemo, a new persistent memoisation framework for Python, and the Memoisation package for GAP. I have also started PackageManager, a package management system for GAP.


I have published one paper so far in my career. My PhD thesis was accepted by the university in February 2018: As part of my MSc degree, I also wrote two dissertations on computational semigroup theory, each of which contained some original research:


I am a significant contributor to the following software packages:
Semigroups v 3.0.20 GAP package J. D. Mitchell 2018-10-01
Digraphs v 0.14.0 GAP package Various authors 2018-11-23
libsemigroups v 0.6.4 C++ library J. D. Mitchell & M. Torpey 2018-09-28
curlInterface v 2.1.1 GAP package C. Jefferson & M. Torpey 2018-10-26
MathInTheMiddle GAP package M. Pfeiffer & M. Torpey
Memoisation GAP package M. Pfeiffer & M. Torpey
PackageManager v 0.2.1 GAP package M. Torpey 2018-10-04


I have taken part in the following mathematical conferences:
23-28 May 2018 EMS Postgraduate Students Meeting 2018 The Burn, Glenesk
31 Jan-2 Feb 2018 Postgraduate Intra-Disciplinary Mathematics Symposium 2018 The Burn, Glenesk
1-4 Aug 2017 Young Researchers in Mathematics 2017 University of Kent
7-9 Jun 2017 EMS Postgraduate Students Meeting 2017 The Burn, Glenesk
20-22 Jan 2017 Postgraduate Intra-Disciplinary Mathematics Symposium 2017 The Burn, Glenesk
16-19 Jan 2016 Computational Maths with Jupyter ICMS, Edinburgh
17-18 Oct 2016 Second CoDiMa Training School ICMS, Edinburgh
20-24 Jun 2016 International Conference on Semigroups and Automata 2016 University of Lisbon
30 May-1 Jun 2016 EMS Postgraduate Students Meeting 2016 The Burn, Glenesk
11 May 2016 24th NBSAN Meeting University of York
26-27 Apr 2016 Scottish Combinatorics Meeting 2016 University of Glasgow
17-18 Mar 2016 23rd NBSAN Meeting University of St Andrews
25-27 Jan 2016 Postgraduate Intra-Disciplinary Mathematics Symposium 2016 The Burn, Glenesk
20 Nov 2015 22nd NBSAN Meeting University of Manchester
16-20 Nov 2015 First CoDiMa Training School University of Manchester
20-30 Jul 2015 102nd LMS-EPSRC Durham Symposium University of Durham
10-14 Jun 2015 AMS-EMS-SPM International Meeting 2015 University of Porto
9 Jun 2015 Workshop on Groups and Semigroups University of Porto
1-3 Jun 2015 EMS Postgraduate Students Meeting 2015 The Burn, Glenesk
1 May 2015 Joint PG Colloquium 2015 ICMS, Edinburgh
12-15 Apr 2015 Postgraduate Combinatorial Conference 2015 Queen Mary University of London
15-20 Mar 2015 Second GAP Days Meeting RWTH Aachen
26-28 Jan 2015 Postgraduate Intra-Disciplinary Mathematics Symposium 2015 The Burn, Glenesk
1-2 Oct 2014 SMSTC Opening Symposium Perth
18-24 Aug 2013 International Workshop "Parallel Programming in GAP" University of St Andrews


I have given the following talks:
18 Sep 2017,
2 Oct 2017,
20 Feb 2018,
1 Oct 2018
Learning to Fail Successfully: Adapting to PhD Life Postgraduate Researcher Induction/Essentials (all disciplines), St Andrews
4 Aug 2017 An Introduction to GAP YRM 2017, Kent
7 Jun 2017 Diagram Semigroups EMS Postgraduate Students Meeting 2017, The Burn
17 May 2017 Congruences of the Partition Monoid PhD review talk, St Andrews
13 Feb 2017 An Introduction to GAP Pure Postgraduate Seminar, St Andrews
20 Jan 2017 Introduction to Algebra PIMS 2017, The Burn
24 Nov 2016 Diagram Semigroups Pure Postgraduate Seminar, St Andrews
31 May 2016 Finitely Presented Semigroups EMS Postgraduate Students Meeting 2016, The Burn
6 Apr 2016 Dolphin Semigroups Pure Postgraduate Seminar, St Andrews
17 Mar 2016 Computing with Semigroup Congruences 23rd NBSAN Meeting, St Andrews
26 Jan 2016 Inverse Semigroups PIMS 2016, The Burn
2 Oct 2015 Semilattice Congruences Pure Postgraduate Seminar, St Andrews
1 Jun 2015 Computing with Semigroup Congruences EMS Postgraduate Students Meeting 2015, The Burn
18 Mar 2015 Computing with Semigroup Congruences Second GAP Days Meeting, Aachen
10 Feb 2015 DiSparse6: a handy way for computers to remember digraphs Pure Postgraduate Seminar, St Andrews
28 Jan 2015 Compact formats for storing directed graphs PIMS 2015, The Burn
31 Oct 2014 Computing with Semigroup Congruences Pure Postgraduate Seminar, St Andrews
22 Aug 2013 The Low-Index Subgroups Algorithm Parallel Programming in GAP, St Andrews