# 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.114265 seconds elapsed i4 : #L o4 = 64 i5 : netList L_{0..4} +----------+-------+ o5 = |set {3, 5}|set {2}| +----------+-------+ |set {3, 5}|set {4}| +----------+-------+ |set {3, 6}|set {2}| +----------+-------+ |set {3, 6}|set {7}| +----------+-------+ |set {5, 6}|set {0}| +----------+-------+ i6 : all(L, pair -> areIsomorphic(U25, minor(V, pair#0, pair#1))) o6 = true