N=Matroid(reduced_matrix=matrix(GF(2),[[1,1,0,0,1,0],[1,0,1,0,1,0],[1,0,0,1,1,0],[1,1,0,0,0,1],[1,0,1,0,0,1],[1,0,0,1,0,1]]))
-4449946732485601636 -7774345140401701701 True
BM = BasisMatroid(Mnew) print BM._weak_invariant() print BM
-4449946732485601636 Matroid of rank 6 on 12 elements with 432 basesBN = BasisMatroid(Nnew) print BN._weak_invariant() print BN-7774345140401701701 Matroid of rank 6 on 12 elements with 432 basesBM.is_isomorphic(BN)FalseSo it seems is_isomorphic() gives false positives for regular matroids. To show they really are different:len(Mnew.circuits()) - len(Nnew.circuits())-7This means my earlier advice, of going to BinaryMatroid instances for isomorphism tests, would circumvent the bug.--Stefan.
Mnew._projection()
[ 216 72 72 72 36 -36 36 -36 -36 -36 108 -108]
[ 72 216 72 72 -108 108 36 -36 -36 -36 -36 36]
[ 72 72 216 72 36 -36 36 -36 108 108 -36 36]
[ 72 72 72 216 36 -36 -108 108 -36 -36 -36 36]
[ 36 -108 36 36 216 -108 -36 -72 -72 36 36 72]
[ -36 108 -36 -36 -108 216 -72 -36 -36 72 72 36]
[ 36 36 36 -108 -36 -72 216 -108 36 -72 -72 -36]
[ -36 -36 -36 108 -72 -36 -108 216 72 -36 -36 -72]
[ -36 -36 108 -36 -72 -36 36 72 216 108 -36 -72]
[ -36 -36 108 -36 36 72 -72 -36 108 216 72 36]
[ 108 -36 -36 -36 36 72 -72 -36 -36 72 216 -108]
[-108 36 36 36 72 36 -36 -72 -72 36 -108 216]
Nnew._projection()
[ 216 -72 -72 -108 36 36 36 108 -36 -36 72 -36]
[ -72 216 -72 36 -108 36 36 -36 108 -36 72 -36]
[ -72 -72 216 36 36 -108 36 -36 -36 108 72 -36]
[-108 36 36 216 -72 -72 36 108 -36 -36 -36 72]
[ 36 -108 36 -72 216 -72 36 -36 108 -36 -36 72]
[ 36 36 -108 -72 -72 216 36 -36 -36 108 -36 72]
[ 36 36 36 36 36 36 216 72 72 72 108 108]
[ 108 -36 -36 108 -36 -36 72 216 -72 -72 36 36]
[ -36 108 -36 -36 108 -36 72 -72 216 -72 36 36]
[ -36 -36 108 -36 -36 108 72 -72 -72 216 36 36]
[ 72 72 72 -36 -36 -36 108 36 36 36 216 -108]
[ -36 -36 -36 72 72 72 108 36 36 36 -108 216]