Code

Some of my research has involved writing (and running) computer code provided here.

Computing excluded minors for classes of matroids representable over partial fields

The following SageMath code was used in this paper (joint with Rudi Pendavingh). Some of this code is not written by me; in particular, thanks to Rudi Pendavingh for the Tutte Group code, and the DY() routine in the Delta-Y tools code is from the technical report "Computer-verification of the structure of some classes of fragile matroids". An overview of some of the functionality of the code:

  • Matroid tools: A MatroidIsomorphismClass class, a (potentially) faster version of get_nonisomorphic_matroids() (depending on the matroids under consideration), and routines to load Mayhew and Royle's catalog and look up the "catalog ID" for a matroid on at most 9 elements.
  • Delta-Y tools: ΔY/YΔ exchanges on triangles/triads (both for LinearMatroids and abstract Matroids), or the generalised version (a.k.a. segment-cosegment exchange), and find ΔY equivalence classes (optionally, dual-closed).
  • Circuit-hyperplane tools: get circuit-hyperplanes or free bases, relax a circuit-hyperplane, tighten a free basis.
  • Representation tools: check if a given matrix representation for a matroid is valid (or obtain a certificate that it is not), find all subdeterminants of a matrix.
  • Excluded-minor generation: generate matroids representable over a partial field up to a certain size, find all excluded minors up to a certain size, along with many options for optimisation (orderly algorithms, splicing, linear homomorphisms, etc. – more details are given in the paper). Requires Matroid tools.
  • Interesting matroids: definitions of some matroids of interest not found in sage.named_matroids. In particular, known excluded minors for dyadic, 2-regular, K2-representable, P4-representable, and golden-mean matroids appear here.
  • Tutte group: calculate the universal partial field of a matroid.

The excluded minors for GF(5)-representable matroids on ten elements

The above SageMath code was also used for this paper (see also the associated blog post). Here we additionally provide: