Betti numbers wrong for a patchworked curve ?
Posted: 16 Feb 2022, 16:53
Dear all,
I am not super familiar with Polymake yet - please forgive me if this is a dumb question.
I have noticed that sometimes the Betti numbers of a patchworked hypersurface defined using a regular (i.e. obtained using the lower convex hull of etc...) triangulation that is not primitive (i.e. the simplices of the triangulation are not of minimal volume) are incorrectly computed.
The code below produces a projective curve of degree 7 (plus illustration) where the Betti numbers are said to be b_0 = b_1 = 3, but the picture of the curve clearly shows 5 distinct connected components. I have seen the same phenomenon happen in many similar cases (some of them in lower degrees).
Three hypotheses :
- I have made a dumb mistake (very likely).
- I am using Polymake 4.1 (I could not install version 4.6, maybe because of the Windows Subsystem Linux I am using) and this is a bug that has since been fixed. I tried checking the updates and did not find an indication of this being the case, but I could have missed something.
- Either the visualisation tool, realize() or BETTI_NUMBERS_Z2 are not meant to be compatible with non-primitive triangulations. I couldn't find a line saying so in the doc, but I might have missed something.
Thanks in advance for your wisdom !
I am not super familiar with Polymake yet - please forgive me if this is a dumb question.
I have noticed that sometimes the Betti numbers of a patchworked hypersurface defined using a regular (i.e. obtained using the lower convex hull of etc...) triangulation that is not primitive (i.e. the simplices of the triangulation are not of minimal volume) are incorrectly computed.
The code below produces a projective curve of degree 7 (plus illustration) where the Betti numbers are said to be b_0 = b_1 = 3, but the picture of the curve clearly shows 5 distinct connected components. I have seen the same phenomenon happen in many similar cases (some of them in lower degrees).
Three hypotheses :
- I have made a dumb mistake (very likely).
- I am using Polymake 4.1 (I could not install version 4.6, maybe because of the Windows Subsystem Linux I am using) and this is a bug that has since been fixed. I tried checking the updates and did not find an indication of this being the case, but I could have missed something.
- Either the visualisation tool, realize() or BETTI_NUMBERS_Z2 are not meant to be compatible with non-primitive triangulations. I couldn't find a line saying so in the doc, but I might have missed something.
Thanks in advance for your wisdom !
Code: Select all
use application "tropical";
my @my_coeffs = [36.8902, 31.6281, 25.7721, 62.0355, 37.9832, 39.3058, 37.5739, 28.9640, 50.6843, 17.1255, 65.4803, 10.0458, 0.5484, 43.4069, 68.3796, 54.8168, 60.9061, 13.3530, 0.7442, 71.1814, 56.6176, 6.5291, 51.3100, 5.3291, 44.7421, 30.5209, 11.2362, 57.2360, 9.0457, 39.7403, 19.3834, 26.2925, 4.8702, 43.1638, 32.7255, 30.4274];
my @my_monomials = [[0, 0, 7], [0, 1, 6], [0, 2, 5],[0, 3, 4],[0, 4, 3],[0, 5, 2],[0, 6, 1],[0, 7, 0],[1, 0, 6],[1, 1, 5],[1, 2, 4],[1, 3, 3],[1, 4, 2],[1, 5, 1],[1, 6, 0],[2, 0, 5],[2, 1, 4],[2, 2, 3],[2, 3, 2],[2, 4, 1],[2, 5, 0],[3, 0, 4],[3, 1, 3],[3, 2, 2],[3, 3, 1],[3, 4, 0],[4, 0, 3],[4, 1, 2],[4, 2, 1],[4, 3, 0],[5, 0, 2],[5, 1, 1],[5, 2, 0],[6, 0, 1],[6, 1, 0],[7, 0, 0]];
my @my_signs = [0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0];
my $h1 = new Hypersurface<Min>(MONOMIALS=>@my_monomials, COEFFICIENTS=>@my_coeffs);
my $h1_pw1 = $h1->PATCHWORK(SIGNS=>@my_signs);
print $h1_pw1->BETTI_NUMBERS_Z2;
print "\n";
my $h1_pw_r = $h1_pw1->realize("uniform");
$h1_pw_r->VISUAL;