There was a bug in my code: I don't need to test isomorphism between the matroid and the representation, I only need to test equality (with the vector matroid), provided I make sure the columns are in the right order.
I would still like to know whether, when we substitute non-zero elements of Fq for the *s in the partial representation, we are guaranteed to get all the projective equivalence classes of representations, and that this is true regardless of which basis we start with.
I'm trying to write code to find representations of matroids over Fq, using the method described in Oxley, Matroid Theory (2nd ed), p184-5.
Consider the matroid F7- whose geometric representation consists of the lines 126, 135, 147, 234, 257, 367 (ie the Fano plane with a line removed).
Relative to the basis 123, this has fundamental-circuit incidence matrix (partial representation)
0111 1011 1101
From the cycle matroid of the associated bipartite graph, we see that candidate representations will be of the form
100 0111 010 101* 001 1*0*
where we can substitute independent non-zero elements of Fq for the *s.
If I try candidate substitions for F3, I find that 4 of the possible substitutions give vector matroids that are isomorphic to F7-.
Now, suppose I do the same for the basis 145. I get
100 1111 010 10** 001 1**0
When I try substituting in elements of F3, I find that only 2 of the possible substitutions are isomorphic to F7-.
This is unexpected, because my understanding was that the different valid substitutions are representatives of the different projective equivalence classes of representations (Theorem 6.4.7, Oxley p185)
Have I got a bug in my code, or have I misunderstood?
Could it happen that for some choice of basis, there would be no valid substitutions, even though the matroid is representable using a different choice of basis?