For C a curve, I expected HeuristicEndomorphismAlgebra(C : Geometric := true); to return the same thing as HeuristicEndomorphismAlgebra evaluated at the base extension of C base-extended to HeuristicEndomorphismFieldOfDefinition(C); but this is apparently not true:
AttachSpec("CHIMP/CHIMP.spec");
QQ := Rationals();
Qx<x> := PolynomialRing(QQ);
f1 := x;
f2 := x^2+1;
f3 := x^2 - 2*x - 1;
f := -f1*f2*f3;
d := -815;
C := HyperellipticCurve(d*f);
desc := HeuristicEndomorphismAlgebra(C);
fieldOfDef := HeuristicEndomorphismFieldOfDefinition(C);
CK := BaseExtend(C,fieldOfDef);
descGeom := HeuristicEndomorphismAlgebra(C : Geometric := true);
descCK := HeuristicEndomorphismAlgebra(CK);
descGeom eq descCK; // we expected this to be true
I understand the bug, as we are wrongly caching too little information, but that will require a lot of changes, so perhaps, I can help with what you need?
For
C
a curve, I expectedHeuristicEndomorphismAlgebra(C : Geometric := true);
to return the same thing asHeuristicEndomorphismAlgebra
evaluated at the base extension of C base-extended toHeuristicEndomorphismFieldOfDefinition(C)
; but this is apparently not true: