Dear all,

As part of this year's GSoC, I am trying to generalize `canonical_height` 
from `projective_ds.py` to number fields with unique factorization.

The PR is https://github.com/sagemath/sage/pull/35967

As of now, there are 8 test failures in this PR, one of which is the 
following one

sage: S.<z> = QQ[]
sage: K.<v> = NumberField(z^3-5)
sage: O = K.maximal_order()
sage: P.<x,y> = ProjectiveSpace(K, 1)
sage: f = DynamicalSystem([x^2 + 3*y^2, v*y^2])
sage: f.canonical_height(P(25*11, 5*v))

I have been trying to debug this in the evening, however, I couldn't get 
very far (in fact this error has bugged me for a few days, even after 
checking relevant documentations), so I was wondering if you could suggest 
anything?

Thank you.

sage: R.<x> = QQ[]
....: K.<a> = NumberField(3*x^2 - 1)
....: O = K.maximal_order()
....: P.<x,y>=ProjectiveSpace(K,1)
....: f=DynamicalSystem([x^2,y^2])
....: Q=P(a,2)
....: f.canonical_height(Q)
....: 
....: 
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
File ~/github/sage/src/sage/structure/sequence.py:450, in 
Sequence_generic.__init__(self, x, universe, check, immutable, cr, cr_str, 
use_sage_types)
    449 try:
--> 450     x[i] = universe(x[i])
    451 except TypeError:

File ~/github/sage/src/sage/structure/parent.pyx:901, in 
sage.structure.parent.Parent.__call__()
    900 if no_extra_args:
--> 901     return mor._call_(x)
    902 else:

File ~/github/sage/src/sage/structure/coerce_maps.pyx:163, in 
sage.structure.coerce_maps.DefaultConvertMap_unique._call_()
    162     print(type(C._element_constructor), C._element_constructor)
--> 163 raise
    164 

File ~/github/sage/src/sage/structure/coerce_maps.pyx:158, in 
sage.structure.coerce_maps.DefaultConvertMap_unique._call_()
    157 try:
--> 158     return C._element_constructor(x)
    159 except Exception:

File ~/github/sage/src/sage/rings/number_field/order.py:1573, in 
Order_absolute._element_constructor_(self, x)
   1572 if not embedding(x) in self._module_rep:
-> 1573     raise TypeError("Not an element of the order.")
   1574 return self._element_type(self, x)

TypeError: Not an element of the order.

During handling of the above exception, another exception occurred:

TypeError                                 Traceback (most recent call last)
Cell In [1], line 7
      5 f=DynamicalSystem([x**Integer(2),y**Integer(2)])
      6 Q=P(a,Integer(2))
----> 7 f.canonical_height(Q)

File 
~/github/sage/src/sage/dynamics/arithmetic_dynamics/projective_ds.py:2428, 
in DynamicalSystem_projective.canonical_height(self, point, **kwds)
   2426 max_order_PS = ProjectiveSpace(O, 1)
   2427 number_field_pt.clear_denominators()
-> 2428 number_field_pt = max_order_PS(number_field_pt)
   2430 x_i = number_field_pt[0]
   2431 y_i = number_field_pt[1]

File ~/github/sage/src/sage/schemes/generic/scheme.py:266, in 
Scheme.__call__(self, *args)
    264             return S
    265         args = S
--> 266 return self.point(args)

File ~/github/sage/src/sage/schemes/projective/projective_space.py:822, in 
ProjectiveSpace_ring.point(self, v, check)
    819         raise ValueError("%s not well defined in dimension > 1" % v)
    820     v = [1, 0]
--> 822 return self.point_homset()(v, check=check)

File ~/github/sage/src/sage/schemes/generic/homset.py:279, in 
SchemeHomset_generic.__call__(self, *args, **kwds)
    266 r"""
    267 Make Hom-sets callable.
    268 
   (...)
    276     (4, 5)
    277 """
    278 # Homset (base of HomsetWithBase) overrides __call__ @#$
--> 279 return Set_generic.__call__(self, *args, **kwds)

File ~/github/sage/src/sage/structure/parent.pyx:903, in 
sage.structure.parent.Parent.__call__()
    901         return mor._call_(x)
    902     else:
--> 903         return mor._call_with_args(x, args, kwds)
    904 
    905 raise TypeError(_LazyString("No conversion defined from %s to %s", 
(R, self), {}))

