cjdoris / Genus2Conductor

A package for computing the conductor exponent of hyperelliptic curves of genus 2 defined over number fields.
https://cjdoris.github.io/Genus2Conductor
GNU General Public License v3.0
2 stars 0 forks source link

Assertion in EvenConductorExponent_Core.mag fails #7

Open kimballmartin opened 1 year ago

kimballmartin commented 1 year ago

For the following genus 2 curve C, which has geometric automorphism group V4, but only C2 defined over the rationals, I am running into a failed assertion.

> C;
Hyperelliptic Curve defined by y^2 + (x^3 + x)*y = -4784924145281*x^6 + 
    6209503443066*x^5 + 106920791690911*x^4 + 213235279869594*x^3 - 
    1766462090062291*x^2 + 4404661506225072*x + 39136134781005281 over Rational 
Field
> Conductor(C);
WARNING: Using Ogg's formula when v_2(D)>=12, no correctness guarantee
51485894013794365839767328
> Conductor_Genus2(C);

Conductor_Genus2(
    C: Hyperelliptic Curve defined by y^2 + (x^3 + x)*y = -47849241...
)
EvenConductorExponent_Genus2(
    C: Hyperelliptic Curve defined by y^2 + (x^3 + x)*y = -47849241...
)
evencondexp(
    C: Hyperelliptic Curve defined by y^2 + (x^3 + x)*y = -47849241...,
    p: 2
)
evencondexpdata(
    C: Hyperelliptic Curve defined by y^2 + (x^3 + x)*y = -47849241...,
    p: 2
)
conductor_exponent_data(
    f: -19139696581123*x^6 + 24838013772264*x^5 + 427683166763646*x...,
    p: Ideal of Integer Ring generated by 2,
    dues: [ <2, 0, 1>, <4, 2, 2>, <3, 1, 3>, <3, 1, 3>, <6, 2, 6>, <6,...
)
TameConductorFrom3Torsion(
    C: C,
    p: Ideal of Integer Ring generated by 2,
    IOrder: 6,
    dim3I: 1
)
In file ".../CHIMP/Genus2Conductor/EvenConductorExponent_Core.mag", line 260, column 5:
>>     assert (IOrder in [2,6]) and (n eq 2);^M
       ^
Runtime error in assert: Assertion failed

I tried adding options Proof := "Global", MobiusRandomize:=1 or MobiusRandomize:=2 to no effect.

cjdoris commented 1 year ago

Unfortunately I don't have Magma any more, but can help to debug.

Can you insert print data just before the following line and let me know what it prints out please? https://github.com/cjdoris/Genus2Conductor/blob/bc7326908c3f098b0327399fbe7c60f18a9c6f1a/EvenConductorExponent_Core.mag#L210

It looks like the code does not properly handle the two "Fail" cases, and I suspect you've hit that.

kimballmartin commented 1 year ago

Thanks for the quick reply. It prints out <"IV", "Unmr", 0, 2>

cjdoris commented 1 year ago

Huh OK. I'll need to ask my co-author on this algorithm.

As a workaround, you can put if UseRegularModels then return TameConductorFromRegularModel(C,p); end if; at the top of the TameConductorFrom3Torsion function - but this will sometimes be very slow.

kimballmartin commented 1 year ago

OK, thanks.