Ask Your Question

Height of rational points

asked 2021-02-13 20:57:44 +0100

8d1h gravatar image

updated 2021-02-15 02:00:12 +0100

Hi, I'm looking at this example of enumeration of rational points from the documentation Enumeration of rational points on projective schemes. Here I'm considering the entire projective plane.

from sage.schemes.projective.projective_rational_point import enum_projective_number_field
u = QQ['u'].0
K = NumberField(u^3 - 5, 'v')
P.<x,y,z> = ProjectiveSpace(K, 2)
enum_projective_number_field(P, bound=RR(5^(1/3)), prec=2^10)

The returned result includes several points like (v : 1/5*v^2 : 1). If I'm not mistaken, this point is of height 25^(1/3) instead of 5^(1/3): for the infinite place the first coordinate provides a 5^(1/3), and for the place 5 the second coordinate provides another 5^(1/3). Is this a bug?

Edit. I reviewed the code, it seems that the problem is in the file schemes/projective/, the method points_of_bounded_height of class ProjectiveSpace_field. When enumerating points with bounded height over a number field, it uses the method elements_of_bounded_height: this gives not just algebraic integers but all field elements with bounded height.

edit retag flag offensive close merge delete


I'm not an expert but

E = enum_projective_number_field(P, bound=RR(5^(1/3)), prec=2^10)
max( e.global_height() for e in E )

gives 0.536479304144700, which is smaller than 5^(1/3).

Max Alekseyev gravatar imageMax Alekseyev ( 2021-02-14 18:22:19 +0100 )edit

Thanks for the comment! First of all, global_height gives the logarithm height, so one should consider exp(0.53...) which is actually equal to 5^(1/3). But this only computes the maximal height among the three coordinates, instead of the height as a homogeneous coordinate. The former is not a well-defined function, for example for (1:1:1)=(2:2:2) it can give both 0=ln(1) and ln(2).

8d1h gravatar image8d1h ( 2021-02-15 01:47:32 +0100 )edit

My code for enumeration of points using elimination is here if anyone is interested. There is a hacked-up global height function for homogeneous coordinates.

8d1h gravatar image8d1h ( 2021-02-15 22:18:34 +0100 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2021-02-15 12:17:05 +0100

John Cremona gravatar image

Looking at the code, it seems to me that the functions implementing local and global heights are wrong. The global height of an individual algebraic number is, I think, correct (and I seem to remember that I wrote it) but the height of a point is projective space is certainly not the max of the heights of the coordinates -- for a start that is not well-defined, as already remarked. I'll make a sage trac ticket for this, and may even fix it myself.

edit flag offensive delete link more



That would be great, thanks a lot!

BTW the algorithm for the enumeration of points on projective varieties is not very efficient. I wrote a package in Macaulay2 using elimination, maybe I'll try to port it to Sage too.

8d1h gravatar image8d1h ( 2021-02-15 12:58:12 +0100 )edit
vdelecroix gravatar imagevdelecroix ( 2021-02-15 19:23:37 +0100 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2021-02-13 20:57:44 +0100

Seen: 178 times

Last updated: Feb 15