Page 1 of 1

Betti numbers wrong for a patchworked curve ?

Posted: 16 Feb 2022, 16:53
by CharlesArnal
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 !

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;

Re: Betti numbers wrong for a patchworked curve ?

Posted: 18 Feb 2022, 12:07
by joswig
Our implementation is slightly more general than primitive patchworking; it covers what is sometimes is called "combinatorial patchworking" in the literature.

This means, we require that the lattice points (@my_monomials in your case) correspond to the entire set of monomials in, say, n variables, of homogeneous degree d, and the coefficients must be chosen such that none of them becomes redundant.

The implementation and an application is described here:

@inproceedings{JoswigVater:2020,
author = {Joswig, Michael and Vater, Paul},
title = {Real tropical hyperfaces by patchworking in {\polymake}},
editor = {Bigatti, Anna Maria and Carette, Jacques and Davenport, James H. and Joswig, Michael and de Wolff, Timo},
booktitle = {Mathematical software -- ICMS 2020},
series = {Lecture Notes in Computer Science},
volume = {12097},
publisher = {Springer},
year = {2020},
arxiv = {2003.06326},
doi = {10.1007/978-3-030-52200-1_20},
}

Re: Betti numbers wrong for a patchworked curve ?

Posted: 18 Feb 2022, 13:03
by CharlesArnal
Thanks, I had wrongly assumed that the coefficients corresponding to points that were not vertices of the triangulation were simply ignored in the computation of the patchworked real hypersurface (as the complex and its homology were being computed without any warning) - in other words, that the real hypersurface was computed using the triangulation associated to the polynomial, rather than the polynomial itself.

Thanks for your quick answer !

Re: Betti numbers wrong for a patchworked curve ?

Posted: 18 Feb 2022, 15:48
by joswig
You were right: the documentation in polymake was lacking. I added a short comment with a reference to our paper. This will appear in the next release.

So, thank you for helping to make polymake better.