Tate's algorithm

In the theory of elliptic curves, Tate's algorithm takes as input an integral model of an elliptic curve E over $$\mathbb{Q}$$, or more generally an algebraic number field, and a prime or prime ideal p. It returns the exponent fp of p in the conductor of E, the type of reduction at p, the local index


 * $$c_p=[E(\mathbb{Q}_p):E^0(\mathbb{Q}_p)],$$

where $$E^0(\mathbb{Q}_p)$$ is the group of $$\mathbb{Q}_p$$-points whose reduction mod p is a non-singular point. Also, the algorithm determines whether or not the given integral model is minimal at p, and, if not, returns an integral model with integral coefficients for which the valuation at p of the discriminant is minimal.

Tate's algorithm also gives the structure of the singular fibers given by the Kodaira symbol or Néron symbol, for which, see elliptic surfaces: in turn this determines the exponent fp of the conductor E.

Tate's algorithm can be greatly simplified if the characteristic of the residue class field is not 2 or 3; in this case the type and c and f can be read off from the valuations of j and Δ (defined below).

Tate's algorithm was introduced by as an improvement of the description of the Néron model of an elliptic curve by.

Notation
Assume that all the coefficients of the equation of the curve lie in a complete discrete valuation ring R with perfect residue field  K and maximal ideal generated by a prime π. The elliptic curve is given by the equation
 * $$y^2+a_1xy+a_3y = x^3+a_2x^2+a_4x+a_6.$$

Define:
 * $$v(\Delta)=$$ the p-adic valuation of $$\pi$$ in $$\Delta$$, that is, exponent of $$\pi$$ in prime factorization of $$\Delta$$, or infinity if $$\Delta = 0$$
 * $$a_{i,m}=a_i/\pi^m$$
 * $$b_2=a_1^2+4a_2$$
 * $$b_4=a_1a_3+2a_4^{}$$
 * $$b_6=a_3^2+4a_6$$
 * $$b_8=a_1^2a_6-a_1a_3a_4+4a_2a_6+a_2a_3^2-a_4^2$$
 * $$c_4=b_2^2-24b_4$$
 * $$c_6=-b_2^3+36b_2b_4-216b_6$$
 * $$\Delta=-b_2^2b_8-8b_4^3-27b_6^2+9b_2b_4b_6$$
 * $$j=c_4^3/\Delta.$$

The algorithm

 * Step 1: If π does not divide Δ then the type is I0, c=1 and f=0.
 * Step 2: If π divides Δ but not c4 then the type is Iv with v = v(Δ), c=v, and f=1.
 * Step 3. Otherwise, change coordinates so that π divides a3,a4,a6. If π2 does not divide a6 then the type is II, c=1, and f=v(Δ);
 * Step 4. Otherwise, if π3 does not divide b8 then the type is III, c=2, and f=v(Δ)&minus;1;
 * Step 5. Otherwise, let Q1 be the polynomial
 * $$Q_1(Y) = Y^2+a_{3,1}Y-a_{6,2}.$$.
 * If π3 does not divide b6 then the type is IV, c=3 if $$Q_1(Y)$$ has two roots in K and 1 if it has two roots outside of K, and f=v(Δ)&minus;2.


 * Step 6. Otherwise, change coordinates so that π divides a1 and a2, π2 divides a3 and a4, and π3 divides a6. Let P be the polynomial
 * $$P(T) = T^3+a_{2,1}T^2+a_{4,2}T+a_{6,3}.$$
 * If $$P(T)$$ has 3 distinct roots modulo π then the type is I0*, f=v(&Delta;)&minus;4, and c is 1+(number of roots of P in K).


 * Step 7. If P has one single and one double root, then the type is Iν* for some ν>0, f=v(Δ)&minus;4&minus;ν, c=2 or 4: there is a "sub-algorithm" for dealing with this case.
 * Step 8. If P has a triple root, change variables so the triple root is 0, so that π2 divides a2 and π3 divides a4, and π4 divides a6. Let Q2 be the polynomial
 * $$Q_2(Y) = Y^2+a_{3,2}Y-a_{6,4}.$$.
 * If $$Q_2(Y)$$ has two distinct roots modulo π then the type is IV*, f=v(&Delta;)&minus;6, and c is 3 if the roots are in K, 1 otherwise.


 * Step 9. If $$Q_2(Y)$$ has a double root, change variables so the double root is 0. Then π3 divides a3 and π5 divides a6. If π4 does not divide a4 then the type is III* and f=v(Δ)&minus;7 and c = 2.
 * Step 10. Otherwise if π6 does not divide a6 then  the type is II* and f=v(Δ)&minus;8 and c = 1.
 * Step 11. Otherwise the equation is not minimal. Divide each an by πn and go back to step 1.

Implementations
The algorithm is implemented for algebraic number fields in the PARI/GP computer algebra system, available through the function elllocalred.