next | previous | forward | backward | up | top | index | toc | packages | Macaulay2 website
K3Carpets :: degenerateK3BettiTables

degenerateK3BettiTables -- compute the Betti tables of a degenerate K3 over all prime fields

Synopsis

Description

We compute the equation and nonminimal resolution F of the degenerate K3 of type (a,b,e) where $a \ge 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.00683782 seconds elapsed
 -- 0.0182716 seconds elapsed
 -- 0.0730861 seconds elapsed
 -- 0.0280174 seconds elapsed
 -- 0.00969535 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.320222 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

Already for fairly small values of (e_1,e_2) the result might be incorrect, because the lift to characteristic zero fails due to high powers of e_1 and e_2 in the non-minimal resolution. It would be easy to alter the program to catch these mistakes.

i7 : e=(-1,5^2)

o7 = (-1, 25)

o7 : Sequence
i8 : h=degenerateK3BettiTables(a,b,e)
 -- 0.00676327 seconds elapsed
 -- 0.0183571 seconds elapsed
 -- 0.0733055 seconds elapsed
 -- 0.0282649 seconds elapsed
 -- 0.0100394 seconds elapsed

                           0  1   2   3   4   5   6   7  8 9
o8 = 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

o8 : HashTable
i9 : keys h

o9 = {0, 30497, 2, 3, 5, 373, 35753, 31627, 251, 283741, 2797}

o9 : List

Caveat

Already for (e_1,e_2) 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 possibility would be to use the Chinese remainder for lifting to ZZ.

See also

Ways to use degenerateK3BettiTables :

For the programmer

The object degenerateK3BettiTables is a method function.