One useful way to generate quartic polynomials is as a sum of 4th powers of linear forms. This function creates an linear form from each column of the matrix $M$, and then sums their 4th powers.
i1 : S = ZZ/101[a..d] o1 = S o1 : PolynomialRing |
i2 : M = transpose matrix(S, {{1,0,0,0}, {0,1,0,0}})
o2 = | 1 0 |
| 0 1 |
| 0 0 |
| 0 0 |
4 2
o2 : Matrix S <--- S
|
i3 : quartic M
4 4
o3 = a + b
o3 : S
|
i4 : H = bettiStrataExamples S
o4 = HashTable{[000] => {| 1 0 0 0 1 22 2 -37 -18 32 |, 10 general points} }
| 0 1 0 0 1 -47 29 -13 39 -9 |
| 0 0 1 0 1 -23 -47 -10 27 -32 |
| 0 0 0 1 1 -7 15 30 -22 -20 |
[100] => {| 1 0 0 0 1 39 48 -38 46 |, 9 general points}
| 0 1 0 0 1 43 36 33 -28 |
| 0 0 1 0 1 -17 35 40 1 |
| 0 0 0 1 1 -11 11 11 -3 |
[200] => {| 1 0 0 0 1 16 -48 -16 |, 8 general points}
| 0 1 0 0 1 22 -47 7 |
| 0 0 1 0 1 45 47 15 |
| 0 0 0 1 1 -34 19 -23 |
[210] => {| 1 0 0 0 1 1 0 1 |, 8 points with 6 in a plane, or five in a plane and three in a line}
| 0 1 0 0 1 0 1 1 |
| 0 0 1 0 0 1 1 1 |
| 0 0 0 1 0 0 0 1 |
[300a] => {| 1 1 1 1 1 1 1 1 |, 8 points which forms a CI}
| 2 2 2 2 -2 -2 -2 -2 |
| 3 3 -3 -3 3 3 -3 -3 |
| 1 -1 1 -1 1 -1 1 -1 |
[300b] => {| 1 0 0 0 1 19 -8 |, 7 general points}
| 0 1 0 0 1 19 -22 |
| 0 0 1 0 1 -10 -29 |
| 0 0 0 1 1 -29 -24 |
[300c] => {| 1 0 1 -38 34 -18 -28 |, 7 points, 3 on a line}
| 0 1 1 -16 19 -13 -47 |
| 0 0 0 39 -47 -43 38 |
| 0 0 0 21 -39 -15 2 |
[310] => {| 1 0 0 0 1 1 1 |, 7 points with 5 on a plane}
| 0 1 0 0 1 1 0 |
| 0 0 1 0 1 1 0 |
| 0 0 0 1 0 1 1 |
[320] => {| 1 0 0 0 1 1 1 |, 7 points on a twisted cubic curve}
| 0 1 0 0 1 0 0 |
| 0 0 1 0 0 1 0 |
| 0 0 0 1 0 0 1 |
[331] => {| 1 0 0 0 24 -15 33 |, 7 points with 6 on a plane}
| 0 1 0 0 -30 39 -49 |
| 0 0 1 0 -48 0 -33 |
| 0 0 0 1 0 0 0 |
[420] => {| 1 0 0 0 1 24 |, 6 general points}
| 0 1 0 0 1 -36 |
| 0 0 1 0 1 -30 |
| 0 0 0 1 1 -29 |
[430] => {| 1 0 0 0 1 1 |, 6 points, 3 on a line}
| 0 1 0 0 1 0 |
| 0 0 1 0 0 1 |
| 0 0 0 1 0 1 |
[441a] => {| 1 0 0 0 1 1 |, 6 points, 5 on a plane}
| 0 1 0 0 1 0 |
| 0 0 1 0 0 1 |
| 0 0 0 1 0 0 |
[441b] => {| 1 0 0 0 1 0 |, 6 points, 3 each on 2 skew lines}
| 0 1 0 0 1 0 |
| 0 0 1 0 0 1 |
| 0 0 0 1 0 1 |
[550] => {| 1 0 0 0 1 |, 5 general points}
| 0 1 0 0 1 |
| 0 0 1 0 1 |
| 0 0 0 1 1 |
[551] => {| 1 0 0 0 1 |, 5 points, 4 on a plane}
| 0 1 0 0 1 |
| 0 0 1 0 1 |
| 0 0 0 1 0 |
[562] => {| 1 0 0 0 1 |, 5 points, 3 on a line}
| 0 1 0 0 1 |
| 0 0 1 0 0 |
| 0 0 0 1 0 |
[683] => {| 1 0 0 0 |, 4 general points}
| 0 1 0 0 |
| 0 0 1 0 |
| 0 0 0 1 |
o4 : HashTable
|
i5 : keys H
o5 = {[310], [420], [200], [210], [331], [320], [683], [100], [562], [551],
------------------------------------------------------------------------
[430], [550], [000], [441b], [441a], [300c], [300b], [300a]}
o5 : List
|
i6 : M = first H#"[420]"
o6 = | 1 0 0 0 1 24 |
| 0 1 0 0 1 -36 |
| 0 0 1 0 1 -30 |
| 0 0 0 1 1 -29 |
4 6
o6 : Matrix S <--- S
|
i7 : F = quartic M
4 3 2 2 3 4 3 2 2
o7 = - 7a - 43a b + 36a b - 26a*b - 12b + 49a c - 39a b*c + 38a*b c -
------------------------------------------------------------------------
3 2 2 2 2 3 3 4 3 2 2
9b c + 10a c + 15b c - 33a*c + 9b*c - 18c - 3a d - 7a b*d - 10a*b d
------------------------------------------------------------------------
3 2 2 2 2 3
+ 15b d + 13a c*d + 21a*b*c*d - 11b c*d + 36a*c d - 24b*c d - 6c d +
------------------------------------------------------------------------
2 2 2 2 2 2 2 2 2 3
25a d - 45a*b*d - 27b d + 15a*c*d - 43b*c*d + 42c d + 42a*d +
------------------------------------------------------------------------
3 3 4
48b*d + 7c*d - 20d
o7 : S
|
This is a convenience function. This is basically short hand for the following (which computes the linear forms corresponding to each column of $M$, and then sums their 4th powers.
i8 : lins := flatten entries((vars S) * M)
o8 = {a, b, c, d, a + b + c + d, 24a - 36b - 30c - 29d}
o8 : List
|
i9 : F1 = sum for g in lins list g^4
4 3 2 2 3 4 3 2 2
o9 = - 7a - 43a b + 36a b - 26a*b - 12b + 49a c - 39a b*c + 38a*b c -
------------------------------------------------------------------------
3 2 2 2 2 3 3 4 3 2 2
9b c + 10a c + 15b c - 33a*c + 9b*c - 18c - 3a d - 7a b*d - 10a*b d
------------------------------------------------------------------------
3 2 2 2 2 3
+ 15b d + 13a c*d + 21a*b*c*d - 11b c*d + 36a*c d - 24b*c d - 6c d +
------------------------------------------------------------------------
2 2 2 2 2 2 2 2 2 3
25a d - 45a*b*d - 27b d + 15a*c*d - 43b*c*d + 42c d + 42a*d +
------------------------------------------------------------------------
3 3 4
48b*d + 7c*d - 20d
o9 : S
|
i10 : F1 == F o10 = true |
i11 : I = inverseSystem F
o11 = ideal (a*d + 9b*d - 10c*d, b*c - 43b*d + 42c*d, a*c + 37b*d - 38c*d,
-----------------------------------------------------------------------
3 3 2 2 3 3 3
a*b + 3b*d - 4c*d, b + 11c - 21b*d - 31c*d - 21d , a - 10c -
-----------------------------------------------------------------------
2 2 3
33b*d - 21c*d + 22d )
o11 : Ideal of S
|
i12 : (degree I, codim I, regularity(S^1/I)) o12 = (16, 4, 4) o12 : Sequence |
i13 : minimalBetti I
0 1 2 3 4
o13 = total: 1 6 10 6 1
0: 1 . . . .
1: . 4 2 . .
2: . 2 6 2 .
3: . . 2 4 .
4: . . . . 1
o13 : BettiTally
|
The object quartic is a method function.