Two matroids are isomorphic if there is a bijection between their ground sets which induces a bijection between bases, or equivalently, circuits (of which there are often fewer than bases).
This method first runs quickIsomorphismTest, then isomorphism if the tests are inconclusive.
i1 : M = matroid({a,b,c},{{a,b},{a,c},{b,c}}) o1 = a matroid of rank 2 on 3 elements o1 : Matroid |
i2 : areIsomorphic(M, uniformMatroid(2,3)) Matroids are equal o2 = true |
i3 : M1 = matroid({a,b,c},{{a,b},{a,c}}) o3 = a matroid of rank 2 on 3 elements o3 : Matroid |
i4 : areIsomorphic(M, M1) o4 = false |
Isomorphism of matroids should not be confused with equality: cf. == for more details.