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.0709922 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 |
The object allMinors is a method function.