\documentclass[10pt]{beamer}
\include{macros}

\mode<presentation>
{
%  \usetheme{Warsaw}
\usecolortheme{rose}
\usecolortheme{seahorse}
  \setbeamercovered{transparent}
  % or whatever (possibly just delete it)
}


\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amssymb}


\newcommand{\defn}[1]{{\em #1}}
\newcommand{\an}{{\rm an}}
\newcommand{\e}{\mathbf{e}}
\DeclareFontEncoding{OT2}{}{} % to enable usage of cyrillic fonts
  \newcommand{\textcyr}[1]{%
    {\fontencoding{OT2}\fontfamily{wncyr}\fontseries{m}\fontshape{n}%
     \selectfont #1}}
\newcommand{\Sha}{{\mbox{\textcyr{Sh}}}}
\newcommand{\la}{\leftarrow}
\newcommand{\da}{\downarrow}
\newcommand{\set}[1]{\{#1\}}
\newcommand{\Q}{\mathbb{Q}}
\newcommand{\QQ}{\mathbb{Q}}
\newcommand{\R}{\mathbb{R}}
\newcommand{\K}{{\mathbb K}}
\newcommand{\dual}{\bot}
\newcommand{\Z}{\mathbb{Z}}
\newcommand{\F}{\mathbb{F}}
\newcommand{\h}{\mathfrak{h}}
\newcommand{\p}{\mathfrak{p}}
\newcommand{\m}{\mathfrak{m}}
\newcommand{\pari}{{\sc Pari}}
\newcommand{\magma}{{\sc Magma}}
\newcommand{\hd}[1]{\vspace{1ex}\noindent{\bf #1} }
\newcommand{\cL}{\mathcal{L}}
\renewcommand{\l}{\ell}
\renewcommand{\t}{\tau}
\renewcommand{\O}{\mathcal{O}}
\renewcommand{\a}{\mathfrak{a}}
\DeclareMathOperator{\im}{im}
\DeclareMathOperator{\Sym}{Sym}
\DeclareMathOperator{\Disc}{Disc}
\DeclareMathOperator{\Reg}{Reg}
\DeclareMathOperator{\Sel}{Sel}
\DeclareMathOperator{\Real}{Re}
\renewcommand{\Re}{\Real}
\DeclareMathOperator{\new}{new}
\DeclareMathOperator{\tor}{tor}
\DeclareMathOperator{\Ker}{Ker}
\DeclareMathOperator{\ord}{ord}
\DeclareMathOperator{\HH}{H}
\renewcommand{\H}{\HH}

\newcommand{\rhobar}{\overline{\rho}}

%\newcommand{\eps}[4]{\rput[lb](#1,#2){%
%    \includegraphics[width=#3\textwidth]{#4}}}
\newcommand{\eps}[4]{}


\usepackage{fancybox}
\usepackage{graphicx}
%\include{macros}
\renewcommand{\dual}{\vee}

\setlength{\fboxsep}{1em}
\setlength{\parindent}{0cm}
\usepackage{pstricks}
\usepackage{graphicx}
\newrgbcolor{ddblue}{0 0 0.5}
\newrgbcolor{dblue}{0 0 0.8}
\renewcommand{\hd}[1]{\begin{center}\LARGE\bf\dblue #1\vspace{-2.5ex}\end{center}}
\newrgbcolor{dred}{0.7 0 0}
\newrgbcolor{dgreen}{0 0.3 0}
\newcommand{\rd}[1]{{\bf \dred #1}}
\newcommand{\gr}[1]{{\bf \dgreen #1}}
\renewcommand{\defn}[1]{{\bf \dblue #1}}
\newrgbcolor{purple}{0.3 0 0.3}
\renewcommand{\magma}{{\purple\sc Magma}}

\newcommand{\bd}[1]{{\bf\dred #1}}

\newcommand{\heading}[1]{\begin{center} \Large \sc \dblue #1 \end{center}}


\author{William Stein\\
University of Washington, Seattle}
\date{Sage Days 5: Clay Math Institute\\
(get Sage at {\tt http://sagemath.org})}

\title{\blue\bf Computing With the Birch and Swinnerton-Dyer Conjecture}

\begin{document}

\begin{frame}
\maketitle
\end{frame}

\begin{frame}
\frametitle{Opening Remarks}
\Large
\begin{enumerate}
\item Welcome to {\dblue Sage Days 5: Computational Arithmetic Geometry}!\\
Organizers: Jim Carlson, David Harvey, Kiran Kedlaya, and William Stein
\vfill

\item {\bf\dgreen MANY THANKS to the Clay Mathematics Institute for
    generously fully funding this workshop!}  \vfill

\item Many talks will be fairly specialized, so please do not hesitate
  to {\dblue work during talks}.

\item {\bf Schedule change:} I swapped my BSD and Sato-Tate talks so Barry
  Mazur's can come to the Sato-Tate talk.


\end{enumerate}

\end{frame}

\begin{frame}[fragile]
\frametitle{Elliptic Curves}

\large {\dblue Elliptic curves} are (projective nonsingular) curves given by:

$$
  y^2 + a_1 xy + a_3 y = x^3 + a_2 x^2 + a_4 x + a_6.
$$
{\ddblue
\begin{verbatim}
sage: E = EllipticCurve([1,2,3,4,5]); E
Elliptic Curve defined by 
          y^2 + x*y + 3*y = x^3 + 2*x^2 + 4*x + 5
sage: E.cremona_label()
'10351a1'

sage: EllipticCurve([1,2])
Elliptic Curve defined by y^2  = x^3 + x + 2 ...
sage: E = EllipticCurve(1); E         # j-invariant 1
          y^2 + x*y  = x^3 + 36/1727*x + 1/1727 
sage: EllipticCurve('389a1')
          y^2 + y = x^3 + x^2 - 2*x 
\end{verbatim}
}
\end{frame}

\begin{frame}[fragile]
\frametitle{More Elliptic Curves: Cremona and Stein-Watkins}
{\ddblue 
\begin{verbatim}
sage: P = SteinWatkinsPrimeData(0)

sage: C = P.next(); C.curves
[[[1, -1, 1, -1, 0], '[1]', '1', '4'], 
 [[1, -1, 1, -6, -4], '[2]', '1', '2x'], 
 [[1, -1, 1, -1, -14], '(4)', '1', '4'], 
 [[1, -1, 1, -91, -310], '[1]', '1', '2']]

sage: cremona_optimal_curves([25..30])   
<generator object at 0x2ad8cb0>

sage: list(cremona_optimal_curves([1..30]))
[Elliptic Curve defined by y^2 + y = x^3 - x^2 - 10*x - 20 
 ... 
 Elliptic Curve defined by y^2 + x*y + y = x^3 + x + 2 
 over Rational Field]
\end{verbatim}     
}
\end{frame}

\begin{frame}
\frametitle{Easy Invariants of Elliptic Curves}
\Large For an elliptic curve $E$ over $\QQ$, these invariants
are easy to compute:
\vfill
\begin{enumerate}
\item Discriminant
\item Conductor 
\item Division polynomials
\item Period lattice; real volume $\Omega_E$.
\item Root number
\end{enumerate}
\end{frame}

\begin{frame}[fragile]
\frametitle{Example Computing Easy Invariants}
{\ddblue 
\begin{verbatim}
sage: E = EllipticCurve([1..5])

sage: factor(E.discriminant())
-1 * 11 * 941

sage: factor(E.conductor())
11 * 941

sage: E.division_polynomial(3)
3*x^4 + 9*x^3 + 33*x^2 + 87*x + 35

sage: E.period_lattice()    # No control over precision!! (TODO)
(2.78074001376672977106319...

sage: E.omega()   # No control over precision!
2.780740013766729771063197...

sage: E.root_number()
-1
\end{verbatim}     
}
\end{frame}


\begin{frame}[fragile]
\frametitle{Elliptic Curves over {\dred Number Fields}}
\large
For $E$ over a number field, Sage computes:
\begin{enumerate}
\item {\bf basic invariants} (as above),
\item {\bf $2$-descent} (Simon, Bradshaw)
\end{enumerate}
\vfill
Major gaps in functionality (that are all available in Magma):
\begin{enumerate}
\item {\dblue No Tate's algorithm} -- to compute conductor, reduction -- is not
in Sage.  Cremona's GPL'd Magma code will be ported (possible project
for this week).

\item {\dblue No L-series computation in any cases} -- could be built on top of
Dokchitser's program.  Sage also does {\em not} have fast computation
of $\#E(\F_q)$ yet, via baby-step giant step, though it {\em almost}
does (thanks to Martin Albrecht).

\item {\dblue Height bounds} over number fields.  Again GPL'd Magma code
of Cremona exists to do this, which needs to be ported. 

\end{enumerate}
\end{frame}


\begin{frame}[fragile]
\frametitle{Example over Number Fields}
{\ddblue
\begin{verbatim}
sage: K.<a> = NumberField(x^2 + 2)

sage: E = EllipticCurve([a, 3]); E
Elliptic Curve defined by y^2  = x^3 + a*x + 3 over 
Number Field in a with defining polynomial x^2 + 2

sage: E.j_invariant()
-3359232/59177*a + 221184/59177

sage: E.simon_two_descent()
(0, -1, [])

sage: E.discriminant()
128*a - 3888
\end{verbatim}
}

\end{frame}


\begin{frame}
\frametitle{$L$-Series}
{\large
Much functionality for {\dred $L$-series of
elliptic curves over $\QQ$}:
\vfill
\begin{enumerate}
\item $L(E,1)$ and $L'(E,1)$ with {\dblue provable error bounds}. (Stein)

\item $L^{(n)}(E,s)$ for any $n\geq 0$ and complex $s$ to
  any requested precision, and the {\dblue Taylor expansion} about any point.
(Dokchitser)

\item First $m$ {\dblue zeros of $L(E,s)$ in the
  critical strip} to double precision. (Rubinstein)

\item {\dblue $p$-adic $L$-series} $\cL_p(E,T)$. (Stein and Wuthrich)

\item Special values of {\dblue symmetric powers $L(\Sym^{(n)}(E),s)$}
of elliptic curve $L$-functions. (Watkins)

\end{enumerate}
}
\end{frame}

\begin{frame}[fragile]
\frametitle{1. $L(E,1)$ and $L'(E,1)$ with provable bounds}

Needed for my joint paper on ``proving BSD for
Cremona's book'':

{\dblue 
\begin{verbatim}
sage: E = EllipticCurve('37b')

sage: E.Lseries_at1(k=10)  # 10 terms
(0.725676956622683, 0.0000360967566544175)

sage: E.Lseries_at1(k=100)  # 100 terms
(0.725681061936153, 1.52437502288743e-45)

sage: E = EllipticCurve('37a')

sage: E.Lseries_deriv_at1(k=10)  # 10 terms
(0.306000959182700, 0.0000360967566544175)

sage: E.Lseries_deriv_at1(k=100)  # 100 terms
(0.305999773834879, 1.52437502288740e-45)
\end{verbatim}
}
\end{frame}



\begin{frame}[fragile]
\frametitle{2. $L^{(n)}(E,s)$}
{\dblue 
\begin{verbatim}
sage: E = EllipticCurve('389a')
sage: L = E.Lseries_dokchitser()

sage: L(1)
-1.33174198778018e-19

sage: L(1+I)
-0.638409938588039 + 0.715495239204667*I

sage: L.derivative(1, 2)
1.51863300057685

sage: L.taylor_series(1)
-2.69129566562797e-23 + (1.52514901968783e-23)*z + ...

sage: L.taylor_series(I)
-0.764013101118315 - 9.46601163567108*I + (-19.889... + ...
\end{verbatim}
}

\end{frame}

\begin{frame}[fragile]
\frametitle{Draw a plot of an $L$-series}
{\dblue
\begin{verbatim}
sage: E = EllipticCurve('389a')
sage: L = E.Lseries_dokchitser()

sage: show(plot(lambda x: abs(L(x)),0, 3), 
        xmin=-0.5, ymin=0, dpi=150)
\end{verbatim}
}
\begin{center}
 \includegraphics[width=4in,height=2in]{lsergraph}
\end{center}
\end{frame}

\begin{frame}[fragile]
\frametitle{3. Zeros of $L(E,s)$ in the  critical strip}
{\dblue 
\begin{verbatim}
sage: E = EllipticCurve('389a')

sage: time v = E.Lseries_zeros(20); v
[0.000000000, 0.000000000, 2.87609907, 4.41689608, 5.79340263, 
 6.98596665, 7.47490750, 8.63320525, 9.63307880, 10.3514333, 
11.1109355, 11.9335273, 12.6672137, 13.6248537, 15.5056185, 
15.9115860, 16.2500699, 17.1798830, 17.8677033, 18.6909039]
CPU time: 0.01 s,  Wall time: 0.76 s

sage: show(list_plot([(1/2, y) for y in v],
              pointsize=40), xmin=0, figsize=[4,8])
\end{verbatim}

}
\end{frame}

\begin{frame}
Zeros of $L(E,s)$... for 389a (rank 2 curve):

\begin{center}
\includegraphics[height=3.5in]{zeros_389a}
\end{center}

\end{frame}

\begin{frame}[fragile]
\frametitle{4. $p$-adic $L$-series $\cL_p(E,T)$}

{\dblue 
\begin{verbatim}
sage: E = EllipticCurve('37a')
sage: L = E.padic_lseries(5)
sage: L.series(5)  # 5th approximation
\end{verbatim}
$$
  O(5^{7}) + \left(1 + 4 \cdot 5 + 2 \cdot 5^{2} + 5^{3} + O(5^{4})\right)T + \left(3 + 3 \cdot 5^{2} + 4 \cdot 5^{3} + O(5^{4})\right)T^{2} +
$$
$$ \left(2 + 2 \cdot 5 + 4 \cdot 5^{2} + 2 \cdot 5^{3} + O(5^{4})\right)T^{3} + \left(4 + 3 \cdot 5 + 5^{2} + 3 \cdot 5^{3} + O(5^{4})\right)T^{4} + \cdots
$$
}

\begin{enumerate}

\item {\dred Every digit} in output is correct (work of
Koopa Koo, Pollack, Stein, Wuthrich).

\item Sage only -- computing these is not included in Magma.

\item A wide range of curves treated 
({\dred supersingular, ordinary, bad mult. reduction})

\item Not good for high precision -- need 
 Pollack-Stevens' $p$-adic
  {\dred overconvergent modular symbols} algorithm.

\item These $p$-adic series are crucial to computational
applications of Iwasawa theory to the BSD conjecture.
\end{enumerate}

\end{frame}


\begin{frame}[fragile]
\frametitle{5. Example of a Symmetric Power $L$-function}
{\dblue\begin{verbatim}
sage: E = EllipticCurve('37a')
sage: sympow('-new_data 2')      # only do once
sage: E.Lseries_sympow(2, 16)
'2.492262044273650E+00'
\end{verbatim}
}

Watkins' awesome Sympow also provides {\dred the world's best algorithm} for
computing {\dred modular degrees}:
{\dblue\begin{verbatim}
sage: E = EllipticCurve('5077a')  # rank 3
sage: time E.modular_degree()  
1984
CPU time: 0.00 s,  Wall time: 0.01 s

sage: E = EllipticCurve([0, 0, 1, -79, 342])  # a rank 5 curve
sage: E.conductor()
19047851

sage: time E.modular_degree()          # amazing!!!
33108352
Time: CPU 0.03 s, Wall: 207.52 s
\end{verbatim}
}
%(When I met Mark at the AWS in 199x, the last computation was
%far beyond any existing software or algorithms.)
\end{frame}



\begin{frame}
\frametitle{Computing the Mordell-Weil Group}

\large
Sage has excellent 2-descent code:

\begin{enumerate}

\item $E(\QQ)$ via {\dblue $2$-descent} -- Cremona's superb C++
  programs (mwrank).

\item $E(\QQ)$ via algebraic {\dblue $2$-descent} -- Denis Simon's programs

\end{enumerate}

\vfill
{\dred Only} Magma has these additional algorithms:
\begin{enumerate}
\item {\dred Heegner points method} (Watkins)
\item {\dred $3$-descent} (Stoll)
\item {\dred $4$-descent}
\end{enumerate}

\end{frame}

\begin{frame}[fragile]
\frametitle{Some Example Mordell-Weil Group Computations}
\dblue
\begin{verbatim}
sage: E = EllipticCurve([1,2,3,4,5])

sage: time E.gens()
[(1 : 2 : 1)]
CPU time: 0.01 s,  Wall time: 0.16 s

sage: E = EllipticCurve([12,2007])

sage: time E.gens()
[(448569/4096 : -300810003/262144 : 1)]
CPU time: 0.02 s,  Wall time: 0.20 s

sage: time E.simon_two_descent()
(1, 1, [(448569/4096 : 300810003/262144 : 1)])
CPU time: 0.05 s,  Wall time: 0.69 s
\end{verbatim}
  
\end{frame}

\begin{frame}
\frametitle{Regulators}
\Large
\begin{enumerate}
\item Classical regulator of $E(\Q)$ (TODO: add high precision).
\item Sage {\dred does not compute} heights or regulators over number fields.
\item Sage is by far the best in the world at computing 
{\dblue $p$-adic heights and regulators} 
(Harvey, Stein, Bradshaw, Kedlaya, Mazur, Tate); important in
  $p$-analogues of the BSD conjecture.  
\item Need to implement {\dred $p$-adic heights over number fields}. 
\end{enumerate}

\end{frame}

\begin{frame}[fragile]
\frametitle{Examples computing classical and $p$-adic regulators}
\dblue
\begin{verbatim}
sage: E = EllipticCurve('389a')
sage: E.regulator()
0.152460177943144

sage: time E.padic_regulator(5, prec=10)
5^2 + 2*5^3 + 2*5^4 + 4*5^5 + 3*5^6 + 4*5^7 + O(5^8)
CPU time: 0.22 s,  Wall time: 0.25 s

sage: time E.padic_regulator(997, prec=10)
740*997^2 + 916*997^3 + 472*997^4 + 325*997^5 + 697*997^6 
     + 642*997^7 + 68*997^8 + 860*997^9 + O(997^10)
CPU time: 0.44 s,  Wall time: 0.45 s

# INCREDIBLE ----------------------------\/!!!
sage: time E.padic_regulator(next_prime(10^5), prec=10)
42582*100003^2 + 35250*100003^3 + 12790*100003^4 
     + 64078*100003^5 + 67283*100003^6 + 48411*100003^7 
     + 7413*100003^8 + 22370*100003^9 + O(100003^10)
CPU time: 3.95 s,  Wall time: 4.50 s

\end{verbatim}

\end{frame}


\begin{frame}
\frametitle{The Birch and Swinnerton-Dyer Conjecture}

\Large
{\dblue Conjecture:}\\The rank $r$ of $E(\Q)$ equals
$\ord_{s=1} L(E,s)$.
\vfill

{\dblue Conjecture:} We have
{\dred $$
  \frac{L^{(r)}(E,1)}{r!} = \frac{\prod c_p \cdot \Reg_E\cdot \Omega_E \cdot \#\Sha(E)}{\#E(\Q)_{\tor}^2}.
$$
}

And $p$-adic analogues with $L(E,s)$ replaced by $\cL_p(E,T)$
and $\Reg(E)$ replaced by $\Reg_{p}(E)$.
\vfill
There are major theorems about the $p$-adic versions (due to Kato,
Skinner, Perrin-Riou, and others).

\end{frame}

\begin{frame}
\frametitle{Compute Predicted Order of $\Sha(E)$}
\Large
In practice fairly straightforward to compute everything 
in the BSD conjecture except $\Sha(E)$.

\vfill

Compute:

\begin{enumerate}

\item Order of $\Sha$ predicted by BSD Conjecture.

\item Order of $\Sha$ predicted by the $p$-adic BSD conjecture;
in many cases theorems imply that this order is
correct {\dred up to a $p$-adic unit}, assuming $\Reg_p(E)\neq 0$.

\end{enumerate}

\end{frame}

\begin{frame}[fragile]
\frametitle{Examples of conjectural order computation}

{\dblue
\begin{verbatim}
sage: E = EllipticCurve('389a')

sage: E.sha_an()
1.00000000000000

sage: time E.sha_an_padic(5, prec=3)  # Wuthrich, Stein
1 + O(5^2)
CPU time: 0.73 s,  Wall time: 0.90 s

sage: time E.sha_an_padic(23)
1 + O(23)
CPU time: 2.28 s,  Wall time: 2.59 s

sage: time E.sha_an_padic(97)
1 + O(97)
CPU time: 39.37 s,  Wall time: 45.24 s
\end{verbatim}
}

\Large {\bf Conclusion:} $\Sha(E/\QQ)[97] = 0$ (as predicted by BSD).  Try
that using descent!!

\end{frame}

\begin{frame}
\frametitle{Kolyvagin and Kato's Theorems}
\Large
{\bf Theorems (Kolyvagin, Kato):} When $E$ has (analytic) rank $0$ or $1$,
explicit bounds on $\Sha(E/\QQ)$ under
certain hypothesis. 

\vfill
Sage can verify these hypothesis and compute bounds:
\begin{enumerate}
\item Heegner discriminants.

\item Index of Heegner subgroup in $E(K)$.

\item All primes $p$ for which $\rhobar_{E,p}$ is not surjective.

\item Whether $\rhobar_{E,p}$ is irreducible.

\end{enumerate}


\end{frame}

\begin{frame}[fragile]
\frametitle{Examples applying Kolyvagin's theorem}
{\dblue
\begin{verbatim}
sage: E = EllipticCurve('37a')
sage: E.sha_an()
1
sage: E.analytic_rank()
1

sage: E.heegner_discriminants_list(10)
[-7, -11, -40, -47, -67, -71, -83, -84, -95, -104]
sage: E.heegner_index(-7)       # interval arithmetic
[0.99998569 .. 1.0000134]

sage: E.non_surjective()
[]
sage: E.shabound_kolyvagin()    # so only 2 divides Sha
([2], 1)
sage: E.two_selmer_shabound()   # bound on 2-rank of Sha
0
\end{verbatim}
}

{\bf Thus $\#\Sha(E/\Q) = 1$, hence the BSD conjecture is true for $E$.}
\end{frame}

\begin{frame}[fragile]
\frametitle{Examples applying Kato's theorem}
{\dblue
\begin{verbatim}
sage: E = EllipticCurve('37b')
sage: E.analytic_rank()
0
sage: E.non_surjective()
[(3, '3-torsion')]
sage: E.shabound_kato()
[2, 3]
sage: E.three_selmer_rank()          # calls magma
Traceback (most recent call last):
...
NotImplementedError:  Currently, only the case with irreducible phi3 is implemented.
sage: E.two_selmer_shabound()
0
\end{verbatim}
}

Thus Kato and $2$-descent 
implies that only $3$ could divide $\#\Sha(E/\Q)$.
Moreover, Wuthrich's generalization of Kato's theorem
implies that moreover $3\nmid\#\Sha(E/\Q)$, so the 
BSD conjecture is true for $E$.

\vfill
{\bf Thus BSD is true for the modular abelian variety $J_0(37)$.}
\end{frame}

\begin{frame}
\Huge
\begin{center}
{\bf\dblue Thanks. Questions?}
\end{center}
\end{frame}


\end{document}

