Skip to content

Commit

Permalink
Trac #32686: points_of_bounded_height for projective space is incorrect
Browse files Browse the repository at this point in the history
The method for number fields iterates over the points of bounded height
for each coordinate. This includes all the appropriate points, but
includes some other points that are larger than the specified bound.

{{{
B=3
K.<v>=QuadraticField(3)
P.<x,y,z>=ProjectiveSpace(K,2)
for Q in P.points_of_bounded_height(bound=B):
    if exp(Q.global_height()) > B+0.001:
        print(Q,exp(Q.global_height()))
}}}

See also #31400

URL: https://trac.sagemath.org/32686
Reported by: bhutz
Ticket author(s): Jing Guo
Reviewer(s): Alexander Galarraga, Ben Hutz
  • Loading branch information
Release Manager committed Oct 11, 2022
2 parents 364b605 + c053c2a commit 84ecc3f
Show file tree
Hide file tree
Showing 6 changed files with 480 additions and 94 deletions.
4 changes: 4 additions & 0 deletions src/doc/en/reference/references/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3679,6 +3679,10 @@ REFERENCES:
and its use for certified homotopy continuation of systems of plane
algebraic curves, :arxiv:`1505.03432`
.. [Krumm2016] Daid Krumm, *Computing Points of Bounded Height in Projective Space over a Number Field*,
MATHEMATICS OF COMPUTATION, Volume 85, Number 297, January 2016, Pages 423–447.
http://dx.doi.org/10.1090/mcom/2984
.. [KR2001] \J. Kahane and A. Ryba. *The hexad game*, Electronic
Journal of Combinatorics, **8**
(2001). http://www.combinatorics.org/Volume_8/Abstracts/v8i2r11.html
Expand Down
26 changes: 14 additions & 12 deletions src/sage/dynamics/arithmetic_dynamics/projective_ds.py
Original file line number Diff line number Diff line change
Expand Up @@ -3369,13 +3369,18 @@ def affine_preperiodic_model(self, m, n, return_conjugation=False):
sage: g = f.affine_preperiodic_model(0, 1); g
Dynamical System of Projective Space of dimension 2 over Rational Field
Defn: Defined on coordinates by sending (x : y : z) to
(-x^2 : 2*x^2 + 2*x*y + y^2 : 2*x^2 + 2*x*y + 2*y^2 - 2*y*z + z^2)
(-x^2 : -2*x^2 + 2*x*y - y^2 : 2*x^2 - 2*x*y + 2*y^2 + 2*y*z + z^2)
We can check that ``g`` has affine fixed points::
sage: g.periodic_points(1)
[(-1 : 1 : 1), (-1/2 : 1/2 : 1), (-1/2 : 1 : 1), (-1/3 : 2/3 : 1), (0 : 0 : 1),
(0 : 1/2 : 1), (0 : 1 : 1)]
[(-1 : -1 : 1),
(-1/2 : -1 : 1),
(-1/2 : -1/2 : 1),
(-1/3 : -2/3 : 1),
(0 : -1 : 1),
(0 : -1/2 : 1),
(0 : 0 : 1)]
::
Expand All @@ -3384,8 +3389,8 @@ def affine_preperiodic_model(self, m, n, return_conjugation=False):
sage: f.affine_preperiodic_model(0, 1)
Dynamical System of Projective Space of dimension 2 over Finite Field in z2 of size 3^2
Defn: Defined on coordinates by sending (x : y : z) to
((z2 + 1)*x^2 : (z2 + 1)*x^2 + (z2 + 1)*x*y + (-z2 - 1)*y^2 :
(z2 - 1)*x^2 + (z2 - 1)*x*y - y^2 + (-z2)*y*z + z^2)
((-z2)*x^2 : z2*x^2 + (-z2)*x*y + (-z2)*y^2 :
(-z2)*x^2 + z2*x*y + (z2 + 1)*y^2 - y*z + z^2)
::
Expand All @@ -3396,9 +3401,8 @@ def affine_preperiodic_model(self, m, n, return_conjugation=False):
Dynamical System of Projective Space of dimension 2 over
Univariate Polynomial Ring in c over Finite Field of size 3
Defn: Defined on coordinates by sending (x : y : z) to
((2*c^4 + c^3)*x^2 : (2*c^4 + c^3)*x^2 + (2*c^4 + c^3)*x*y + (c^4 + 2*c^3)*y^2 :
c^3*x^2 + c^3*x*y + (2*c^3 + 2*c^2)*y^2 + (c^3 + 2*c^2)*y*z + (2*c^4 + 2*c^3 +
2*c^2)*z^2)
(2*c^3*x^2 : c^3*x^2 + 2*c^3*x*y + 2*c^3*y^2 :
2*c^3*x^2 + c^3*x*y + (c^3 + c^2)*y^2 + 2*c^2*y*z + c^2*z^2)
::
Expand All @@ -3409,8 +3413,7 @@ def affine_preperiodic_model(self, m, n, return_conjugation=False):
Dynamical System of Projective Space of dimension 2
over Cyclotomic Field of order 3 and degree 2
Defn: Defined on coordinates by sending (x : y : z) to
(x^2 + y^2 + (-k + 2)*x*z - 2*y*z + (-k + 3)*z^2 :
-2*x^2 + (k - 4)*x*z + (k - 3)*z^2 : -x^2 + (k - 2)*x*z + (k - 2)*z^2)
(-y^2 : x^2 : x^2 + (-k)*x*z + z^2)
::
Expand All @@ -3429,8 +3432,7 @@ def affine_preperiodic_model(self, m, n, return_conjugation=False):
Dynamical System of Closed subscheme of Projective Space of dimension 2 over Rational Field defined by:
2*y - z
Defn: Defined on coordinates by sending (x : y : z) to
(2*x^2 + y^2 + 4*x*z - 2*y*z + 4*z^2 : -x^2 - y^2 - 2*x*z + 2*y*z - 3*z^2 :
-x^2 - 2*x*z - 2*z^2)
(-x^2 - y^2 : y^2 : x^2 + z^2)
TESTS::
Expand Down
Loading

0 comments on commit 84ecc3f

Please sign in to comment.