A matroid is simple if it has no loops or parallel classes; equivalently, it has no circuits of size <= 2.
Among the class of simple matroids, the lattice of flats is a complete invariant. Every matroid has a unique simplification which has the same lattice of flats.
i1 : isSimple matroid completeGraph 3 o1 = true |
i2 : M = matroid(completeGraph 3, ParallelEdges => {set{0,1},set{0,1},set{1,2}}, Loops => {0,2}) o2 = a matroid of rank 2 on 8 elements o2 : Matroid |
i3 : isSimple M o3 = false |
i4 : S = simpleMatroid M o4 = a matroid of rank 2 on 3 elements o4 : Matroid |
i5 : isSimple S o5 = true |
i6 : latticeOfFlats M == latticeOfFlats S o6 = true |
Note that the dual of a simple matroid may not be simple:
i7 : U = uniformMatroid(2, 2) o7 = a matroid of rank 2 on 2 elements o7 : Matroid |
i8 : isSimple U o8 = true |
i9 : isSimple dual U o9 = false |