What is the smallest number \(n\) of atoms of a representable rank \(3\) matroid which is divisionally free but not inductively free?

The explanation of the question and the answer \(n = 14\) can be found in [BBJKL]. It turns out that there is exactly one representable matroid with \(14\) atoms having this property. Below we compute its moduli space of representations and prove that its fibers over \(\operatorname{Spec} \mathbb{Z}\) are inhabited in characteristics different from \(2\) and \(5\).

[BBJKL] Mohamed Barakat, Reimer Behrends, Christopher Jefferson, Lukas Kühne, and Martin Leuner. On the generation of rank :math:`3` simple matroids with an application to Terao’s freeness conjecture. (arXiv:1907.01073)

We start by loading the necessary packages:

[1]:
using CapAndHomalg
CapAndHomalg v1.0.0
Imported OSCAR's components GAP and Singular_jll
Type: ?CapAndHomalg for more information
[2]:
LoadPackage( "MatroidGeneration" )

Construct the matroid out of the list of coatoms, i.e., the flats of rank \(n-1 = 3-1 = 2\), see [BBJKL, Example 1.3].

[3]:
coatoms =
  [ [ 1, 2, 3, 4, 5 ], [ 1, 6, 7, 8, 9 ],
    [ 1, 10, 11, 12 ], [ 2, 6, 10, 13 ], [ 2, 7, 11, 14 ], [ 3, 6, 12, 14 ], [ 3, 8, 11, 13 ], [ 4, 9, 10, 14 ],
    [ 4, 7, 13 ], [ 5, 7, 12 ], [ 5, 8, 10 ], [ 5, 9, 11 ], [ 5, 13, 14 ], [ 9, 12, 13 ],
    [ 1, 13 ], [ 1, 14 ], [ 2, 8 ], [ 2, 9 ], [ 2, 12 ], [ 3, 7 ], [ 3, 9 ], [ 3, 10 ],
    [ 4, 6 ], [ 4, 8 ], [ 4, 11 ], [ 4, 12 ], [ 5, 6 ], [ 6, 11 ], [ 7, 10 ], [ 8, 12 ], [ 8, 14 ] ];
[4]:
matroid = MatroidByCoatomsNC( 14, 3, ConvertJuliaToGAP( coatoms ) )
[4]:
GAP: <A matroid>

Define the ring of coefficients over which to define the moduli space of representations:

[5]:
 = HomalgRingOfIntegersInSingular( )
[5]:
GAP: Z
[6]:
SetInfoLevel( InfoWarning, 0 )

Compute the moduli space of representations:

