\chapter{Code: Del Pezzo surfaces}

In the supplemental files for this thesis is a zipped folder named \fontComputer{dP1\_code}. This folder contains all computer code referenced in this chapter. It also contains a zipped folder named \fontComputer{DX\_spec}, which contains code defining functions used in the \fontComputer{D*.txt} files we discuss below. The folder \fontComputer{DX\_spec} must be unzipped (anywhere) and saved in the directory containing the \fontComputer{D*.txt} files you wish to run.



\section{Code}

Included in the supplemental files for this thesis are the following digital documents, with names and behaviors as described below. (Note: In what follows, \fontComputer{*} is a wildcard that may be replaced by \fontComputer{4}, \fontComputer{8}, and \fontComputer{13}, corresponding to the types of del Pezzo surfaces of degree $1$ that we analyzed, named according to Dolgachev's classification \cite{Dolgachev2012}*{Table 8.14}.)
\begin{itemize}
\item \fontComputer{D*.txt}. This is the master file. It takes as required input the following files:
\begin{enumerate}
\item \fontComputer{D*\_ECs\_Fq.txt}. In this file we define the 240 exceptional curves on the del Pezzo surface, specialized to a suitable finite field $\fontField{F}_{q}$ computed by \fontComputer{D*\_SF\_FqSearch.txt}. Each exceptional curve is defined as a point in $\fontField{F}_{q}^{7}$, as described in Section \ref{sec : dP1 : Step Construct Splitting Field}. To obtain these results, we first compute the 240 exceptional curves on the del Pezzo surface over a suitable field $K$. (This can be done using the code \fontComputer{dP1ECs.txt}, after uncommenting the relevant definitions for $f_{4}$, $f_{6}$, and $K$. At the time of writing, the computation time for this file can be one or more days on a personal computer.) We then replace each occurrence of $\theta_{i}$ by $\overline{\theta}_{i}$, as described in Section \ref{sec : dP1 : Step Construct Splitting Field}.
\item\label{itm : Code : dP1 : Description : Matrix Reps} \fontComputer{D*\_GalGenMats.txt}. In this file we define a $9$-tuple $(\overline{\sigma_{i}(E_{j})})_{j = 1}^{9}$ for each generator $\sigma_{i} \in \galoisGroup(K \fieldExtension \rationals)$. Each entry $\overline{\sigma_{i}(E_{j})}$ of the $9$-tuple is an exceptional curve on the specialized del Pezzo surface, defined as a point in $\fontField{F}_{q}^{7}$. In the code \fontComputer{D*.txt} we take these inputs and compute the corresponding matrices $\fontMatrixRep{M}_{B,B}(\sigma_{i}) \in \generalLinear(9,\integers)$, as described in Section \ref{sec : dP1 : Step Matrix Reps} for the basis $B = (E_{1},\ldots,E_{9})$ of the Picard group.
\end{enumerate}
In the code \fontComputer{D*.txt} we compute the degree of $K$ as a field extension of $\rationals$, the order of the subgroup $\rho(G)$ generated by the matrices $\fontMatrixRep{M}_{B,B}(\sigma_{i})$, and check that $\order \rho(G) = [K : \rationals]$, confirming that $\rho(G) \isomorphism \galoisGroup(K \fieldExtension \rationals)$. We then use the code to compute the subgroup lattice of $\rho(G)$, up to $\integers$-conjugacy, and the first cohomology group associated to each of these subgroups. In the code we highlight certain subgroups of $\galoisGroup(K \fieldExtension \rationals)$ that are particularly easy to describe in terms of the generators of $\rho(G)$ we have defined.
\end{itemize}





\section{Sample output}

\subsection{Dolgachev type 4: Output}
\label{sec : Code : D4 Output}

\input{\filePathAppendices D4_Output}



\subsection{Dolgachev type 8: Output}
\label{sec : Code : D8 Output}

\input{\filePathAppendices D8_Output}



\subsection{Dolgachev type 13: Output}
\label{sec : Code : D13 Output}

\input{\filePathAppendices D13_Output}