The following code finds the 16 possible betti tables.
i1 : GetInv = (d,k,n)->(R=ZZ/2[x_1..x_k];
quartics=super basis(d,R);
MonList=first entries quartics;
L=subsets(MonList,n);
J=apply(L, j->(F=sum j;
InvSysF=ideal fromDual F;
Idegs=degrees source mingens InvSysF;
if (not ((member({1},Idegs)))) then minimalBetti InvSysF));
Jlist = drop(unique J,1); --get unique betti table, drop empty table from list
netList pack(4,Jlist)) --format output to look nice
o1 = GetInv
o1 : FunctionClosure
|
i2 : GetInv(4,4,2)
+-------------------+-----------------+-----------------+-----------------+
| 0 1 2 3 4 | 0 1 2 3 4| 0 1 2 3 4| 0 1 2 3 4|
o2 = |total: 1 9 16 9 1 |total: 1 6 10 6 1|total: 1 7 12 7 1|total: 1 9 16 9 1|
| 0: 1 . . . . | 0: 1 . . . .| 0: 1 . . . .| 0: 1 . . . .|
| 1: . 6 8 3 . | 1: . 5 5 . .| 1: . 4 3 . .| 1: . 4 4 1 .|
| 2: . . . . . | 2: . 1 . 1 .| 2: . 3 6 3 .| 2: . 4 8 4 .|
| 3: . 3 8 6 . | 3: . . 5 5 .| 3: . . 3 4 .| 3: . 1 4 4 .|
| 4: . . . . 1 | 4: . . . . 1| 4: . . . . 1| 4: . . . . 1|
+-------------------+-----------------+-----------------+-----------------+
| 0 1 2 3 4 | 0 1 2 3 4| 0 1 2 3 4| 0 1 2 3 4 |
|total: 1 6 10 6 1 |total: 1 9 16 9 1|total: 1 7 12 7 1|total: 1 4 6 4 1 |
| 0: 1 . . . . | 0: 1 . . . .| 0: 1 . . . .| 0: 1 . . . . |
| 1: . 4 2 . . | 1: . 3 2 . .| 1: . 3 . . .| 1: . 4 . . . |
| 2: . 2 6 2 . | 2: . 6 12 6 .| 2: . 4 12 4 .| 2: . . 6 . . |
| 3: . . 2 4 . | 3: . . 2 3 .| 3: . . . 3 .| 3: . . . 4 . |
| 4: . . . . 1 | 4: . . . . 1| 4: . . . . 1| 4: . . . . 1 |
+-------------------+-----------------+-----------------+-----------------+
| 0 1 2 3 4| 0 1 2 3 4| 0 1 2 3 4| |
|total: 1 10 18 10 1|total: 1 7 12 7 1|total: 1 9 16 9 1| |
| 0: 1 . . . .| 0: 1 . . . .| 0: 1 . . . .| |
| 1: . 2 . . .| 1: . 5 5 1 .| 1: . 5 6 2 .| |
| 2: . 8 18 8 .| 2: . 1 2 1 .| 2: . 2 4 2 .| |
| 3: . . . 2 .| 3: . 1 5 5 .| 3: . 2 6 5 .| |
| 4: . . . . 1| 4: . . . . 1| 4: . . . . 1| |
+-------------------+-----------------+-----------------+-----------------+
|
Get inverse system of all degree d polynomials in k variables, by taking sums of n monomials. By taking sufficiently many monomials we'll get everything. Work over Z/2 for speed, experiments suggest that even over Z/2 we get all betti tables. If inverse system has a linear generator, ignore it. Pack results using netlist for pretty display. For k=4=d, we get 16 betti tables by using n=4 terms.
A stable of 16 examples, one for each of the betti tables
i3 : R=ZZ/101[x_1..x_4]; |
i4 : IdealList={
{x_2*x_4, x_1*x_4, x_1*x_2^2+x_3*x_4^2-x_4^3, x_1^2, x_2^3, x_3^2},
{x_2*x_3, x_1*x_3, x_2*x_4^2, x_1*x_4^2, x_1*x_2^2-x_3*x_4^2, x_3*x_4^3-x_4^4, x_1^2, x_2^3, x_3^2},
{x_2*x_4, x_1*x_4, x_3^2*x_4, x_1*x_2*x_3+x_3*x_4^2-x_4^3, x_1^2, x_2^2, x_3^3},
{x_2*x_4^2, x_1*x_4^2, x_1*x_2*x_4+x_3*x_4^2-x_4^3, x_1*x_2*x_3-x_3*x_4^2, x_1^2, x_2^2, x_3^2},
{x_2*x_3, x_1*x_3, x_1*x_2-x_3*x_4, x_3*x_4^3-x_4^4, x_2*x_4^3, x_1*x_4^3, x_1^2, x_2^2, x_3^2},
{x_2*x_4, x_1*x_4, x_2*x_3, x_1*x_3, x_3*x_4^3-x_4^4, x_1^2*x_2^2-x_4^4, x_1^3, x_2^3, x_3^2},
{x_2*x_3, x_1*x_3, x_2*x_4^2, x_1*x_4^2, x_3^2*x_4-x_4^3, x_1*x_2^2-x_4^3, x_1^2, x_2^3, x_3^3},
{x_2*x_4^2, x_1*x_4^2, x_3^2*x_4-x_4^3, x_1*x_2*x_4-x_3*x_4^2, x_2*x_3^2, x_1*x_3^2, x_1*x_2*x_3-x_4^3, x_1^2, x_2^2, x_3^3},
{x_2*x_3, x_1*x_3, x_1*x_2-x_3^2, x_3^2*x_4-x_4^3, x_1^2, x_2^2, x_3^3},
{x_3*x_4, x_2*x_4, x_1*x_4, x_1*x_2*x_3-x_3^3, x_3^4-x_4^4, x_1^2, x_2^2},
{x_1*x_4, x_3^2*x_4, x_2*x_3*x_4-x_4^3, x_1*x_3^2-x_3*x_4^2, x_1*x_2*x_3-x_2*x_4^2, x_1^2, x_2^2, x_3^3},
{x_1*x_4, x_1*x_3, x_3*x_4^2, x_2*x_4^2, x_2^2*x_4, x_2*x_3^2-x_4^3, x_2^2*x_3, x_1*x_2^2-x_3^2*x_4, x_1^2, x_2^4, x_3^3},
{x_3*x_4, x_2^2*x_4, x_1^2*x_4, x_2*x_3^2, x_1*x_3^2-x_2*x_4^2, x_2^2*x_3-x_1*x_4^2, x_1*x_2*x_3, x_2^3-x_1^2*x_3, x_1*x_2^2, x_1^2*x_2, x_1^3, x_2^4, x_3^3, x_4^3},
{x_3*x_4 , x_2^2*x_4, x_3^3-x_1*x_2*x_4, x_2*x_3^2, x_2^2*x_3-x_1^2*x_4, x_1*x_2*x_3, x_1^2*x_3, x_2^3-x_1*x_3^2, x_1*x_2^2, x_1^3, x_2^4, x_3^4, x_4^2},
{x_3*x_4^2, x_2*x_4^2, x_1*x_4^2, x_3^2*x_4,x_2^2*x_4, x_1^2*x_4, x_3^3-x_1*x_2*x_4, x_2*x_3^2, x_1*x_3^2, x_2^2*x_3, x_1*x_2*x_3-x_4^3, x_1^2*x_3, x_2^3-x_1*x_3*x_4, x_1*x_2^2, x_1^2*x_2,x_1^3-x_2*x_3*x_4},
{x_1^2,x_2^2,x_3^2,x_4^2}};
|
Display in a nice format
i5 : netList(pack(4,apply(IdealList,i->minimalBetti ideal i)))
+-------------------+-------------------+-------------------+-------------------+
| 0 1 2 3 4 | 0 1 2 3 4 | 0 1 2 3 4 | 0 1 2 3 4 |
o5 = |total: 1 6 10 6 1 |total: 1 9 16 9 1 |total: 1 7 12 7 1 |total: 1 7 12 7 1 |
| 0: 1 . . . . | 0: 1 . . . . | 0: 1 . . . . | 0: 1 . . . . |
| 1: . 4 2 . . | 1: . 4 4 1 . | 1: . 4 3 . . | 1: . 3 . . . |
| 2: . 2 6 2 . | 2: . 4 8 4 . | 2: . 3 6 3 . | 2: . 4 12 4 . |
| 3: . . 2 4 . | 3: . 1 4 4 . | 3: . . 3 4 . | 3: . . . 3 . |
| 4: . . . . 1 | 4: . . . . 1 | 4: . . . . 1 | 4: . . . . 1 |
+-------------------+-------------------+-------------------+-------------------+
| 0 1 2 3 4 | 0 1 2 3 4 | 0 1 2 3 4 | 0 1 2 3 4|
|total: 1 9 16 9 1 |total: 1 9 16 9 1 |total: 1 9 16 9 1 |total: 1 10 18 10 1|
| 0: 1 . . . . | 0: 1 . . . . | 0: 1 . . . . | 0: 1 . . . .|
| 1: . 6 8 3 . | 1: . 5 6 2 . | 1: . 3 2 . . | 1: . 2 . . .|
| 2: . . . . . | 2: . 2 4 2 . | 2: . 6 12 6 . | 2: . 8 18 8 .|
| 3: . 3 8 6 . | 3: . 2 6 5 . | 3: . . 2 3 . | 3: . . . 2 .|
| 4: . . . . 1 | 4: . . . . 1 | 4: . . . . 1 | 4: . . . . 1|
+-------------------+-------------------+-------------------+-------------------+
| 0 1 2 3 4 | 0 1 2 3 4 | 0 1 2 3 4 | 0 1 2 3 4|
|total: 1 6 10 6 1 |total: 1 7 12 7 1 |total: 1 8 14 8 1 |total: 1 11 20 11 1|
| 0: 1 . . . . | 0: 1 . . . . | 0: 1 . . . . | 0: 1 . . . .|
| 1: . 5 5 . . | 1: . 5 5 1 . | 1: . 3 1 . . | 1: . 3 3 1 .|
| 2: . 1 . 1 . | 2: . 1 2 1 . | 2: . 5 12 5 . | 2: . 7 14 7 .|
| 3: . . 5 5 . | 3: . 1 5 5 . | 3: . . 1 3 . | 3: . 1 3 3 .|
| 4: . . . . 1 | 4: . . . . 1 | 4: . . . . 1 | 4: . . . . 1|
+-------------------+-------------------+-------------------+-------------------+
| 0 1 2 3 4| 0 1 2 3 4| 0 1 2 3 4| 0 1 2 3 4 |
|total: 1 13 24 13 1|total: 1 11 20 11 1|total: 1 16 30 16 1|total: 1 4 6 4 1 |
| 0: 1 . . . .| 0: 1 . . . .| 0: 1 . . . .| 0: 1 . . . . |
| 1: . 1 . . .| 1: . 2 1 . .| 1: . . . . .| 1: . 4 . . . |
| 2: . 12 24 12 .| 2: . 9 18 9 .| 2: . 16 30 16 .| 2: . . 6 . . |
| 3: . . . 1 .| 3: . . 1 2 .| 3: . . . . .| 3: . . . 4 . |
| 4: . . . . 1| 4: . . . . 1| 4: . . . . 1| 4: . . . . 1 |
+-------------------+-------------------+-------------------+-------------------+
|
i6 : Qs = apply(IdealList, I -> first flatten entries inverseSystem(5, ideal I))
2 3 4 2 3 4 2
o6 = {- 50x x x + 17x x - 21x , - 50x x x + 17x x - 21x , - 50x x x +
1 2 3 3 4 4 1 2 4 3 4 4 1 2 3
------------------------------------------------------------------------
3 4 3 4 2 3 4
17x x - 21x , x x x x + 17x x - 21x , - 50x x x + 17x x - 21x , -
3 4 4 1 2 3 4 3 4 4 1 2 4 3 4 4
------------------------------------------------------------------------
2 2 3 4 2 2 2 4 2 2
25x x + 17x x - 21x , - 50x x x - 25x x - 21x , x x x x - 25x x -
1 2 3 4 4 1 2 4 3 4 4 1 2 3 4 3 4
------------------------------------------------------------------------
4 2 2 2 4 2 4 4 2
21x , - 50x x x - 25x x - 21x , - 50x x x - 21x - 21x , - 50x x x -
4 1 2 4 3 4 4 1 2 3 3 4 1 2 3
------------------------------------------------------------------------
2 4 3 2 4 3 2 2 2
50x x x - 21x , 17x x - 50x x x - 21x , 17x x - 25x x - 50x x x ,
2 3 4 4 1 2 2 3 4 4 2 3 1 3 1 2 4
------------------------------------------------------------------------
3 3 2 4 4 4 4
17x x + 17x x - 50x x x , - 21x - 21x - 21x + x x x x - 21x ,
2 3 1 3 1 2 4 1 2 3 1 2 3 4 4
------------------------------------------------------------------------
x x x x }
1 2 3 4
o6 : List
|
i7 : for F in Qs list quarticType F
o7 = {[420], [441a], [430], [300ab], [683], [562], [320], [200], [550],
------------------------------------------------------------------------
[551], [310], [331], [100], [210], [000], [400]}
o7 : List
|