[7]:
LoadPackage( "ZariskiFrames" )
[8]:
M = EquationsAndInequationsOfModuliSpaceOfMatroid( matroid,  );
[9]:
m = DistinguishedQuasiAffineSet( M )
[9]:
GAP: V_{Z[a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12]}( I ) \ V_{Z[a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12]}( J_1 ) \ .. \ V_{Z[a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12]}( J_199 )
[10]:
Display( m )
V( <-a1*a10-1,-a1*a5-a4,-a11+1,-a12+1,-a2*a5-a3,-a2*a9+a2-a8,-a3*a6+a3-a7,-a3-a10,-a5*a11-a4+a12,-a5*a6+a5*a8+a7-a9,-a5*a6+a7,-a5*a8+a9,-a7*a11+a6*a12-a6+a11,-a7*a8+a6*a9,-a7+1,-a8+1,-a8+a11,-a9*a11+a8*a12+a9-a12,a1*a4-a4*a11-a1*a12,a1*a5-a5*a11+a12,a2*a10-a10*a11+a12,a2*a4-a4*a6-a2*a7,a6*a10+a3-a7,a6*a10-a7-a10,a7-a12,a8*a10+a4-a9> ) \ V( <-a1*a10+a2*a10> ) \ V( <-a1*a10+a6*a10-a7> ) \ V( <-a1*a10+a8*a10-a9> ) \ V( <-a1*a10-a3> ) \ V( <-a1*a10-a4> ) \ V( <-a1*a12+a1-a11> ) \ V( <-a1*a12+a2*a12> ) \ V( <-a1*a3+a1> ) \ V( <-a1*a3+a2*a3> ) \ V( <-a1*a4+a1> ) \ V( <-a1*a4+a2*a4> ) \ V( <-a1*a5+a2*a5> ) \ V( <-a1*a5-1> ) \ V( <-a1*a5-a3> ) \ V( <-a1*a7+a1-a6> ) \ V( <-a1*a7+a2*a7> ) \ V( <-a1*a9+a1-a8> ) \ V( <-a1*a9+a2*a9> ) \ V( <-a1+a2> ) \ V( <-a10> ) \ V( <-a10*a11+a10+a12> ) \ V( <-a10*a11+a12> ) \ V( <-a10*a11+a12-1> ) \ V( <-a10*a11-a3+a12> ) \ V( <-a10*a11-a4+a12> ) \ V( <-a10-1> ) \ V( <-a11> ) \ V( <-a11-a12+1> ) \ V( <-a12> ) \ V( <-a2*a10+a6*a10-a7> ) \ V( <-a2*a10+a8*a10-a9> ) \ V( <-a2*a10-1> ) \ V( <-a2*a10-a3> ) \ V( <-a2*a10-a4> ) \ V( <-a2*a12+a2-a11> ) \ V( <-a2*a3+a2> ) \ V( <-a2*a4+a2> ) \ V( <-a2*a5-1> ) \ V( <-a2*a5-a4> ) \ V( <-a2*a7+a2-a6> ) \ V( <-a3> ) \ V( <-a3*a11> ) \ V( <-a3*a11+a11> ) \ V( <-a3*a11+a3-a12> ) \ V( <-a3*a6> ) \ V( <-a3*a6+a3*a11-a7*a11+a6*a12> ) \ V( <-a3*a6+a3*a8-a7*a8+a6*a9> ) \ V( <-a3*a6+a6> ) \ V( <-a3*a8> ) \ V( <-a3*a8+a3*a11-a9*a11+a8*a12> ) \ V( <-a3*a8+a3-a9> ) \ V( <-a3*a8+a8> ) \ V( <-a3+1> ) \ V( <-a3-a5> ) \ V( <-a4> ) \ V( <-a4*a11> ) \ V( <-a4*a11+a11> ) \ V( <-a4*a11+a4-a12> ) \ V( <-a4*a6> ) \ V( <-a4*a6+a4*a11-a7*a11+a6*a12> ) \ V( <-a4*a6+a4*a8-a7*a8+a6*a9> ) \ V( <-a4*a6+a4-a7> ) \ V( <-a4*a6+a6> ) \ V( <-a4*a8> ) \ V( <-a4*a8+a4*a11-a9*a11+a8*a12> ) \ V( <-a4*a8+a4-a9> ) \ V( <-a4*a8+a8> ) \ V( <-a4+1> ) \ V( <-a4-a10> ) \ V( <-a4-a5> ) \ V( <-a5> ) \ V( <-a5*a11+a12> ) \ V( <-a5*a11+a12-1> ) \ V( <-a5*a11+a5+a12> ) \ V( <-a5*a11-a3+a12> ) \ V( <-a5*a6+a5*a11+a7-a12> ) \ V( <-a5*a6+a5+a7> ) \ V( <-a5*a6+a7-1> ) \ V( <-a5*a6-a3+a7> ) \ V( <-a5*a6-a4+a7> ) \ V( <-a5*a8+a5*a11+a9-a12> ) \ V( <-a5*a8+a5+a9> ) \ V( <-a5*a8+a9-1> ) \ V( <-a5*a8-a3+a9> ) \ V( <-a5*a8-a4+a9> ) \ V( <-a5+a10> ) \ V( <-a5-1> ) \ V( <-a6> ) \ V( <-a6*a10+a8*a10+a7-a9> ) \ V( <-a6+1> ) \ V( <-a6+a11> ) \ V( <-a6+a8> ) \ V( <-a6-a7+1> ) \ V( <-a7> ) \ V( <-a7*a11+a6*a12> ) \ V( <-a7*a11+a6*a12+a7-a12> ) \ V( <-a7*a8+a6*a9+a7*a11-a9*a11-a6*a12+a8*a12> ) \ V( <-a7*a8+a6*a9+a7-a9> ) \ V( <-a7*a8+a6*a9-a6+a8> ) \ V( <-a8> ) \ V( <-a8-a9+1> ) \ V( <-a9> ) \ V( <-a9*a11+a8*a12> ) \ V( <-a9*a11+a8*a12-a8+a11> ) \ V( <-a9+1> ) \ V( <a1> ) \ V( <a1*a10> ) \ V( <a1*a10-a10> ) \ V( <a1*a10-a10*a11+a12> ) \ V( <a1*a12> ) \ V( <a1*a12-a12> ) \ V( <a1*a3> ) \ V( <a1*a3-a1*a4> ) \ V( <a1*a3-a3> ) \ V( <a1*a3-a3*a11-a1*a12> ) \ V( <a1*a3-a3*a6-a1*a7> ) \ V( <a1*a3-a3*a8-a1*a9> ) \ V( <a1*a4> ) \ V( <a1*a4-a4> ) \ V( <a1*a4-a4*a6-a1*a7> ) \ V( <a1*a4-a4*a8-a1*a9> ) \ V( <a1*a5> ) \ V( <a1*a5-a5> ) \ V( <a1*a5-a5*a6+a7> ) \ V( <a1*a5-a5*a8+a9> ) \ V( <a1*a7> ) \ V( <a1*a7-a7> ) \ V( <a1*a7-a7*a11-a1*a12+a6*a12> ) \ V( <a1*a7-a7*a8-a1*a9+a6*a9> ) \ V( <a1*a9> ) \ V( <a1*a9-a9> ) \ V( <a1*a9-a9*a11-a1*a12+a8*a12> ) \ V( <a1-1> ) \ V( <a1-a11> ) \ V( <a1-a6> ) \ V( <a1-a8> ) \ V( <a10> ) \ V( <a11> ) \ V( <a12> ) \ V( <a2> ) \ V( <a2*a10> ) \ V( <a2*a10-a10> ) \ V( <a2*a12> ) \ V( <a2*a12-a12> ) \ V( <a2*a3> ) \ V( <a2*a3-a2*a4> ) \ V( <a2*a3-a3> ) \ V( <a2*a3-a3*a11-a2*a12> ) \ V( <a2*a3-a3*a6-a2*a7> ) \ V( <a2*a3-a3*a8-a2*a9> ) \ V( <a2*a4> ) \ V( <a2*a4-a4> ) \ V( <a2*a4-a4*a11-a2*a12> ) \ V( <a2*a4-a4*a8-a2*a9> ) \ V( <a2*a5> ) \ V( <a2*a5-a5> ) \ V( <a2*a5-a5*a11+a12> ) \ V( <a2*a5-a5*a6+a7> ) \ V( <a2*a5-a5*a8+a9> ) \ V( <a2*a7> ) \ V( <a2*a7-a7> ) \ V( <a2*a7-a7*a11-a2*a12+a6*a12> ) \ V( <a2*a7-a7*a8-a2*a9+a6*a9> ) \ V( <a2*a9> ) \ V( <a2*a9-a9> ) \ V( <a2*a9-a9*a11-a2*a12+a8*a12> ) \ V( <a2-1> ) \ V( <a2-a11> ) \ V( <a2-a6> ) \ V( <a2-a8> ) \ V( <a3> ) \ V( <a3*a11-a4*a11> ) \ V( <a3*a6-a4*a6> ) \ V( <a3*a8-a4*a8> ) \ V( <a3-a12> ) \ V( <a3-a4> ) \ V( <a3-a7> ) \ V( <a3-a9> ) \ V( <a4> ) \ V( <a4\
-a12> ) \ V( <a4-a7> ) \ V( <a4-a9> ) \ V( <a5> ) \ V( <a5-a10> ) \ V( <a6> ) \ V( <a6*a10+a4-a7> ) \ V( <a6*a10-a10*a11-a7+a12> ) \ V( <a6*a10-a7> ) \ V( <a6*a10-a7+1> ) \ V( <a7> ) \ V( <a7-a9> ) \ V( <a8> ) \ V( <a8*a10+a3-a9> ) \ V( <a8*a10-a10*a11-a9+a12> ) \ V( <a8*a10-a9> ) \ V( <a8*a10-a9+1> ) \ V( <a8*a10-a9-a10> ) \ V( <a9> ) \ V( <a9-a12> )

