Modularity and composability in Mathematical Computation

Nicolas M. Thiéry et al.

Tetrapod: Modular Knowledge workshop

FLoC 2018, Oxford, July 13th of 2018


Over the last decades, a huge amount of computational software was developed for pure mathematics, in particular to support research and education. As for any complex ecosystem of software components, the ability to compose them has a multiplier effect on the expressive power, flexibility, and range of applications.

The purpose of this session is to share experience on the many barriers to composability in computational mathematics, and how they are being tackled. Of particular interest will be the exploitation of knowledge to leverage some of the barriers. feedback from neighbor fields (proofs, data, knowledge) will be most welcome.

A collaborative document

This document, hosted on:, benefited from edits and comments from the participants of the workshop, including:

Composability for Math software?

For the sake of simplicity, we will mostly focus on two aspects of composability: the ability to transfer data and run procedures across “systems” (two different software, two instances of the same software on different machines, two libraries within a system, …).

Data transfers

Procedure calls

Barriers faced by the computational pure maths community?

Semantic barriers

The good news

We can afford not to be completely formal; best effort is usually ok

Social barriers

Technical barriers


Knowledge for in-system modularity

Knowledge for cross-system modularity

A tension when (attempting to) modularize large systems

Open discussion

Appendix: some case studies and tentative solutions


After twenty years, little adoption

The Math-in-the-Middle approach

Categories in GAP, Axiom, MuPAD, SageMath

Case Study: libsemigroups:, a library for computing with semigroups

Author: James B. Mitchel et al.

Case Study: the Sage / GAP interface