"Source: Text/Geometry/CrvEllQNF.text";
"Line: 1510";
"Date: Fri Apr 14 10:35:14 2023";
"Main: Thu May 25 10:02:38 2023";
// original file: Text/Geometry/CrvEllQNF.text, line: 1510
// Example: H130E14 ()
print "Example: H130E14";
ei := GetEchoInput();
SetEchoInput(true);
Q := RationalsAsNumberField();
E := EllipticCurve([0,1,1,0,0]);
Periods (E : Precision:=15);
EQ := BaseChange (E, Q);
Periods (EQ,1 : Precision:=15);
_<s> := QuadraticField(5);
E := EllipticCurve([s+1,1,-1,-s,2]);
Periods (E,1 : Precision:=15);
Periods (E,2 : Precision:=15);
K<s> := QuadraticField(5);
E := EllipticCurve([s+1,1,-1,-s,2]);
P := Points(E,1)[1];
Q := Points(E,1/2*(-9*s+11))[1];
R := Points(E,1/2*(25*s + 55))[1];
lP1 := EllipticLogarithm(P,1); lP1;
P1 := EllipticExponential(E,1,lP1); P1;
Abs(Conjugates(P[2])[1]-P1[2]); // y-coord diff is close to 0
lQ2 := EllipticLogarithm(Q,2);
lR2 := EllipticLogarithm(R,2);
QR2 := EllipticExponential(E,2,lQ2+lR2);
Abs(Conjugates((Q+R)[1])[2]-QR2[1]);  // compare x-coords
SetEchoInput(ei);
