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.

GitHub: mtorpey

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 2019: 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.1.2 GAP package J. D. Mitchell 2019-03-15
Digraphs v 0.15.1 GAP package Various authors 2019-03-26
libsemigroups v 0.6.7 C++ library J. D. Mitchell & M. Torpey 2019-03-15
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.3 GAP package M. Torpey 2019-02-22


I have taken part in the following mathematical conferences:
2019-03-18/22 GAP Days Spring 2019 Martin Luther University of Halle-Wittenberg
2019-02-11/15 Free Computational Mathematics CIRM, Luminy, France
2019-01-30/02-01 Postgraduate Intra-disciplinary Mathematics Symposium 2019 The Burn, Glenesk (invited speaker)
2018-09-17/21 GAP Days Fall 2018 University of Siegen
2018-05-21/23 EMS Postgraduate Students Meeting 2018 The Burn, Glenesk
2018-01-31/02-02 Postgraduate Intra-Disciplinary Mathematics Symposium 2018 The Burn, Glenesk
2017-08-01/04 Young Researchers in Mathematics 2017 University of Kent
2017-06-07/09 EMS Postgraduate Students Meeting 2017 The Burn, Glenesk
2017-01-20/22 Postgraduate Intra-Disciplinary Mathematics Symposium 2017 The Burn, Glenesk
2016-01-16/19 Computational Maths with Jupyter ICMS, Edinburgh
2016-10-17/18 Second CoDiMa Training School ICMS, Edinburgh
2016-06-20/24 International Conference on Semigroups and Automata 2016 University of Lisbon
2016-05-30/06-01 EMS Postgraduate Students Meeting 2016 The Burn, Glenesk
2016-05-11 24th NBSAN Meeting University of York
2016-04-26/27 Scottish Combinatorics Meeting 2016 University of Glasgow
2016-03-17/18 23rd NBSAN Meeting University of St Andrews
2016-01-25/27 Postgraduate Intra-Disciplinary Mathematics Symposium 2016 The Burn, Glenesk
2015-20-11 22nd NBSAN Meeting University of Manchester
2015-11-16/20 First CoDiMa Training School University of Manchester
2015-07-20/30 102nd LMS-EPSRC Durham Symposium University of Durham
2015-06-10/14 AMS-EMS-SPM International Meeting 2015 University of Porto
2015-06-09 Workshop on Groups and Semigroups University of Porto
2015-06-01/03 EMS Postgraduate Students Meeting 2015 The Burn, Glenesk
2015-05-01 Joint PG Colloquium 2015 ICMS, Edinburgh
2015-04-12/15 Postgraduate Combinatorial Conference 2015 Queen Mary University of London
2015-03-15/20 Second GAP Days Meeting RWTH Aachen
2015-01-26/28 Postgraduate Intra-Disciplinary Mathematics Symposium 2015 The Burn, Glenesk
2014-10-01/02 SMSTC Opening Symposium Perth
2013-08-18/24 International Workshop "Parallel Programming in GAP" University of St Andrews


I have given the following talks:
2019-02-14 pypersist: Persistent memoisation framework for Python Free Computational Mathematics, CIRM
2019-02-01 Writing a thesis PIMS 2019, The Burn, Glenesk (invited speaker)
Learning to Fail Successfully: Adapting to PhD Life Postgraduate Researcher Induction/Essentials (all disciplines), St Andrews
2017-08-04 An Introduction to GAP YRM 2017, Kent
2017-06-07 Diagram Semigroups EMS Postgraduate Students Meeting 2017, The Burn
2017-05-17 Congruences of the Partition Monoid PhD review talk, St Andrews
2017-02-13 An Introduction to GAP Pure Postgraduate Seminar, St Andrews
2017-01-20 Introduction to Algebra PIMS 2017, The Burn
2016-11-24 Diagram Semigroups Pure Postgraduate Seminar, St Andrews
2016-05-31 Finitely Presented Semigroups EMS Postgraduate Students Meeting 2016, The Burn
2016-04-06 Dolphin Semigroups Pure Postgraduate Seminar, St Andrews
2016-03-17 Computing with Semigroup Congruences 23rd NBSAN Meeting, St Andrews
2016-01-26 Inverse Semigroups PIMS 2016, The Burn
2015-10-02 Semilattice Congruences Pure Postgraduate Seminar, St Andrews
2015-06-01 Computing with Semigroup Congruences EMS Postgraduate Students Meeting 2015, The Burn
2015-03-18 Computing with Semigroup Congruences Second GAP Days Meeting, Aachen
2015-02-10 DiSparse6: a handy way for computers to remember digraphs Pure Postgraduate Seminar, St Andrews
2015-01-28 Compact formats for storing directed graphs PIMS 2015, The Burn
2014-10-31 Computing with Semigroup Congruences Pure Postgraduate Seminar, St Andrews
2013-08-22 The Low-Index Subgroups Algorithm Parallel Programming in GAP, St Andrews