[Next] [Prev] [Right] [Left] [Up] [Index] [Root]
Kodaira Symbols

Kodaira Symbols

Kodaira symbols have their own type KodSym. Apart from the two functions that determine symbols for elliptic curves, there is a special creation function and a comparison operator, to test Kodaira symbols.

KodairaSymbol(E, p) : CurveEll -> MonStgElt
Given an elliptic curve E defined over Q and a prime number p, this function returns the reduction type of E modulo p in the form of a Kodaira symbol.
KodairaSymbols(E) : CurveEll -> MonStgElt
Given an elliptic curve E defined over Q, this function returns the reduction types of E modulo the bad primes in the form of a sequence of Kodaira symbols.
KodairaSymbol(s) : MonStgElt -> KodSym
Given a string s, return a Kodaira symbol it represents. The values of s that are allowed are: "I0", "I1", "I2", ..., "In", "II", "III", "IV", and "I0*", "I1*", "I2*", ..., "In*", "II*", "III*", "IV*". The dots stand for "Ik" with k a positive integer. The `generic' type "In" is provided to be able to match types "I"n for any integer n>0 (and similarly for "In*"). This creation function is primarily useful for comparing values returned by the functions determining the Kodaira symbol for a curve.
h eq k : KodSym, KodSym -> BoolElt
Given two Kodaira symbols h and k, this function returns true if and only if either both are identical, or one is generic (of the form "In", or "In*") and the other is specific of the same type: "In" will compare equal with any of "I1", "I2", "I3", etc., and "In*" will compare equal with any of "I1*", "I2*", "I3*", etc. Note however that "In" and "I3" are different from the point of view of set creation.
ReductionType(E, p) : CurveEll, RngIntElt -> MonStgElt
Returns a string describing the reduction type: the possibilities are "Good", "Additive", "Split multiplicative" or "Unsplit multiplicative". These correspond to the type of singularity (if any) on the reduced curve. This function is necessary as the Kodaira symbols do not distinguish between split and unsplit multiplicative reduction.

Example Elcu_Kodaira (H53E12)

We search for curves with a particular reduction type `I0*' in a family of curves.

> for n := 2 to 100 do                              
>    E := EllipticCurve([n,0]);
>    for p in BadPrimes(E) do
>       if KodairaSymbol(E, p) eq KodairaSymbol("I0*") then
>          print p, n;
>       end if;
>    end for;
> end for;                          
3 9
3 18
5 25
3 36
3 45
7 49
5 50
3 63
3 72
5 75
3 90
7 98
3 99
5 100

[Next] [Prev] [Right] [Left] [Up] [Index] [Root]