On Thu, 8 Aug 2024, 18:10 John Cremona, <[email protected]> wrote:

> Hi Chris,
>
> I wrote some of this stuff and will look into it, but there has been a lot
> of newer work by others, people interested only in finite base fields, and
> that might be relevant.  But I'm away at the moment so I cannot do anything
> for a few days.
>


Meanwhile it wouldn't hurt to make a GitHub issue (or several) with your
bugs.  They might be very easy to fix.

>
> John
>
> On Thu, 8 Aug 2024, 14:25 Chris Wuthrich, <[email protected]>
> wrote:
>
>> Hi
>>
>> I haven't played with isogenies for a while but did so a lot recently. As
>> I am no longer really familiar with the new structure in sage, I sent this
>> message to this group in the hope that someone involved in isogenies in
>> sage picks it up. I list a few separate issues and questions in one email.
>> Sorry for its length.
>>
>> I am happy to help (modulo time constraints) and feel free to contact me
>> directly outside this forum.
>>
>>
>> ------------------------------
>>
>> a) Here is a first error, which I assume is a bug
>>
>> F.<s> = QuadraticField(-3)
>> E = EllipticCurve(F,[0,0,1,0,0])  # has cm by O_F
>> R.<x> = F[]
>> phi = E.isogeny(x,codomain=E,degree=3)  # is an associate to sqrt(-3)
>> psi = 1 + phi
>> psi.rational_maps()
>>
>> it causes boom with "TypeError: polynomial (=2) must be a polynomial"
>>
>> Related to this, one of the statements
>> sage: (phi+1).degree(), (phi-1).degree()
>> 7,7
>> is wrong as the only possible answers for associates of sqrt(-3) in F are
>> 7,1 or 1,7 or 4,4.
>>
>> ------------------------------
>>
>> b) Here is my next problem, continuing from the above
>>
>> phi7 = E.isogeny(x^3 + 3/14*s - 1/14, codomain=E, degree=7)
>> xi = -2 + phi7   # should be the automorphism of order 3
>> xi.degree()
>>
>> goes boom with "ValueError: the two curves are not linked by a cyclic
>> normalized isogeny of degree 7" at the last line not before. I know now
>> that I should use .automorphism instead.
>>
>> ------------------------------
>>
>> c) This is again a bug which results in an incorrect answer rather than
>> an unexpected error.
>>
>> k.<z> = GF(25,"z")
>>
>> R.<x> = k[]
>>
>> A = EllipticCurve(k, [0,4,0,2,4])
>> f = x^3 + (3*z + 2)*x^2 + (z + 4)*x + z + 2
>> phi = A.isogeny(f)
>> alpha = next(a for a in A.automorphisms() if a.order()==3)
>>
>> phi.kernel_polynomial(), (phi*alpha).kernel_polynomial(), 
>> (phi*alpha*alpha).kernel_polynomial()
>>
>>
>> returns
>>
>> (x^3 + (3*z + 2)*x^2 + (z + 4)*x + z + 2, x^3 + 2*z*x^2 + 4*z*x + 4*z + 3, 
>> x^3 + (3*z + 2)*x^2 + (z + 4)*x + z + 2)
>>
>> while the first two are correct, the last is incorrect as it can definitely 
>> not be the same as the first. It should be
>>
>> f.subs(alpha.u^2*x+alpha.r)
>>
>> x^3 + 2*x + 4
>>
>>
>> ------------------------------
>>
>> d) Here is an unexpected behaviour. An isogeny cannot be __call__ed on a 
>> point over a larger field, but it can be _eval-ed:
>>
>> This works fine:
>>
>> E = EllipticCurve(GF(7),[1,3])  # rather randomly chosen
>> phi = E.isogenies_prime_degree(3)[0] # unique
>> L.<z> = GF(7^2)
>> EL = E.base_extend(L)
>> P = EL([1,2+3*z]) # random
>> phi._eval(P)
>>
>> but
>>
>> phi(P)
>>
>> throws
>> "ValueError: 3*z + 2 is not in the image of (map internal to coercion
>> system -- copy before use)
>> Ring morphism:
>>   From: Finite Field of size 7
>>   To:   Finite Field in z of size 7^2"
>>
>> ------------------------------
>>
>> e) Is there a way to base_extend phi to L? That shouldn't be hard to
>> implement. My hand-on implementation of this is not really good, but it
>> worked.
>> Similarly, I wrote a "reduction" for an isogeny over a number field at a
>> prime ideal where the model has good reduction. In both cases I
>> extended/reduced the kernel polynomial and created a new isogeny on the
>> extended/reduced curves and then adjusted it with an automorphism if the
>> .scaling_factor did not extend/reduce to the new scaling_factor. Of course,
>> for composite and sum morphisms I did it on the components. But it feels
>> like one should be able to do this directly.
>>
>> Again, apologies for the length of this post.
>>
>> Chris
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "sage-nt" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/sage-nt/CABMU80cWGcb0Vm41Tumjjc5Aoh9mAZkwc_gBv52a9rSYNwT0Vg%40mail.gmail.com
>> <https://groups.google.com/d/msgid/sage-nt/CABMU80cWGcb0Vm41Tumjjc5Aoh9mAZkwc_gBv52a9rSYNwT0Vg%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-nt" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-nt/CAD0p0K6LoRu9jym1mnuqSjw2SdPzKO_Kwf7cM%3Db%2BuL%3DF3SgRQQ%40mail.gmail.com.

Reply via email to