edgarcosta / endomorphisms

Rigorous computation of the endomorphism ring of a Jacobian
GNU General Public License v2.0
10 stars 8 forks source link

HeuristicEndomorphismAlgebra(C : Geometric := true) != HeuristicEndomorphismAlgebra(CK) where K is HeuristicEndomorphismFieldOfDefinition #65

Open BarinderBanwait opened 1 year ago

BarinderBanwait commented 1 year ago

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
edgarcosta commented 1 year ago

Is there anything in particular you want to do?

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?