Improved upper bounds for the number of points on curves over finite fields (2003)

We give new arguments that improve the known upper bounds on the maximal number <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:mrow> <mml:msub> <mml:mi>N</mml:mi> <mml:mi>q</mml:mi> </mml:msub> <mml:mrow> <mml:mo>(</mml:mo> <mml:mi>g</mml:mi> <mml:mo>)</mml:mo> </mml:mrow> </mml:mrow> </mml:math> of rational points of a curve of genus <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:mi>g</mml:mi> </mml:math> over a finite field <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:msub> <mml:mi>𝔽</mml:mi> <mml:mi>q</mml:mi> </mml:msub> </mml:math> , for a number of pairs <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:mrow> <mml:mo>(</mml:mo> <mml:mi>q</mml:mi> <mml:mo>,</mml:mo> <mml:mi>g</mml:mi> <mml:mo>)</mml:mo> </mml:mrow> </mml:math> . Given a pair <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:mrow> <mml:mo>(</mml:mo> <mml:mi>q</mml:mi> <mml:mo>,</mml:mo> <mml:mi>g</mml:mi> <mml:mo>)</mml:mo> </mml:mrow> </mml:math> and an integer <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:mi>N</mml:mi> </mml:math> , we determine the possible zeta functions of genus- <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:mi>g</mml:mi> </mml:math> curves over <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:msub> <mml:mi>𝔽</mml:mi> <mml:mi>q</mml:mi> </mml:msub> </mml:math> with <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:mi>N</mml:mi> </mml:math> points, and then deduce properties of the curves from their zeta functions. In many cases we can show that a genus- <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:mi>g</mml:mi> </mml:math> curve over <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:msub> <mml:mi>𝔽</mml:mi> <mml:mi>q</mml:mi> </mml:msub> </mml:math> with <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:mi>N</mml:mi> </mml:math> points must have a low-degree map to another curve over <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:msub> <mml:mi>𝔽</mml:mi> <mml:mi>q</mml:mi> </mml:msub> </mml:math> , and often this is enough to give us a contradiction. In particular, we are able to provide eight previously unknown values of <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:mrow> <mml:msub> <mml:mi>N</mml:mi> <mml:mi>q</mml:mi> </mml:msub> <mml:mrow> <mml:mo>(</mml:mo> <mml:mi>g</mml:mi> <mml:mo>)</mml:mo> </mml:mrow> </mml:mrow> </mml:math> , namely: <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:mrow> <mml:msub> <mml:mi>N</mml:mi> <mml:mn>4</mml:mn> </mml:msub> <mml:mrow> <mml:mo>(</mml:mo> <mml:mn>5</mml:mn> <mml:mo>)</mml:mo> </mml:mrow> <mml:mo>=</mml:mo> <mml:mn>17</mml:mn> </mml:mrow> </mml:math> , <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:mrow> <mml:msub> <mml:mi>N</mml:mi> <mml:mn>4</mml:mn> </mml:msub> <mml:mrow> <mml:mo>(</mml:mo> <mml:mn>10</mml:mn> <mml:mo>)</mml:mo> </mml:mrow> <mml:mo>=</mml:mo> <mml:mn>27</mml:mn> </mml:mrow> </mml:math> , <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:mrow> <mml:msub> <mml:mi>N</mml:mi> <mml:mn>8</mml:mn> </mml:msub> <mml:mrow> <mml:mo>(</mml:mo> <mml:mn>9</mml:mn> <mml:mo>)</mml:mo> </mml:mrow> <mml:mo>=</mml:mo> <mml:mn>45</mml:mn> </mml:mrow> </mml:math> , <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:mrow> <mml:msub> <mml:mi>N</mml:mi> <mml:mn>16</mml:mn> </mml:msub> <mml:mrow> <mml:mo>(</mml:mo> <mml:mn>4</mml:mn> <mml:mo>)</mml:mo> </mml:mrow> <mml:mo>=</mml:mo> <mml:mn>45</mml:mn> </mml:mrow> </mml:math> , <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:mrow> <mml:msub> <mml:mi>N</mml:mi> <mml:mn>128</mml:mn> </mml:msub> <mml:mrow> <mml:mo>(</mml:mo> <mml:mn>4</mml:mn> <mml:mo>)</mml:mo> </mml:mrow> <mml:mo>=</mml:mo> <mml:mn>215</mml:mn> </mml:mrow> </mml:math> , <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:mrow> <mml:msub> <mml:mi>N</mml:mi> <mml:mn>3</mml:mn> </mml:msub> <mml:mrow> <mml:mo>(</mml:mo> <mml:mn>6</mml:mn> <mml:mo>)</mml:mo> </mml:mrow> <mml:mo>=</mml:mo> <mml:mn>14</mml:mn> </mml:mrow> </mml:math> , <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:mrow> <mml:msub> <mml:mi>N</mml:mi> <mml:mn>9</mml:mn> </mml:msub> <mml:mrow> <mml:mo>(</mml:mo> <mml:mn>10</mml:mn> <mml:mo>)</mml:mo> </mml:mrow> <mml:mo>=</mml:mo> <mml:mn>54</mml:mn> </mml:mrow> </mml:math> , and <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:mrow> <mml:msub> <mml:mi>N</mml:mi> <mml:mn>27</mml:mn> </mml:msub> <mml:mrow> <mml:mo>(</mml:mo> <mml:mn>4</mml:mn> <mml:mo>)</mml:mo> </mml:mrow> <mml:mo>=</mml:mo> <mml:mn>64</mml:mn> </mml:mrow> </mml:math> . Our arguments also allow us to give a