MathOverflow is a question and answer site for professional mathematicians. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have two curves, for example hyperelliptic:

\begin{align} &y^2 = x^6 + 14x^4 + 5x^3 + 14x^2 + 18, \\\\ &y^2 = x^6 + 14x^4 + 5x^3 + 14x^2 + 5x + 1 \end{align}

Is it possible to check them on birational equivalence (is able one curve be birationally transformed to another?) via some computer algebra system (like GAP, Sage, Magma, Maple, Maxima or something)?

It would be great if such system be free, but it is almost OK if It isn't.

share|cite|improve this question
up vote 6 down vote accepted

I suppose Magma's IsIsomorphic will do the job.

From the documentation

IsIsomorphic(C, D) : Crv, Crv -> BoolElt,MapSch Given irreducible curves C and D this function returns true is C and D are isomorphic over their common base field. If so, it also returns a scheme map giving an isomorphism between them. The curves C and D must be reduced. Currently the function requires that the curves are not both genus 0 nor both genus 1 unless the base field is finite.

Example code in the web calculator


true Mapping from: CrvPln: C1 to CrvPln: C2
with equations :

Wish this is implemented in sage.

share|cite|improve this answer

Your example is a bit of a red herring, as this is relatively easy for hyperelliptic curves. A hyperelliptic curve can be reconstructed uniquely from the data of the branch divisor of the degree $2$ map to $\mathbb{P}^1$. Furthermore, isomorphisms of hyperelliptic curves commute with the degree $2$ map to $\mathbb{P}^1$. Thus for two hyperelliptic curves, the only issue is whether or not the branch divisors are projectively equivalent, and this is quite straightforward to check.

share|cite|improve this answer
So, how do you check whether the branch divisors are projectively equivalent? My gut says that this should be easy, but I don't actually know how. – David Speyer Nov 9 '11 at 2:59
I don't have a "smart" way, but if the curve is $y^2 = f(x)$ then the branch points are the roots of $f$. Normalize the branch points of one of the curves by sending 3 points to $0,1,\infty$. Given any 3 branch points of the second curve, map them to $0,1,\infty$ and check if the images of the other branch points coincide with the branch points of the original curve. – Jack Huizenga Nov 9 '11 at 3:47
The problem is just the classification of binary quadratic/cubic/quintic/etc. forms, up to $GL(n)$ action. (We view a function on $\mathbb P^1$ as a function on $\mathbb A^2$, and see what kind of function it is). This is a fairly standard representation theory problem, but I don't know the answer. Probably, one can show that the ring of polynomial invariants completely classifies the orbit. For elliptic curves, the $j$-invariant, which is a rational function of the coefficients, fits the bill. But the formulas for these in higher dimensions might be even nastier. – Will Sawin Nov 9 '11 at 5:00
For genus two (as in the OP's example), there are the Igusa invariants. – Felipe Voloch Nov 9 '11 at 9:44
Re Jack Huizenga's first suggestion: You have to check all triples of roots of the second branch locus, you can't just choose $3$ roots of $f$ and $3$ roots of $g$. – David Speyer Nov 9 '11 at 12:52

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.