The points of the above quasi-affine moduli space are admissible specializations of the following parametrized arrangement:

[11]:
arr = ParametrizedObject( m )
[11]:
GAP: <A vector matroid>
[12]:
Display( arr )
The vector matroid of this matrix over Z[a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12]:
1,0,1,1, 1, 0,1,1, 1, 0, 1, 1, 0,  1,
0,1,1,a1,a2,0,0,0, 0, 1, a6,a8,1,  a11,
0,0,0,0, 0, 1,1,a3,a4,a5,a7,a9,a10,a12

Embed the moduli space in a significantly smaller ambient affine space:

[13]:
e = EmbedInSmallerAmbientSpace( m )
[13]:
GAP: V_{Z[a9]}( I ) \ V_{Z[a9]}( J_1 ) \ V_{Z[a9]}( J_2 )
[14]:
Display( e )
V( <2*a9^2-2*a9+1> ) \ V( <5,a9+1> ) \ V( <5,a9-2> )

Show that the moduli space is in fact a distinguished quasi affine set, i.e., the difference of an affine set and a hypersurface:

[15]:
a = DistinguishedLocallyClosedPart( e )
[15]:
GAP: V_{Z[a9]}( I ) \ V_{Z[a9]}( J_1 ) \ V_{Z[a9]}( J_2 )
[16]:
Display( a )
V( <2*a9^2-2*a9+1> ) \ V( <3*a9-1> ) \ V( <a9+1> )

