It is known that uniform (resp. paving) matroids correspond to MDS (resp. “almost MDS” codes). This post explains this connection.

An MDS code is an linear error correcting block code which meets the Singleton bound, . A uniform matroid is a matroid for which all circuits are of size , where is the rank of *M*. Recall, a *circuit* in a matroid *M=(E,J)* is a minimal dependent subset of *E* — that is, a dependent set whose proper subsets are all independent (i.e., all in *J*).

Consider a linear code whose check matrix is an matrix . The vector matroid *M=M[H]* is a matroid for which the smallest sized dependency relation among the columns of *H* is determined by the check relations , where is a codeword (in *C* which has minimum dimension *d*). Such a minimum dependency relation of *H* corresponds to a circuit of *M=M[H]*.

I’m surprised SAGE doesn’t have any matroid routines. I tried yours, but after loading it and running

A = matrix(GF(2), [[1,0,0,1,1,0],[0,1,0,1,0,1],[0,0,1,0,1,1]])

M = vector_matroid(A)

print M

I get

Traceback (click to the left of this block for traceback)

…

TypeError: ‘list’ object is not callable

Or

M.rank()

Traceback (click to the left of this block for traceback)

…

TypeError: ‘list’ object is not callable

This on sage 4.4.3

I get

sage: attach “/Users/davidjoyner/sagefiles/matroid_class.sage”

sage: A = matrix(GF(2), [[1,0,0,1,1,0],[0,1,0,1,0,1],[0,0,1,0,1,1]])

sage: M = vector_matroid(A)

sage: print M

Matroid on base set [0, 1, 2, 3, 4, 5] of rank 3

sage: M.rank()

3

This is using 4.5.1 and the matroid code at

http://boxen.math.washington.edu/home/wdj/sagefiles/matroid_class.sage

Thank you, I’ll wait a coupl of days to be at home and tryit, meanwhile I’m stuck with 4.4.3 on sagenb.com