I was trying to find the definition of CM by $\sqrt{-11}$, or at least a way to calculate it or to calculate a general CM. I can find a lot of examples on the LMFDB without any mention to how multiplication by $\sqrt{-11}$ works. Silverman's "advanced topics" contains complex multiplication by $i$, $\sqrt{-2}$, and $\sqrt{-7}$, without any mention to how to pursue the problem of finding complex multiplication in general. Can anyone point me to a source for the definition of CM by $\sqrt{-11}$ or how to find a general method for such endomorphisms?
-
You might have a look at Cox, particularly the material around 10.21, 10.22, and 14.9. – rogerl Feb 15 '23 at 00:12
2 Answers
Here's one way to do it, in Magma.
$H_{11}$ is the Hilbert Class Polynomial whose roots comprise $j$-invariants having CM by $\frac{1+\sqrt{-11}}{2}$. In this case, $H_{11}$ has only one root $j_{11}$, with value equal to $-2^{15} = -32768$.
> P<x> := PolynomialRing(RationalField());
> H11 := P!HilbertClassPolynomial(-11);
> j11 := Roots(H11)[1][1];
We construct a curve $E_1$ having $j$-invariant $j_{11}$ and therefore having CM by $\frac{1+\sqrt{-11}}{2}$.
> E1 := WeierstrassModel(EllipticCurveFromjInvariant(j11));
The $11$-th division polynomial on $E_1$ has degree $60 = \frac{11^2-1}{2}$, and factors into a degree $5$ polynomial (n.b. $5 = \frac{11-1}{2}$) and a degree $55$ polynomial. The degree $5$ factor is the kernel polynomial for an isogeny of degree $11$.
> kerpoly := Factorization(P!DivisionPolynomial(E1,11))[1][1];
The isogeny $\phi$ corresponding to this kernel polynomial has degree $11$. Note that its codomain $E_2$ is isomorphic to $E_1$, as evidenced by the fact that their $j$-invariants are the same. If we were to compose $\phi$ with an isomorphism from $E_2$ to $E_1$, we would obtain an endomorphism of $E_1$ whose square is $-11$.
> E2, phi := IsogenyFromKernel(E1, kerpoly);
> E1, E2;
Elliptic Curve defined by y^2 = x^3 - 13824/539*x + 27648/539 over Rational Field
Elliptic Curve defined by y^2 = x^3 - 152064/49*x - 3345408/49 over Rational Field
> Degree(phi);
11
> jInvariant(E1) eq jInvariant(E2);
true
The isomorphism from $E_1$ and $E_2$ is given by $\lambda = \sqrt{-11}$, as expected. (IsogenyFromKernel uses Velu's formulas, which produce a normalized isogeny that preserves the invariant differential, but multiplication by $\sqrt{-11}$ should obviously scale the invariant differential by $\sqrt{-11}$.)
> aInvariants(E2)[4]/aInvariants(E1)[4];
121
> aInvariants(E2)[5]/aInvariants(E1)[5];
-1331
If you want to see the actual isogeny $\phi$, it's fairly complex. Remember that $\phi$ has to be composed with a suitable isomorphism in order to obtain an endomorphism of $E_1$.
> phi;
Elliptic curve isogeny from: CrvEll: E1 to CrvEll: E2
taking (x : y : 1) to ((x^11 - 192/7*x^10 + 41472/49*x^9 - 27537408/3773*x^8 - 15925248/26411*x^7 + 632933056512/2033647*x^6 - 3705868910592/2033647*x^5 + 526600303017984/99648703*x^4 -
89018346875387904/7672950131*x^3 + 1376952358885392384/53710650917*x^2 - 171726789277101588480/4135720120609*x + 1318238461051898167296/45492921326699) / (x^10 - 192/7*x^9 + 124416/539*x^8 - 663552/3773*x^7
- 270729216/41503*x^6 + 632933056512/22370117*x^5 - 36691771392/156590819*x^4 - 3092676027088896/12057493063*x^3 + 55541361725669376/84402451441*x^2 - 4303990575612297216/6498988760957*x +
120046439838699749376/500422134593689) : (x^15*y - 288/7*x^14*y + 6912/539*x^13*y + 7852032/3773*x^12*y + 4713873408/290521*x^11*y - 1104575201280/2033647*x^10*y + 1175261898866688/156590819*x^9*y -
80802325425291264/1096135733*x^8*y + 43147522428081537024/84402451441*x^7*y - 1444036179309046530048/590817160087*x^6*y + 356557988165129796059136/45492921326699*x^5*y -
4998180593354292760412160/318450449286893*x^4*y + 34090357142681802523017216/2229153145008251*x^3*y + 823237787307271257726124032/171644792165635327*x^2*y -
2920902296270500354483814400/109228504105404299*x*y + 1743302020976645985728282492928/92516542977277441253*y) / (x^15 - 288/7*x^14 + 6912/11*x^13 - 14045184/3773*x^12 - 1592524800/290521*x^11 +
4035330441216/22370117*x^10 - 114820783276032/156590819*x^9 - 9103668783611904/12057493063*x^8 + 1206946760056897536/84402451441*x^7 - 243974857349306253312/6498988760957*x^6 -
7618631413127215841280/500422134593689*x^5 + 1018895489094737348001792/3502954942155823*x^4 - 189151699474100960404439040/269727530545998371*x^3 + 1546828863533809959111229440/1888092713821988597*x^2 -
70735465060089819734973874176/145383138964293121969*x + 1315297296252480972369243930624/11194501700250570391613) : 1)
- 1,199
-
Hi, Since you seem to know magma and sage quite well, can you check my claim that $h$ is defined over $\Bbb{Q}$ ? – reuns Feb 15 '23 at 12:13
-
I tried, but no dice. (Adding points on elliptic curves is very messy when the curves are in a weird form.) Sorry! – djao Feb 16 '23 at 01:18
-
@djao Hello there. I have an elliptic curve of form $y^2 = ax^3+bx^2+cx+d$ and I want to know its integer points. Unfortunately, $a\neq1$ so it is not monic, and the Magma command I know requires my cubic polynomial to be monic. Is there another command for non-monic cases? – Tito Piezas III Dec 07 '23 at 07:14
-
1Seems like an unrelated question; proper form is to ask a separate question so that others might notice and answer. Short answer is you'll have to do some work. Enumerate the rational points (for which you can force a=1) and then use height bounds to find the integer points. – djao Dec 08 '23 at 04:37
-
@djao Here is a new question on elliptic curves in case you want to answer it. – Tito Piezas III Jan 22 '25 at 17:29
Here is a way to (directly, shamelessly) ask for a solution in sage:
The discriminant $-11$ is an element of $\Bbb Q$.
There is a function, cm_j_invariants, that wants a field as the one argument, returns all $j$ values of CM-curves defined over that field.
Code, in fact a dialog in the sage interpreter, plotting all $j$ values... (Maybe tomorrow an other discriminant is of interest.)
sage: for j in cm_j_invariants(QQ):
....: E = EllipticCurve_from_j(j)
....: print(f"j = {j}\nE :: 0 = {-E.defining_polynomial()(x, y, 1)}\nDoes E have CM? "
....: "{E.has_cm()}. The CM-discriminant is {E.cm_discriminant()}\n")
....:
j = -262537412640768000
E :: 0 = -y^2 - y + x^3 - 2174420*x + 1234136692
Does E have CM? {E.has_cm()}. The CM-discriminant is {E.cm_discriminant()}
j = -147197952000
E :: 0 = -y^2 - y + x^3 - 7370*x + 243528
Does E have CM? {E.has_cm()}. The CM-discriminant is {E.cm_discriminant()}
j = -884736000
E :: 0 = -y^2 - y + x^3 - 860*x + 9707
Does E have CM? {E.has_cm()}. The CM-discriminant is {E.cm_discriminant()}
j = -12288000
E :: 0 = -y^2 - y + x^3 - 270*x - 1708
Does E have CM? {E.has_cm()}. The CM-discriminant is {E.cm_discriminant()}
j = -884736
E :: 0 = -y^2 - y + x^3 - 38*x + 90
Does E have CM? {E.has_cm()}. The CM-discriminant is {E.cm_discriminant()}
j = -32768
E :: 0 = -y^2 - y + x^3 - x^2 - 7*x + 10
Does E have CM? {E.has_cm()}. The CM-discriminant is {E.cm_discriminant()}
j = -3375
E :: 0 = -y^2 - xy + x^3 - x^2 - 2x - 1
Does E have CM? {E.has_cm()}. The CM-discriminant is {E.cm_discriminant()}
j = 0
E :: 0 = -y^2 - y + x^3
Does E have CM? {E.has_cm()}. The CM-discriminant is {E.cm_discriminant()}
j = 1728
E :: 0 = -y^2 + x^3 - x
Does E have CM? {E.has_cm()}. The CM-discriminant is {E.cm_discriminant()}
j = 8000
E :: 0 = -y^2 + x^3 + x^2 - 3*x + 1
Does E have CM? {E.has_cm()}. The CM-discriminant is {E.cm_discriminant()}
j = 54000
E :: 0 = -y^2 + x^3 - 15*x + 22
Does E have CM? {E.has_cm()}. The CM-discriminant is {E.cm_discriminant()}
j = 287496
E :: 0 = -y^2 + x^3 - 11*x - 14
Does E have CM? {E.has_cm()}. The CM-discriminant is {E.cm_discriminant()}
j = 16581375
E :: 0 = -y^2 + x^3 - 595*x - 5586
Does E have CM? {E.has_cm()}. The CM-discriminant is {E.cm_discriminant()}
sage:
And indeed, $-11$ is in the list. A corresponding elliptic curve can be isolated using simple code, the above list is too much. (Often i forget to show only the line with -11, or at least to point only to this line.)
sage: E_list = [EllipticCurve_from_j(j) for j in cm_j_invariants(QQ)]
sage: E_list_11 = [E for E in E_list if E.cm_discriminant() == -11]
sage: len(E_list_11)
1
sage: # ok, let us put the hands on this one curve...
sage: E = E_list_11[0]
sage: E
Elliptic Curve defined by y^2 + y = x^3 - x^2 - 7*x + 10 over Rational Field
sage: E.has_cm()
True
sage: E.cm_discriminant()
-11
A note on the way to ask for the first list above.
Sage / python allows "list comprehension", so the first line defining the E_list looks like the mathematical notation for a set $\Big\{\
$EllipticCurve_from_j(j)$\ :\ $j$\in$cm_j_invariants(QQ)$\ \Big\}$. The next line uses the same principle, one can do both lines in one but that line is longer (and we would be calling EllipticCurve_from_j too often).
To get the formula for the multiplication with $$ b =\frac 12(1+a)\ ,\ a:=\sqrt{-11}\in K:=\Bbb Q(a)\ , $$ we note that its norm is $N_{K:\Bbb Q}(b)=\frac 14(1-(-11))=3$, so we expect degree three. We can ask for the isogenies of this prime degree, from them we pick one that is an isomorphism over $K$. Code:
K.<a> = QuadraticField(-11)
EK = E.base_extend(K)
isogenies = [isogeny for isogeny in EK.isogenies_prime_degree(3)
if isogeny.codomain().is_isomorphic(EK)]
f = isogenies[0]
EK1 = f.codomain() # so f is a map EK --f--> EK1
g = EK1.isomorphism_to(EK) # so g is a map EK1 --g--> EK1
f.set_post_isomorphism(g) # so f is replaced now by gf
f.rational_maps()
The above gives the components of the map $f$, which corresponds to complex multiplication with $\frac 12(1\pm \sqrt{-11})$.
The first component is easier to write down. For a point $P(x,y)$ the first component of $[b]P$ is (hopefully typed correctly, sage gives monic polynomials in numerator and denominator): $$ -(5+a)\cdot \frac 1{(6x-(13-a))^2}\cdot (2x^3 - (11-a)x^2 + (25-11a)x - (19-17a))\ . $$
One more check. Let us multiply some special point $P$ of $E(\Bbb Q)$ with $b=\frac 12(a+1)$, and this point again... We expect that $P$ multiplied with $b^2 -b +3$ is $O$...
sage: b = (1 + a)/2
sage: b.minpoly()
x^2 - x + 3
sage: P = EK((4, 5))
sage: f(f(P)) - f(P) + 3*P
(0 : 1 : 0)
- 37,952