Rewrite the parametrized arrangement on the parameters of the new ambient affine space:

[17]:
arr = ParametrizedObject( e )
[17]:
GAP: <A vector matroid>
[18]:
Display( arr )
The vector matroid of this matrix over Z[a9]/( 2*a9^2-2*a9+1 ):
1,0,1,1,     1,   0,1,1,      1,    0, 1,      1, 0,     1,
0,1,1,2*a9-1,2*a9,0,0,0,      0,    1, -2*a9+2,1, 1,     1,
0,0,0,0,     0,   1,1,-2*a9+1,-a9+1,a9,1,      a9,2*a9-1,1

modulo [ 2*a9^2-2*a9+1 ]

Compute the characteristic set of the matroid, i.e., the projection of the moduli space on \(\operatorname{Spec} \mathbb{Z}\):

[19]:
charset = ConstructibleProjection( e )
[19]:
GAP: ( V_{Z}( I1 ) \ V_{Z}( J1_1 ) \ V_{Z}( J1_2 ) )
[20]:
Display( charset )
V( <> ) \ V( <2> ) \ V( <5> )

Construct points of the moduli space (they are arrangements in all characteristics apart from \(2\) and \(5\)):

[21]:
piter = PseudoIteratorOfClosedPoints( e )
[21]:
GAP: <iterator of closed points of V_{Z[a9]}( I ) \ V_{Z[a9]}( J_1 ) \ V_{Z[a9]}( J_2 )>
[22]:
p = NextIterator( piter )
[22]:
GAP: <A vector matroid>
[23]:
Display( p )
The vector matroid of this matrix over GF(3)[a9]/( a9^2-a9-1 ):
1,0,1,1,    1,  0,1,1,   1,    0, 1,   1, 0,    1,
0,1,1,-a9-1,-a9,0,0,0,   0,    1, a9-1,1, 1,    1,
0,0,0,0,    0,  1,1,a9+1,-a9+1,a9,1,   a9,-a9-1,1

modulo [ a9^2-a9-1 ]
[24]:
p = NextIterator( piter )
[24]:
GAP: <A vector matroid>
[25]:
Display( p )
The vector matroid of this matrix over GF(7)[a9]/( a9^2-a9-3 ):
1,0,1,1,     1,   0,1,1,      1,    0, 1,      1, 0,     1,
0,1,1,2*a9-1,2*a9,0,0,0,      0,    1, -2*a9+2,1, 1,     1,
0,0,0,0,     0,   1,1,-2*a9+1,-a9+1,a9,1,      a9,2*a9-1,1

modulo [ a9^2-a9-3 ]
[26]:
p = NextIterator( piter )
[26]:
GAP: <A vector matroid>
[27]:
Display( p )
The vector matroid of this matrix over GF(11)[a9]/( a9^2-a9-5 ):
1,0,1,1,     1,   0,1,1,      1,    0, 1,      1, 0,     1,
0,1,1,2*a9-1,2*a9,0,0,0,      0,    1, -2*a9+2,1, 1,     1,
0,0,0,0,     0,   1,1,-2*a9+1,-a9+1,a9,1,      a9,2*a9-1,1

modulo [ a9^2-a9-5 ]
[28]:
p = NextIterator( piter )
[28]:
GAP: <A vector matroid>
[29]:
Display( p )
The vector matroid of this matrix over GF(13):
1,0,1,1, 1, 0,1,1,1,0, 1,1, 0, 1,
0,1,1,-5,-4,0,0,0,0,1, 6,1, 1, 1,
0,0,0,0, 0, 1,1,5,3,-2,1,-2,-5,1
[30]:
p = NextIterator( piter )
[30]:
GAP: <A vector matroid>
[31]:
Display( p )
The vector matroid of this matrix over GF(17):
1,0,1,1, 1, 0,1,1,1, 0,1,1,0, 1,
0,1,1,-4,-3,0,0,0,0, 1,5,1,1, 1,
0,0,0,0, 0, 1,1,4,-6,7,1,7,-4,1