We compute the equation and nonminimal resolution F of the degeneate K3 of type (a,b,e) where a ≥b over a large finite prime field, lift the complex to the integers, which is possible if the coefficients are small. Finally we study the nonminimal strands over ZZ by computing the Smith normal form. The resulting data allow us to compute the Betti tables for arbitrary primes.
i1 : a=5,b=5 o1 = (5, 5) o1 : Sequence |
i2 : e=(-1,5) o2 = (-1, 5) o2 : Sequence |
i3 : h=degenerateK3BettiTables(a,b,e) -- 0.00448912 seconds elapsed -- 0.0116848 seconds elapsed -- 0.0425504 seconds elapsed -- 0.0118295 seconds elapsed -- 0.00365132 seconds elapsed 0 1 2 3 4 5 6 7 8 9 o3 = HashTable{0 => total: 1 36 160 315 288 288 315 160 36 1} 0: 1 . . . . . . . . . 1: . 36 160 315 288 . . . . . 2: . . . . . 288 315 160 36 . 3: . . . . . . . . . 1 0 1 2 3 4 5 6 7 8 9 2 => total: 1 36 160 315 318 318 315 160 36 1 0: 1 . . . . . . . . . 1: . 36 160 315 288 30 . . . . 2: . . . . 30 288 315 160 36 . 3: . . . . . . . . . 1 0 1 2 3 4 5 6 7 8 9 3 => total: 1 36 160 315 298 298 315 160 36 1 0: 1 . . . . . . . . . 1: . 36 160 315 288 10 . . . . 2: . . . . 10 288 315 160 36 . 3: . . . . . . . . . 1 0 1 2 3 4 5 6 7 8 9 5 => total: 1 36 167 370 476 476 370 167 36 1 0: 1 . . . . . . . . . 1: . 36 160 322 336 140 48 7 . . 2: . . 7 48 140 336 322 160 36 . 3: . . . . . . . . . 1 o3 : HashTable |
i4 : keys h o4 = {0, 2, 3, 5} o4 : List |
i5 : elapsedTime T= minimalBetti degenerateK3(a,b,e,Characteristic=>5) -- 0.192757 seconds elapsed 0 1 2 3 4 5 6 7 8 9 o5 = total: 1 36 167 370 476 476 370 167 36 1 0: 1 . . . . . . . . . 1: . 36 160 322 336 140 48 7 . . 2: . . 7 48 140 336 322 160 36 . 3: . . . . . . . . . 1 o5 : BettiTally |
i6 : T-h#5 0 1 2 3 4 5 6 7 8 9 o6 = total: . . . . . . . . . . 1: . . . . . . . . . . 2: . . . . . . . . . . 3: . . . . . . . . . . o6 : BettiTally |
For e=(-1,1) the degenerate K3 surfaces Xe(a,b) have 3-resonance.
i7 : h=degenerateK3BettiTables(6,6,(-1,1)) -- 0.00591267 seconds elapsed -- 0.0218771 seconds elapsed -- 0.0979283 seconds elapsed -- 0.482323 seconds elapsed -- 0.339498 seconds elapsed -- 0.0306596 seconds elapsed -- 0.0093006 seconds elapsed 0 1 2 3 4 5 6 7 8 9 10 11 o7 = HashTable{0 => total: 1 55 320 891 1415 1210 1210 1415 891 320 55 1} 0: 1 . . . . . . . . . . . 1: . 55 320 891 1408 1162 48 7 . . . . 2: . . . . 7 48 1162 1408 891 320 55 . 3: . . . . . . . . . . . 1 0 1 2 3 4 5 6 7 8 9 10 11 2 => total: 1 55 320 891 1415 1258 1258 1415 891 320 55 1 0: 1 . . . . . . . . . . . 1: . 55 320 891 1408 1162 96 7 . . . . 2: . . . . 7 96 1162 1408 891 320 55 . 3: . . . . . . . . . . . 1 0 1 2 3 4 5 6 7 8 9 10 11 5 => total: 1 55 320 891 1415 1308 1308 1415 891 320 55 1 0: 1 . . . . . . . . . . . 1: . 55 320 891 1408 1162 146 7 . . . . 2: . . . . 7 146 1162 1408 891 320 55 . 3: . . . . . . . . . . . 1 o7 : HashTable |
Already for fairly small values of (e1,e2) the result might be incorrect, because the lift to characteristic zero fails due to high powers of e1 and e2 in the non-minimal resolution. It would be easy to alter the program to catch these mistakes.
i8 : e=(-1,5^2) o8 = (-1, 25) o8 : Sequence |
i9 : h=degenerateK3BettiTables(a,b,e) -- 0.00464591 seconds elapsed -- 0.00904658 seconds elapsed -- 0.0340627 seconds elapsed -- 0.012353 seconds elapsed -- 0.00388981 seconds elapsed 0 1 2 3 4 5 6 7 8 9 o9 = HashTable{0 => total: 1 36 160 315 288 288 315 160 36 1 } 0: 1 . . . . . . . . . 1: . 36 160 315 288 . . . . . 2: . . . . . 288 315 160 36 . 3: . . . . . . . . . 1 0 1 2 3 4 5 6 7 8 9 2 => total: 1 36 160 315 314 314 315 160 36 1 0: 1 . . . . . . . . . 1: . 36 160 315 288 26 . . . . 2: . . . . 26 288 315 160 36 . 3: . . . . . . . . . 1 0 1 2 3 4 5 6 7 8 9 3 => total: 1 36 160 315 300 300 315 160 36 1 0: 1 . . . . . . . . . 1: . 36 160 315 288 12 . . . . 2: . . . . 12 288 315 160 36 . 3: . . . . . . . . . 1 0 1 2 3 4 5 6 7 8 9 5 => total: 1 36 166 365 466 466 365 166 36 1 0: 1 . . . . . . . . . 1: . 36 160 321 332 134 44 6 . . 2: . . 6 44 134 332 321 160 36 . 3: . . . . . . . . . 1 0 1 2 3 4 5 6 7 8 9 251 => total: 1 36 160 315 289 289 315 160 36 1 0: 1 . . . . . . . . . 1: . 36 160 315 288 1 . . . . 2: . . . . 1 288 315 160 36 . 3: . . . . . . . . . 1 0 1 2 3 4 5 6 7 8 9 373 => total: 1 36 160 315 289 289 315 160 36 1 0: 1 . . . . . . . . . 1: . 36 160 315 288 1 . . . . 2: . . . . 1 288 315 160 36 . 3: . . . . . . . . . 1 0 1 2 3 4 5 6 7 8 9 2797 => total: 1 36 160 315 289 289 315 160 36 1 0: 1 . . . . . . . . . 1: . 36 160 315 288 1 . . . . 2: . . . . 1 288 315 160 36 . 3: . . . . . . . . . 1 0 1 2 3 4 5 6 7 8 9 30497 => total: 1 36 160 315 289 289 315 160 36 1 0: 1 . . . . . . . . . 1: . 36 160 315 288 1 . . . . 2: . . . . 1 288 315 160 36 . 3: . . . . . . . . . 1 0 1 2 3 4 5 6 7 8 9 31627 => total: 1 36 160 315 289 289 315 160 36 1 0: 1 . . . . . . . . . 1: . 36 160 315 288 1 . . . . 2: . . . . 1 288 315 160 36 . 3: . . . . . . . . . 1 0 1 2 3 4 5 6 7 8 9 35753 => total: 1 36 160 315 289 289 315 160 36 1 0: 1 . . . . . . . . . 1: . 36 160 315 288 1 . . . . 2: . . . . 1 288 315 160 36 . 3: . . . . . . . . . 1 0 1 2 3 4 5 6 7 8 9 283741 => total: 1 36 160 315 289 289 315 160 36 1 0: 1 . . . . . . . . . 1: . 36 160 315 288 1 . . . . 2: . . . . 1 288 315 160 36 . 3: . . . . . . . . . 1 o9 : HashTable |
i10 : keys h o10 = {0, 30497, 2, 3, 5, 373, 35753, 31627, 251, 283741, 2797} o10 : List |
Already for (e1,e2) fairly small, the algorithm might give wrong answers since the lift to characteristic zero might be incorrect. A correction is easy to implement as soon res(.,FastNonminimal=>true) allows QQ (or ZZ) as coefficient ring. Another possibily would be to use the Chinese remainder for lifting to ZZ.