id,summary,reporter,owner,description,type,status,priority,milestone,component,resolution,keywords,cc,merged,author,reviewer,upstream,work_issues,branch,commit,dependencies,stopgaps
20737,Use of representative_prime may fail in finding semi-global minimal models of elliptic curves,cremona,,"When an elliptic curve E defined over a number field has no global minimal model, the obstruction is a non-trivial ideal class and E.global_minimal_model(semi_global=True) finds a prime ideal in that class and returns a model minimal at all primes but that one. However the line in kraus.py (line 916) does that using {{{P = c.representative_prime()}} which can fail since by default only primes of norm up to 1000 are tested, as that is the default value of the parameter norm_bound of representative_prime().
Example (an elliptic curve with everywhere good reduction over an imaginary quadratic field of class number 3315):
{{{
sage: K. = NumberField(x^2-x+31821453)
sage: ainvs = (0, 0, 0, -382586771000351226384*a - 2498023791133552294513515, 358777608829102441023422458989
744*a + 1110881475104109582383304709231832166)
sage: E = EllipticCurve(ainvs)
sage: assert E.conductor().norm() == 1
sage: E.global_minimal_model(semi_global=True)
RuntimeError: No prime of norm less than 1000 found in class Fractional ideal class (1569, a + 867)
}}}
Experiment with this example shows that the smallest prime in that class has norm 23567.
The obvious solution is to keep doubling the bound until success. The ideal in the error message has norm 1569 and is a product of two primes so could be used instead but then the model returned would not be ""semi-global"" in the above sense.
Whatever is decided, the semi-global=True option (which is not the default) should not cause a run-time error.
",defect,closed,major,sage-7.5,elliptic curves,fixed,global minimal model,,,John Cremona,Chris Wuthrich,N/A,,0d771e0dbdf553fa17e2f6b432acf349ada80d8d,0d771e0dbdf553fa17e2f6b432acf349ada80d8d,,