File ~/github/sage/src/sage/structure/coerce_maps.pyx:182, in 
sage.structure.coerce_maps.DefaultConvertMap_unique._call_with_args()
    180     print(type(C), C)
    181     print(type(C._element_constructor), C._element_constructor)
--> 182 raise
    183 
    184 

File ~/github/sage/src/sage/structure/coerce_maps.pyx:172, in 
sage.structure.coerce_maps.DefaultConvertMap_unique._call_with_args()
    170         return C._element_constructor(x)
    171     else:
--> 172         return C._element_constructor(x, **kwds)
    173 else:
    174     if len(kwds) == 0:

File ~/github/sage/src/sage/schemes/generic/homset.py:656, in 
SchemeHomset_points._element_constructor_(self, *v, **kwds)
    654 if len(v) == 1:
    655     v = v[0]
--> 656 return self.codomain()._point(self, v, **kwds)

File ~/github/sage/src/sage/schemes/projective/projective_space.py:837, in 
ProjectiveSpace_ring._point(self, *args, **kwds)
    824 def _point(self, *args, **kwds):
    825     """
    826     Construct a point.
    827 
   (...)
    835         (2 : 1 : 0)
    836     """
--> 837     return SchemeMorphism_point_projective_ring(*args, **kwds)

File ~/github/sage/src/sage/schemes/projective/projective_point.py:185, in 
SchemeMorphism_point_projective_ring.__init__(self, X, v, check)
    182     raise TypeError("v (=%s) must have %s components"%(v, d))
    184 R = X.value_ring()
--> 185 v = Sequence(v, R)
    186 if len(v) == d-1:     # very common special case
    187     v.append(R(1))

File ~/github/sage/src/sage/structure/sequence.py:266, in Sequence(x, 
universe, check, immutable, cr, cr_str, use_sage_types)
sage: sage: S.<z> = QQ[]
....:             sage: K.<v> = NumberField(z^3-5)
....:             sage: O = K.maximal_order()
....:             sage: P.<x,y> = ProjectiveSpace(K, 1)
....:             sage: f = DynamicalSystem([x^2 + 3*y^2, v*y^2])
....:             sage: f.canonical_height(P(25*11, 5*v))
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In [2], line 6
      4 P = ProjectiveSpace(K, Integer(1), names=('x', 'y',)); (x, y,) = 
P._first_ngens(2)
      5 f = DynamicalSystem([x**Integer(2) + Integer(3)*y**Integer(2), 
v*y**Integer(2)])
----> 6 f.canonical_height(P(Integer(25)*Integer(11), Integer(5)*v))

File 
~/github/sage/src/sage/dynamics/arithmetic_dynamics/projective_ds.py:2433, 
in DynamicalSystem_projective.canonical_height(self, point, **kwds)
   2430 x_i = number_field_pt[0]
   2431 y_i = number_field_pt[1]
-> 2433 Res = O(f.resultant().abs())
   2435 # Compute the error bound as defined in Algorithm 3.1 of [WELLS]
   2436 if Res > 1:

File ~/github/sage/src/sage/structure/parent.pyx:901, in 
sage.structure.parent.Parent.__call__()
    899 if mor is not None:
    900     if no_extra_args:
--> 901         return mor._call_(x)
    902     else:
    903         return mor._call_with_args(x, args, kwds)

File ~/github/sage/src/sage/structure/coerce_maps.pyx:163, in 
sage.structure.coerce_maps.DefaultConvertMap_unique._call_()
    161             print(type(C), C)
    162             print(type(C._element_constructor), 
C._element_constructor)
--> 163         raise
    164 
    165 cpdef Element _call_with_args(self, x, args=(), kwds={}):

File ~/github/sage/src/sage/structure/coerce_maps.pyx:158, in 
sage.structure.coerce_maps.DefaultConvertMap_unique._call_()
    156 cdef Parent C = self._codomain
    157 try:
--> 158     return C._element_constructor(x)
    159 except Exception:
    160     if print_warnings:

File ~/github/sage/src/sage/rings/number_field/order.py:1573, in 
Order_absolute._element_constructor_(self, x)
   1571 V, _, embedding = self._K.vector_space()
   1572 if not embedding(x) in self._module_rep:
-> 1573     raise TypeError("Not an element of the order.")
   1574 return self._element_type(self, x)

TypeError: Not an element of the order.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/873222f6-74ac-4ef7-b7c0-a89180e3b591n%40googlegroups.com.

Reply via email to