# isSimple(Matroid) -- whether a matroid is simple

## Synopsis

• Function: isSimple
• Usage:
isSimple M
• Inputs:
• M, ,
• Outputs:
• , whether M is a simple matroid

## Description

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