# allMinors -- returns all minors of one matroid in another

## Synopsis

• Usage:
allMinors(M, N)
• Inputs:
• M, , the ambient matroid
• N, , the candidate minor
• Outputs:
• a list, of pairs (S, T), such that M / S \ T is isomorphic to N

## Description

This method returns a list of all possible ways to realize N as a minor of M. The output is a list of pairs (S, T) of subsets of the ground set of M such that minor(M, S, T) is isomorphic to N.

In fact, S will be an independent subset of M, of size = rank M - rank N, and T will be a coindependent subset of M, of size = #((M/S).groundSet) - #N.groundSet, which is disjoint from S.

The output of this method should be the empty list iff the output of hasMinor is false (for the same input).

 i1 : V = specificMatroid "vamos" o1 = a matroid of rank 4 on 8 elements o1 : Matroid i2 : U25 = uniformMatroid(2,5) o2 = a matroid of rank 2 on 5 elements o2 : Matroid i3 : elapsedTime L = allMinors(V, U25); -- 0.04284 seconds elapsed i4 : #L o4 = 64 i5 : netList L_{0..4} +----------+-------+ o5 = |set {0, 1}|set {3}| +----------+-------+ |set {0, 1}|set {2}| +----------+-------+ |set {0, 2}|set {3}| +----------+-------+ |set {0, 2}|set {1}| +----------+-------+ |set {0, 4}|set {3}| +----------+-------+ i6 : all(L, pair -> areIsomorphic(U25, minor(V, pair#0, pair#1))) o6 = true

• minor -- minor of matroid
• hasMinor -- whether a matroid has a given minor

## Ways to use allMinors :

• "allMinors(Matroid,Matroid)"

## For the programmer

The object allMinors is .