This method computes all isomorphisms between M and N: in particular, this method returns an empty list iff M and N are not isomorphic.
i1 : M = matroid({a,b,c},{{a,b},{a,c}}) o1 = a matroid of rank 2 on 3 elements o1 : Matroid |
i2 : isomorphism(M, uniformMatroid(2,3)) -- not isomorphic o2 = {} o2 : List |
i3 : (M5, M6) = (5,6)/completeGraph/matroid o3 = (a matroid of rank 4 on 10 elements, a matroid of rank 5 on 15 elements) o3 : Sequence |
i4 : minorM6 = minor(M6, set{8}, set{4,5,6,7}) o4 = a matroid of rank 4 on 10 elements o4 : Matroid |
i5 : time #isomorphism(M5, minorM6) -- used 0.520643 seconds o5 = 120 |
We can verify that the Fano matroid (which is the projective plane over the field of two elements) has automorphism group of order 168 (and even give an explicit permutation representation for this group PGL(3, F2) inside the symmetric group S7):
i6 : F7 = specificMatroids "fano" o6 = a matroid of rank 3 on 7 elements o6 : Matroid |
i7 : time autF7 = isomorphism(F7, F7); -- output is a list of permutations -- used 0.0692923 seconds |
i8 : #autF7 o8 = 168 |