\documentclass[11pt,draft]{article}
%
\author{Anne}
\usepackage{basic}
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{
   \node[shape=circle,draw,inner sep=1pt] (char) {#1};}}
%
\begin{document}
%

\section*{Kamnitzer--Knutson--Mirkovic Conjecture}

Zhijie asks about the following example.

In $A_3$ ($G=\PGL_4$) fix the usual reduced expression $\uvi = (1,2,3,1,2,1)$ and consider the Lusztig datum $n_\bullet = (1,1,0,0,1,1)$.

The smallest $\lambda$ and $\mu$ for the associated stable MV cycle satisfying Proposition XYZ in Section 2.2 of my thesis are
\[
\lambda = (5,3,2,0) \qquad \mu = (3,3,2,2)
\]
and the associated tableau is
\[
\young(11123,224,34)
\]
By applying Conjecture 4.6.2 of my thesis we can say what the free entries in each column of a matrix $A$ in the MVy slice to $\OO_\lambda$ associated to this tableau.
Let us fix notation for the coordinates of $A$.
\[
A = \left[\begin{BMAT}(e){ccc:ccc:cc:cc}{ccc:ccc:cc:cc}
    0&1&0&0&0&0&0&0&0&0\\
      0&0&1&0&0&0&0&0&0&0\\
      0&0&0&0&0& \circled{${c}_{1}$} &0&\circled{${b}_{2}$}&\circled{${a}_{3}$}&\circled{${b}_{3}$}\\
      0&0&0&0&1&0&0&0&0&0\\
      0&0&0&0&0&1&0&0&0&0\\
      0&0&0&0&0&0&0&\circled{${b}_{4}$}&{a}_{5}&\circled{${b}_{5}$}\\
      0&0&0&0&0&0&0&1&0&0\\
      0&0&0&0&0&0&0&0&0&{b}_{6}\\
      0&0&0&0&0&0&0&0&0&1\\
      0&0&0&0&0&0&0&0&0&0
\end{BMAT}\right]
\]
Our conjecture tells us that the circled entries will be the free entries, i.e. the nonzero variable entries. We went ahead and used this information to deduce and omit the entries that must be zero.

With the help of \texttt{M2} and speeding things up by substituting the first six prime numbers for the circled entries we find that the ideal of $X_\tau$ is
\[
I = \left({b}_{1},{a}_{6},{a}_{4},{a}_{2},{a}_{1},-{a}_{5}{b}_{2}+{a}_{3}{b}_{4},{b}_{2}{b}_{6}+{a}_{3},{b}_{4}{b}_{6}+{a}_{5}\right)
\]
in $R = \CC[a_1,\dots,a_6,b_1,\dots,b_6,c_1]$.
%
% [a_1,b_1,c_1,a_2,b_2,a_3,b_3,a_4,b_4,a_5,b_5,a_6,b_6,Degrees=>{{1,0,0,0},{1,0,0,1},{1,0,0,2},{1,1,0,0},{1,1,0,1},{1,1,1,0},{1,1,1,1},{0,1,0,0},{0,1,0,1},{0,1,1,0},{0,1,1,1},{0,0,1,0},{0,0,1,1}}]

We compute its multidegree
\[
\mdeg I = \left({\alpha}_{2}+{\alpha}_{1}\right)\left({\alpha}_{2}+{\alpha}_{3}\right)\left({\alpha}_{2}+{\alpha}_{3}+{\alpha}_{1}\right)\left(\hbar+{\alpha}_{1}\right)\left({\alpha}_{1}{\alpha}_{2}{\alpha}_{3}\right)
\]
and Hilbert series
{\scriptsize
\[
    \ch I=\frac{1}{\left(1-e^{\alpha_1 + \alpha_2 + \alpha_3 + \hbar}\right)\left(1-e^{\alpha_1 + \alpha_2 + \hbar}\right)\left(1-e^{\alpha_2 + \alpha_3 + \hbar}\right)\left(1-e^{\alpha_1 + 2\hbar}\right)\left(1-e^{\alpha_3 + \hbar}\right)\left(1-e^{\alpha_2 + \hbar}\right)}
\]}

Now Zhijie would like to know what the Plucker coordinates are.
% He asks ``What are the $a,b,c$ in terms of $\Delta_{C \in \binom {16} 8}$''

In my thesis I claim that the Plucker embedding is given by the minors $\Delta_C B$ of a certain matrix $B$ using columns $C\in\binom{S}{mp-N}$. Here
$m = 4$, $p = 5$, $N = 10$, and
$$
S = ((k,0),(k,1),(k,2),(k,3),(k,4))_{k=1}^4
$$
Recall $mp-N = \dim L/t^pL_0$ and $S$ indexes the basis $v_{(i,j)} = [e_it^j]$ of $V = L_0/t^pL_0$. The matrix $B$ is the matrix whose row vectors are the basis vectors
\[
[ge_1],[tge_1],[ge_2],[tge_2],[ge_3],[tge_3],[t^2ge_3],[ge_4],[tge_4],[t^2ge_4]
\]
of $L/t^pL_0\subset L_0/t^pL_0$.

In this case
\[
g = g_A = \begin{bmatrix}
    t^3 \\
    -c_1t^2 & t^3 \\
    -b_2t & -b_4 t & t^2 \\
    -a_3 - b_3 t & - a_5 - b_5 t & -b_6 t & t^2
\end{bmatrix}
\]
so
\begin{align*}
    [ge_1] &= [t^3 e_1] -c_1[t^2 e_2] -b_2[te_3] - a_3[e_4] - b_3[te_4] \\
    [tge_1] &= {[t^4 e_1]} -c_1[t^3 e_2] -b_2 [t^2 e_3] - a_3 [te_4] - b_3 [t^2 e_4] \\
    [ge_2] &= [t^3 e_2] - b_4 [te_3] -a_5[e_4] - b_5[t e_4] \\
    [tge_2] &= {[t^4 e_2]} - b_4 [t^2e_3] - a_5 [te_4] - b_5 [t^2 e_4] \\
    [ge_3] &= [t^2 e_3] -b_6 [te_4] \\
    [tge_3] &= {[t^3e_3]} - b_6 [t^2 e_4] \\
    [t^2 ge_3] &= [t^4e_3] - b_6 [t^3 e_4]\\
    [ge_4] &= [t^2 e_4] \\
    [tge_4] &= [t^3 e_4] \\
    [t^2 ge_4] &= [t^4 e_4]
\end{align*}
and, omitting zero columns, we get
\hfill

{
\hspace{-4cm}\begin{minipage}{1.5\textwidth}
\[
\bordermatrix{ & [t^3e_1] & [t^4e_1]  & [t^2e_2] & [t^3e_2] & [t^4 e_2] & [te_3] & [t^2e_3] & [t^3e_3] & [t^4e_3] & [e_4] & [te_4] & [t^2e_4] & [t^3e_4] & [t^4e_4] \cr
[ge_1]         & 1       &  & -c_1     &         & & -b_2   &          &          & & -a_3  & -b_3                                    \cr
[tge_1]        &         & 1  &          & -c_1  &   &        & -b_2     &         & &       & -a_3   & -b_3                           \cr
[ge_2]         &         &  &          & 1       & & -b_4   &          &          & & -a_5  & -b_5                                    \cr
[tge_2]        &         &  &          &         & 1 &        & -b_4     &          & &      & -a_5  & -b_5                            \cr
[ge_3]         &         &  &          &         & &        &           1 &    &    &   & -b_6                                    \cr
[tge_3]        &         &  &          &         & &        &          &           1 & &  &       & -b_6                            \cr
{[t^2 ge_3] }    &         &  &          &         & &        &          &  & 1             & &       & & -b_6                          \cr
[ge_4]         &         &  &          &         & &        &          &          &      & &       & 1 &                             \cr
[tge_4]        &         &  &          &         & &        &          &          &      & &       &       & 1                       \cr
[t^2 ge_4]     &         &  &          &         & &        &          &          &      & &       &       &       & 1
}
\]
    \end{minipage}
}
for $B$ so $C_0 = \{(1,3),(1,4),(2,3),(2,4),(3,2),(3,3),(3,4),(4,2),(4,3),(4,4)\}$.

% for m2
% matrix{
    % {1,0,-c_1,0,0,-b_2,0,0,0,-a_3,-b_3,0,0,0},
    % {0,1,0,-c_1,0,0,-b_2,0,0,0,-a_3,-b_3,0,0},
    % {0,0,0,1,0,-b_4,0,0,0,-a_5,-b_5,0,0,0},
    % {0,0,0,0,1,0,-b_4,0,0,0,-a_5,-b_5,0,0},
    % {0,0,0,0,0,0,1,0,0,0,-b_6,0,0,0},
    % {0,0,0,0,0,0,0,1,0,0,0,-b_6,0,0},
    % {0,0,0,0,0,0,0,1,0,0,0,0,-b_6,0},
    % {0,0,0,0,0,0,0,0,0,0,0,1,0,0},
    % {0,0,0,0,0,0,0,0,0,0,0,0,1,0},
    % {0,0,0,0,0,0,0,0,0,0,0,0,0,1}
    % }

\section*{Finding Plucker coordinates in M2}

\begin{lstlisting}[language=Python]
R = QQ[a_1,b_1,c_1,a_2,b_2,a_3,b_3,a_4,b_4,a_5,b_5,a_6,b_6,Degrees=>{{1,0,0,0},{1,0,0,1},{1,0,0,2},{1,1,0,0},{1,1,0,1},{1,1,1,0},{1,1,1,1},{0,1,0,0},{0,1,0,1},{0,1,1,0},{0,1,1,1},{0,0,1,0},{0,0,1,1}}]

J = ideal(b_1,a_6,a_4,a_2,a_1,-a_5*b_2+a_3*b_4,b_2*b_6+a_3,b_4*b_6+a_5)

plm = matrix{{1,0,-c_1,0,0,-b_2,0,0,0,-a_3,-b_3,0,0,0}, {0,1,0,-c_1,0,0,-b_2,0,0,0,-a_3,-b_3,0,0},{0,0,0,1,0,-b_4,0,0,0,-a_5,-b_5,0,0,0},{0,0,0,0,1,0,-b_4,0,0,0,-a_5,-b_5,0,0},{0,0,0,0,0,0,1,0,0,0,-b_6,0,0,0},{0,0,0,0,0,0,0,1,0,0,0,-b_6,0,0},{0,0,0,0,0,0,0,0,1,0,0,0,-b_6,0},{0,0,0,0,0,0,0,0,0,0,0,1,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,1,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,1}}

s = subsets(14,10);

e0 = {0..9}

mins := {}

for e in s do if ( det(plm^e0_e) != 0 ) then mins = append(mins,det(plm^e0_e))

inds := {}

for e in s do if ( det(plm^e0_e) != 0 ) then inds = append(inds,e)

% check that #inds == #mins

wts := {}

for e in s do if ( det(plm^e0_e) != 0 ) then wts = append(wts,degree(det(plm^e0_e)))

pluck = QQ[apply(inds,i->p_i)]

f = map(R,pluck,mins)

Q = R/J

fbar = map(Q,pluck,mins)

K = kernel fbar

Kh = homogenize(K,p_{0,1,3,4,6,7,8,11,12,13})

indsnu := {}

for i in 0..#wts-1 do if take(wts#i,3)=={1,1,1} then indsnu = append(indsnu,inds#i)

I = ideal(apply(indsnu,i->p_i))

Knu = K + I

dim Knu

Knuh = homogenize(Knu,p_{0,1,3,4,6,7,8,11,12,13})

dim Knuh

% check that dim Kh = 7 = dim J + 1
\end{lstlisting}
%
\section*{Fixed point subscheme}
%
In this case I would like the fixed point subscheme supported at $t^{(4,3,2,1)}$.
%

Let $\nu = (4,3,2,1)$ and note that $\lambda\ge \nu\ge \mu$.

\begin{enumerate}
    \item Take a/the chart containing the fixed point $t^\nu$ by asking that $\Delta_C\ne 0$
    for any $C$ such that $\wt (\Delta_C) = \nu$. This amounts to dehomogenizing
    (e.g. setting equal to 1) \textit{all?} such $\Delta_C$. I think this is tantamount to not homogenizing in the first place.
    \item Mod out by the generators of $K$ whose weight is not equal to $\lambda - \nu$.
\end{enumerate}
%
Where

{\scriptsize
$({p}_{\left\{4,\,5,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{3,\,5,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,5,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{3,\,4,\,5,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,4,\,5,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{0,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{0,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,3,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,3,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{3,\,4,\,5,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,4,\,5,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}}+{p}_{\left\{2,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}}+{p}_{\left\{1,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}}+{p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,4,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,4,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}}+{p}_{\left\{0,\,1,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}+{p}_{\left\{0,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,3,\,4,\,6,\,7,\,8,\,11,\,12,\,13\right\}}-1,{p}_{\left\{2,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{3,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{1,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{0,\,1,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,3,\,4,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{3,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{3,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{2,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{3,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{1,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{1,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{1,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{1,\,2,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{1,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{1,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}^{2}-{p}_{\left\{0,\,1,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{3,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{0,\,1,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{0,\,1,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{0,\,1,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,3,\,4,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{2,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{3,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{0,\,1,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{0,\,1,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{0,\,1,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{0,\,1,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,3,\,4,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{0,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{2,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{1,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{0,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{0,\,1,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{1,\,2,\,3,\,4,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{3,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{0,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{1,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{0,\,1,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{0,\,1,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{3,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{1,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,3,\,4,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{3,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{1,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{1,\,2,\,3,\,4,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{1,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{1,\,2,\,3,\,4,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{3,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}^{2}-{p}_{\left\{0,\,1,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{3,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{0,\,1,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{3,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,3,\,4,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{2,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{1,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{0,\,1,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{1,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,3,\,4,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{0,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}^{2}-{p}_{\left\{2,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{1,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{1,\,2,\,3,\,4,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{2,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}^{2}-{p}_{\left\{1,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{1,\,2,\,3,\,4,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{1,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{1,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}^{2}-{p}_{\left\{0,\,1,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{2,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,3,\,4,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{2,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}^{2}-{p}_{\left\{0,\,1,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{0,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,3,\,4,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,2,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{1,\,2,\,3,\,4,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,2,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{1,\,2,\,3,\,4,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,2,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{2,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{1,\,2,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{2,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{1,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,3,\,4,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{1,\,2,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}^{2}-{p}_{\left\{0,\,1,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,3,\,4,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}+{p}_{\left\{2,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,3,\,4,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}+{p}_{\left\{0,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}})$}

$\left({p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{3,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,3,\,4,\,6,\,7,\,8,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{3,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,3,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,4,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}},{p}_{\left\{4,\,5,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{3,\,5,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,5,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{3,\,4,\,5,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,4,\,5,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,3,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{3,\,4,\,5,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,4,\,5,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,4,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,3,\,4,\,6,\,7,\,8,\,11,\,12,\,13\right\}}-1,{p}_{\left\{1,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{1,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}}\right)$

$\left({p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{3,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{3,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},-{p}_{\left\{1,\,2,\,3,\,4,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{1,\,2,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,3,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,4,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}},{p}_{\left\{4,\,5,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{3,\,5,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,5,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{3,\,4,\,5,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,4,\,5,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,3,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{3,\,4,\,5,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,4,\,5,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,4,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,3,\,4,\,6,\,7,\,8,\,11,\,12,\,13\right\}}-1\right)$

$\left({p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{3,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,3,\,4,\,6,\,7,\,8,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{3,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,3,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,4,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}},{p}_{\left\{4,\,5,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{3,\,5,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,5,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{3,\,4,\,5,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,4,\,5,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,3,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{3,\,4,\,5,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,4,\,5,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,4,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}}+{p}_{\left\{0,\,1,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,3,\,4,\,6,\,7,\,8,\,11,\,12,\,13\right\}}-1,{p}_{\left\{0,\,1,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}-{p}_{\left\{0,\,1,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},-{p}_{\left\{0,\,1,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}+{p}_{\left\{0,\,1,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},-{p}_{\left\{0,\,1,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}}^{2}+{p}_{\left\{0,\,1,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}}\right)$

$\left({p}_{\left\{0,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{3,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{3,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,3,\,4,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,4,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,3,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,4,\,5,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,4,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,4,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,4,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}},{p}_{\left\{4,\,5,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{3,\,5,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,5,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,4,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,6,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{3,\,4,\,5,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,4,\,5,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,4,\,7,\,8,\,9,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,4,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,3,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,3,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,5,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,3,\,6,\,7,\,8,\,10,\,11,\,12,\,13\right\}},{p}_{\left\{3,\,4,\,5,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,4,\,5,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}},{p}_{\left\{2,\,3,\,4,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,4,\,6,\,7,\,8,\,9,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}+{p}_{\left\{0,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}},{p}_{\left\{0,\,1,\,3,\,4,\,6,\,7,\,8,\,11,\,12,\,13\right\}}-1,{p}_{\left\{1,\,2,\,3,\,4,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,1,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}+{p}_{\left\{0,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}},{p}_{\left\{1,\,2,\,3,\,4,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{0,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}+{p}_{\left\{2,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}},-{p}_{\left\{0,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}^{2}+{p}_{\left\{0,\,1,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}{p}_{\left\{2,\,3,\,4,\,5,\,6,\,7,\,8,\,11,\,12,\,13\right\}}\right)$

\section*{Do Zhijie's smaller example}
to make sure...

\end{document}


\subsection{PV Diagrams}
Like all things in physics, physicists really enjoy graphing thermodynamic processes. Their particular favorite is the PV graph, putting pressure on the y-axis and volume on the x-axis; from the ideal gas law, you may see why this is a natural choice of axes. Shown below is a PV graph of a thermodynamic process that takes the gas from starting temperature $T_1$ (at pressure $P_1$ and volume $V_1$) to temperature $T_2$ (at pressure $P_2$ and volume $V_2$). Of course, there's nothing stopping us from assigning numbers to $P,T,V$, as well, if the situation calls for it. The process pictured below is an expansion of the gas, but we could also very well draw the arrow the other way and depict a compression of the gas.
\begin{center}
\begin{tikzpicture}
 \draw[stealth-stealth] (0,5) node[below left]{$P$} |- (5,0) node[below left]{$V$};
 \draw[thick,->] (1,4) -- (2.5,2.5);
\draw[thick] (2.5,2.5) -- (4,1);
\draw[dashed] (4,0) -- (4,1);
\draw[dashed] (1,0) -- (1,4);
\draw[dashed] (4,1) -- (0,1);
\draw[dashed] (1,4) -- (0,4);
\filldraw (1,4) circle (2pt);
\filldraw (4,1) circle (2pt);
\node[below] at (1,0) {$V_1$};
\node[below] at (4,0) {$V_2$};
\node[left] at (0,1) {$P_2$};
\node[left] at (0,4) {$P_1$};
\node[right] at (1,4) {$T_1$};
\node[right] at (4,1) {$T_2$};
 \end{tikzpicture}
 \end{center}
 To get a feel for these kinds of graphs, I would suggest trying to make some. Write down an initial state and final state for your gas with one or two quantities remaining constant, and try to figure out what the graph between those two steps would look like. For example, if I had
\begin{itemize}
    \item Initial State: P = 10kPa, V = 1m$^3$, N = 10molecules, T = 300K
    \item Final State: P = 5kPa, V = 2$m^3$, N = 10molecules, T = 300K
\end{itemize}
What would the graph between the two states look like if temperature and number of molecules were held constant the entire time? (Hint: You might be first inclined to think it looks like a diagonal line like the diagram above, but this isn't quite correct; think about why the condition of temperature being held constant for the entire time might not hold in this case). The answer will be revealed very shortly, when we discuss the PV diagrams of the 4 basic thermodynamic processes! \\
Before we go there though, there is one very useful connection between PV diagrams and work that I would like to point out. In the previous section, we defined the work done on the gas as:
\[ W = -\int_{V_1}^{V_2} P(V)dV \]
And looking at the PV diagram, it now becomes clear that this is nothing more than the (negative) area under the PV curve! As an example, let's figure out the work done on the gas in the process shown above. All we have to do is calculate the area underneath the curve. For convenience, let us split it into two parts of the triangle and the rectangle. For the triangle, we have area $\frac{1}{2}*\left(P_1-P_2\right)*\left(V_2-V_1\right)$, and for the rectangle, we have area $P_2*\left(V_2-V_1\right)$. Therefore, the total area under the graph is:
\[ \text{Area } = \frac{1}{2}*\left(P_1-P_2\right)*\left(V_2-V_1\right) + P_2*\left(V_2-V_1\right) = \frac{1}{2}\left[\left(P_1+P_2\right)\left(V_2-V_1\right) \right]\]
This area is in fact the work done \textbf{by} the gas, and the work done on the gas is just its negative:
\[W_{on} = \frac{1}{2}\left[\left(P_1+P_2\right)\left(V_1-V_2\right) \right]\]
When using this area argument, do be careful of which direction the curve is going; for example, if the process was a compression of the gas rather than an expansion, we would have to introduce a negative sign as things would be going in the opposite direction.


\documentclass[12pt]{article}
\usepackage[usenames]{color} %used for font color
\usepackage{amsmath, amssymb, amsthm}
\usepackage{wasysym}
\usepackage[utf8]{inputenc} %useful to type directly diacritic characters
\usepackage{graphicx}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{float}
\usepackage{mathtools}
\usepackage [english]{babel}
\usepackage [autostyle, english = american]{csquotes}
\MakeOuterQuote{"}
\graphicspath{ {./} }
\newcommand{\Z}{\mathbb{Z}}
\newcommand{\N}{\mathbb{N}}
\newcommand{\R}{\mathbb{R}}
\newcommand{\Q}{\mathbb{Q}}
\newcommand{\prob}{\mathbb{P}}
\newcommand{\degrees}{^{\circ}}
\DeclarePairedDelimiter\ceil{\lceil}{\rceil}
\DeclarePairedDelimiter\floor{\lfloor}{\rfloor}

\author{Tianshuang (Ethan) Qiu}
\begin{document}
\title{Math 74, Week 6}
\maketitle

\section{Mon Lec, 1a}
Base case: $n=1, n=2, a_1=3, a_2=5$, base cases hold.
\newline
Assume that for some $n \in \N$, all $m \in \N 1, 1 \leq m \leq n$ satisfies this identity, we have
$$a_{n+1}=3a_n-2a_{n-1}=3(2^n+1)-2(2^{n-1}+1)=3\times 2^n+3-2\times 2^{n-1}-2$$
$$=2^{n-1}(6-2)+1=2^{n-1}(2^2)+1=2^{n+1}+1$$
Thus we have proven the inductive case. Q.E.D.

\section{Mon Lec, 3c}
Lemma: a sequence given by $f_n=1/\sqrt5 (\phi^{n} - \bar \phi^{n})$ where $\phi = (1+\sqrt5)/2, \bar \phi = (1-\sqrt5)/2$ has the property $f_n+f_n+1 = f_n+2$ for $n \geq 0$
\newline
Base case: $n = 0$, $f_0 = 0, f_1=1, f_2=1$, base case holds.
Assume that for some $n$, the statement hodls for all $m\leq n$.
\newline
Consider $f_{n+1}$, $$f_n = \frac{1}{\sqrt5}((\frac{1+\sqrt5}{2})^n-(\frac{1-\sqrt5}{2})^n)$$
We get use this property to get a similar result for $f_{n-1}$. Now we add them together:
$$f_n+f_{n-1}=\frac{1}{\sqrt5}((\frac{1+\sqrt5}{2})^n-(\frac{1-\sqrt5}{2})^n+(\frac{1+\sqrt5}{2})^{n-1}-(\frac{1-\sqrt5}{2})^{n-1})$$
$$=\frac{1}{\sqrt5}(((\frac{1+\sqrt5}{2})^{n-1}(3+\sqrt5)/2)-(\frac{1-\sqrt5}{2})^{n-1}(3+\sqrt5)/2)$$
Since $(3+\sqrt5)=(1+\sqrt5)^2/2$, the expression simplifies to
$$=\frac{1}{\sqrt5}((\frac{1+\sqrt5}{2})^{n+1}-(\frac{1-\sqrt5}{2})^{n+1})$$.
Thus we have proven the fibbonacci property from the closed form.
\newline
Base case: $n=0, m=0, f_n=1, f_m=1, f_{n+m+1}=2$, base case holds.
\newline
For any $n, m \in \N$, assume that the statement is true for all $n'\leq n, m' \leq m$. Now consider $n+1$ and $f_{n+m+2}$.
\newline
Using our inductive hypothesis, we know that $f_{n+m+1}=f_mf_n + f_{m+1}f_{n+1}$
\newline
Now consider $f_mf_{n+1}+f_{m+1}f_{n+2}$, use our lemma to get that it is equal to $f_m(f_n+f_{n-1})+f_{m+1}(f_n+f_{n+1})$
$$=f_mf_n+f_mf_{n-1}+f_{m+1}f_n+f_{m+1}f_{n+1}$$
Now we apply IH,
$$=f_{m+n}+f_{m+n+1}=f_{m+n+2}$$
The last step is using our lemma (the fibbonacci identity). Thus we have proven the inductive step. Q.E.D.

\section{Mon Lec, 4a}
\begin{figure}[h]
    \includegraphics[width = 100mm]{GRAPH1.png}
\end{figure}
Base case: let there be three people, they form a triangle. Let the sides have length $a<b<c$. We can see that A and C will exchange pies, and B will throw at A, leaving him the survivor. Therefore base case holds.
\newline
Assume that for some odd $n$, the statement holds for all odd $m \leq n$. Now consider $n+2$.
\newline
We first remove the two people who are closest to each other. We call this the alternate game. Then the remaining $n$ people satisfies the inductive hypothesis, and there will be one survivor. Now consider the original game, since these two removed people are closest to each other, they will throw the pie at each other.
\newline
Then we break down the remaining players into two scenarios when we add the two back: the two new players are closer than their original targets, or they are further than their original targets.
\newline
In either case they will not throw their pies at the survivor in the alternate game. Therefore he will still be the survivor in the original game.
\newline
Thus we have proven the inductive case. Q.E.D.
\newpage

\section{Mon Dis, 4}
Base case: $n = 1, S = \{1,2\}, 1 \mid 2$, base case holds.
\newline
Assume that for $n \in \N$, the statement holds for $m \leq n$. Consdier $n+1$ and a set $S = \{a_1, a_2, ..., a_{n+2}\}$. We break it down into two cases.
\paragraph{If $a_{n+1}\leq 2n$}
Then we can simply take $S' = S \setminus a_{n+2}$, now we have a set that has $n+1$ elements, and the largest one is less than $2n$, so we can apply the inductive hypothesis and conclude that there is an integer that divides another in $S'$.
\paragraph{If $a_{n+1}> 2n$}
Now if $a_{n+1}>2n$, and the maximum of the set cannot exceed $2n+22$, we must have $a_{n+1}=2n+1. a_{n+2}=2n+2$. Now if $(n+1)\in S$, we will have $n+1 \mid 2n+2$. Otherwise, take the set $\{a_1, a_2, ..., a_n, n+1\}$, all of these are less than $2n$ since we know what $a_{n+1}$ and $a_{n+2}$ are. Now we can apply the inductive hypothesis to this set since it has $n+1$ items. Therefore there must be two integers that divides each other.
\newline
Thus we have proven the inductive case. Q.E.D.

\section{Mon Dis, 7}
Base case: $n=1$, we can simply take a block out, the remaining 3 form an $L$ shape. Base case holds
\newline
Assume that for some $n \in \N$, the statement holds for all $m \leq n$, now consider $2^{n+1} \times 2^{n+1}$. We first divide the square into four squares of $2^n \times 2^n$. Take the right most square and remove a single tile. By the inductive hypothesis this square is tilable with $L$'s since it has $2^n \times 2^n$ tiles. Now for the remaing three squares, we remove one tile at the center like this:
\newline
\begin{figure}[H]
    \includegraphics[width = 100mm]{GRAPH2.png}
\end{figure}
Now the remaining 3 tiles can be filled with a single $L$. Thus we have proven the inductive step. Q.E.D.

\newpage

\section{Wed Lec, 5}
Let our 9 digit number be represented by $abcde2021$. Using the subtraction theorem we know that $abcde0000/2021$ must be an integer.
\newline
We can factor $2021 = 43 \times 47$, so it shares no factors with 10000. So $2021 \mid abcde$. Now the amount that we are seeking is equal to the amount of 5 digit numbers that is divisible by 2021
$$\floor*{\frac{99999}{2021}}-\floor*{\frac{9999}{2021}} = 49-4=45$$
\newpage

\section{Wed Dis, 6}
$$(y-\frac{1}{y})^3 = x^3$$
$$y^3 -3 \frac{1}{y} + 3 y-\frac{1}{y^3} = x^3$$
$$y^3-\frac{1}{y^3}+3(y-\frac{1}{y})=x^3$$
$$y^3-\frac{1}{y^3}+3x = x^3$$
$$y^3-\frac{1}{y^3}= x^3-3x$$
\newpage

\section{Fri Lec, 3b}
Since $a \equiv b \bmod 6$, we have $a = 6n + k$, $b = 6m + k$, where $m,n,k \in \Z$.
\newline
Let $h \in \Z$, we multiply $a, b$ by $h$: $ah = 6nh + kh$, $bh = 6mh + kh$.
\newline
Since mutiples of 6 will always be equivalent to 0 when modded by 6, the only things that are left on both sides are $kh$, and $kh \equiv kh \bmod 6$.
\newline
Q.E.D.

\section{Fri Lec, 7}
We factor 12 into $3 \times 2^2$, and 15 into $3 \times 5$. Since our perfect square needs to have these as factors, $xy^2$ must have 3 as a factor, and $xy$ must have 5 as a factor.
\newline
Furthermore, since $xy$ has 5 as a factor, $xy^2$ must have 25 as a factor since the $12xy^2$ is a perfect square and 12 cannot be divided by 5. Now we attempt to construct one such number. let $y = 5$, $x=3$, $12xy^2 = 900 = 30^2, 15xy = 225 = 15^2$. $x+y = 8$

\end{document}


\documentclass[11pt,a4paper]{report}
\usepackage{amsmath,amsfonts,amssymb,amsthm,epsfig,epstopdf,titling,url,array}
\usepackage{enumitem}
\usepackage{changepage}
\usepackage{graphicx}
\usepackage{caption}
\theoremstyle{plain}
\newtheorem{thm}{Theorem}[section]
\newtheorem{lem}[thm]{Lemma}
\newtheorem{prop}[thm]{Proposition}
\newtheorem*{cor}{Corollary}
\theoremstyle{definition}
\newtheorem{defn}{Definition}[section]
\newtheorem{conj}{Conjecture}[section]
\newtheorem{exmp}{Example}[section]
\newtheorem{exercise}{Exercise}[section]
\theoremstyle{remark}
\newtheorem*{rem}{Remark}
\newtheorem*{note}{Note}
\def\changemargin#1#2{\list{}{\rightmargin#2\leftmargin#1}\item[]}
\let\endchangemargin=\endlist
\begin{document}

\section*{Problem} Moe has built an awesome atomic clock.  It has one hand that
moves at a perfectly constant speed around a 24 hour dial. The problem is he has
no way to calibrate it.  He asks Joe for advice and Joe asks him what his
objective is.  He says he wants it to be exactly right as often as possible.
Joe thinks for a minute and says, ``That’s going to take a lot of electricity.''
Explain what he means.

\section*{Solution} Let $s$ be the rotational speed that Moe chooses expressed
in revolutions per day. If Moe can find \emph{exactly} 1 as the rotational
speed, he will be right all the time.  Unfortunately, the probability of that is
$0$. Now consider what happens when Moe's chosen speed is off by $\delta$
revolutions per day.  If $\delta < 0$ and Moe manages to start the clock at
exactly the right time, it will drift by $\delta$ each 24 hours and it will take
$1/\delta$ days for it to be exactly right again (when it has fallen so far
behind that it is showing exactly the right time). Somewhat paradoxically, the
smaller $\delta$ is, the longer this will take and hence the smaller the number
of times per any time interval that the clock will be exactly right. The same
analysis obviously applies for $\delta > 0$. Now suppose that Moe just lets the
hand move as fast as possible. Then it will pass the correct time once every
revolution it makes (plus whatever time it takes to complete a revolution). So
the faster he can make it go, the more frequently the reading is exactly right.
Hence Joe's comment ``that will take a lot of electricity.'' \end{document}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Copyright (c) 2003-2018 by The University of Queensland
% http://www.uq.edu.au
%
% Primary Business: Queensland, Australia
% Licensed under the Apache License, version 2.0
% http://www.apache.org/licenses/LICENSE-2.0
%
% Development until 2012 by Earth Systems Science Computational Center (ESSCC)
% Development 2012-2013 by School of Earth Sciences
% Development from 2014 by Centre for Geoscience Computing (GeoComp)
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\chapter{Using Trilinos}
\label{TRILINOS}
Trilinos has a number of packages and provides a large collection of both direct and indirect solvers.  We refer the reader to \cite{TrilinosWeb} for details.  Escript needs to be installed with Trilinos to be able to use the Trilinos solvers.  See the install guide for details.  We show a few examples for the Trilinos options with a simple example.

Consider Laplacian in domain ($\Omega\in \mathbb{R}^3$) with a simple right hand side,
\begin{align}
 -\nabla^t\; \nabla u &= 1,  &&\text{ in } \Omega, \label{CONST1a}\\
 u &= 0, &&\text{ on } \Gamma_D,\label{BC1}\\
 \mathbf{n}^t \; \nabla u &= 0, &&\text{ on }\Gamma_N,\,\label{BC2}
\end{align}
with $\mathbf{n}$ the outward normal, with $\Gamma_D$ the left boundary and $\Gamma=\partial\Omega\backslash\Gamma_D$.  Gravity forward weak form of PDE (\ref{CONST1a})-(\ref{BC2}), where $(~,~)$ is the standard $L^2$ inner product on $\Omega$, is
\begin{equation}\label{weak}
(\nabla u ~,~\nabla v ) = -(f ~,~v ),
\end{equation}
for all admissible potential functions $v$.

For this example, we just consider a simple, unstructured, 3D domain.  The mesh is created with GMSH using simplemesh.geo (file \ref{simplemesh}) see /escript/doc/examples/usersguide/simplemesh.geo.  To test AMG, a finer mesh is created using    /escript/doc/examples/usersguide/simplemeshfine.geo.

\begin{python}[caption=simplemesh.geo,label=simplemesh]
// dimensions and mesh size
xdim = 100.;
ydim = 200.;
zdim = 50.;
mtop = 2.;
mbase = 5.;

//Points
Point(1) = {0., 0., 0., mbase};
Point(2) = {xdim, 0., 0., mbase};
Point(3) = {0., ydim, 0., mbase};
Point(4) = {xdim, ydim, 0., mbase};
Point(5) = {0., 0., zdim, mtop};
Point(6) = {xdim, 0., zdim, mtop};
Point(7) = {0., ydim, zdim, mtop};
Point(8) = {xdim, ydim, zdim, mtop};

//Lines and surfaces
Line(1) = {1, 2};
Line(2) = {3, 4};
Line(3) = {1, 3};
Line(4) = {2, 4};
Line(5) = {5, 6};
Line(6) = {7, 8};
Line(7) = {5, 7};
Line(8) = {6, 8};
Line(9) = {1, 5};
Line(10) = {3, 7};
Line(11) = {2, 6};
Line(12) = {4, 8};
Line Loop(1) = {-1, 3, 2, -4};
Plane Surface(1) = {1};
Line Loop(2) = {5, 8, -6, -7};
Plane Surface(2) = {2};
Line Loop(3) = {1, 11, -5, -9};
Plane Surface(3) = {3};
Line Loop(4) = {-2, 10, 6, -12};
Plane Surface(4) = {4};
Line Loop(5) = {-3, 9, 7, -10};
Plane Surface(5) = {5};
Line Loop(6) = {4, 12, -8, -11};
Plane Surface(6) = {6};

// domain
Surface Loop(1) = {1:6};
Volume(1) = {1};
\end{python}

The most basic escript script to solve this pde using escript defaults is in program \ref{basic}.  The computed solution is saved in a silo file "asimple.silo" and can be visualized using \VisIt.
\begin{python}[caption=basic solve using defaults only, label=basic ]
from esys.escript import *
from esys.weipa import saveVTK, saveSilo
from esys.escript.linearPDEs import LinearSinglePDE
from esys.finley import ReadGmsh

domain=ReadGmsh("simplemesh.msh", 3,  optimize=True )

pde = LinearSinglePDE(domain, isComplex=False)
pde.setSymmetryOn()
x = domain.getX()
pde.setValue(A=kronecker(3), Y = 1., q = whereZero(x[0]-inf(x[0])))

u=pde.getSolution()
saveSilo("asimple", u=u)
\end{python}

This script uses default Trilinos solver PCG with Jacobi preconditioner. (It takes 271 iterations to reach the default tolerance of $10^{-8}$).  Tolerance and solver output can be controlled by adding to the basic listing.
 \begin{python}[caption=tolerance , label=tolerance ]
options = pde.getSolverOptions()
options.setTolerance(1e-8)
options.setVerbosityOn()
\end{python}

\section{Direct Solvers}
There are a number of options that can be set for solving the pde.  The simplest way to choose a direct solver is to use the default Trilinos direct solver KLU2.  Escript can only use this feature if it is available in Trilinos.

To choose the default Trilinos direct solver, set the tolerance for the PDE solver to $10^{-8}$,  use the Trilinos suite of solvers and output information about the solvers, we add code to listing \ref{basic}.
\begin{python}[caption=default Direct , label=defaultdirect ]
options = pde.getSolverOptions()
options.setSolverMethod(SolverOptions.DIRECT)
options.setPackage(SolverOptions.TRILINOS)
options.setVerbosityOn()
\end{python}
The default Trilinos Direct solver is the Amesos2 LU factorisation KLU. It is a serial, unsymmetric sparse, partial-pivoting, direct matrix solver.  The last line above ensures that the output includes details of the methods used.

To use SUPERLU the code that needs to be added to listing \ref{basic} is
\begin{python}[caption=SuperLU, label=superLU ]
options = pde.getSolverOptions()
options.setTolerance(1e-8)
options.setPackage(SolverOptions.TRILINOS)
options.setSolverMethod(SolverOptions.DIRECT_SUPERLU)
options.setVerbosityOn()
\end{python}
Trilinos is the default solver package so the setPackage line is not really necessary.

\section{Preconditioned Conjugate Gradient}
If we want to use preconditioned conjugate gradient, then we remover the DIRECT solver line and add the line
\begin{python}[caption=Preconditioned conjugate gradient defaults, label=PCG]
options.setSolverMethod(SolverOptions.PCG)
\end{python}
This takes 271 iterations to reach tolerance using a Jacobi preconditioner, BELOS Pseudo Block CG with Ifpack2.  To change the preconditioner to Gauss-Siedel, we add the line
\begin{python}
options.setPreconditioner(SolverOptions.GAUSS_SEIDEL)
\end{python}
This takes 120 iterations to reach tolerance.

\section{Multigrid}
Geometric multigrid methods were introduced for structured grids to maximise the advantages of iterative methods for solving matrix equations derived from discretised partial differential equations.  Iterative methods for these problems are effective in reducing oscillatory error but stall for smooth error and smooth error appears oscillatory when restricted to a coarser grid.  The idea is to have a succession of grids from fine to coarse and to remove error by iterating on each of the grids in turn reducing the oscillatory error on that grid.  The coarsest grid is chosen small enough so that it can be quickly solved directly or iteratively. If $n$ is the size of the problem then a multigrid algorithm is order $n$.

The matrix equation,  derived from the PDE, is
\begin{equation}\label{matrixEQ}
    \mathbf{A}\mathbf{u}=\mathbf{f},
\end{equation}
where $\mathbf{u}$ is the unknown $n\times 1$ vector, $\mathbf{A}$ is the $n\times n$ matrix and $\mathbf{f}$ is the nown right hand side $n\times 1$ vector.  The residual $\mathbf{r}$ is defined
\begin{equation}\label{res}
    \mathbf{r}=\mathbf{f}-\mathbf{A}\mathbf{u}%=\mathbf{A}\mathbf{u}^*-\mathbf{A}\mathbf{u}=\mathbf{A}\mathbf{u}^*-\mathbf{u}),
\end{equation}
and the residual equation is defined
\begin{equation}\label{resEQ}
    \mathbf{A}\mathbf{e}=\mathbf{r},
\end{equation}
where $\mathbf{e}=\mathbf{u}^*-\mathbf{u}$ is the error and $\mathbf{u}^*$ is the exact solution.  Relaxing on \ref{resEQ}) with the residual as the right hand side is the same as relaxing on (\ref{matrixEQ}) with the original right and side.  We use superscripts on these terms to indicate the discretization representing element length, $h$, for a fine grid and $H$ for one level coarser discretization, $h<H$.  For a structured mesh, $H=\frac{h}{2}$ and $\mathbf{A}^h$ is an $n\times n$ matrix and $\mathbf{A}^H$ is an $N\times N$ matrix obtained in the coarsening process with $N<n$.  Prolongation operator, $\mathbf{P}^h_H$, an $n\times N$ matrix, is used to interpolate the error from the coarse grid to the fine grid and restriction operator $\mathbf{P}_h^H$, an $N\times n$ matrix, is used to restrict the residual from the fine grid to the coarse grid.  It is not necessary for the restriction operator to be the transpose of the interpolation operator.  The coarse grid matrix operator $\mathbf{A}^H$ is computed by multiplying the fine grid matrix operator $\mathbf{A}^h$ on the left by the restriction operator and the right by the interpolation operator resulting in an $N\times N$ matrix.

The MG algorithm is best described using a recursion algorithm.  After iteration on a fine grid, the fine grid error is smooth and the residual can be restricted to a coarse grid. The error on the coarse grid appears more oscillatory and is (smoothed) reduced by iteration.  If this is the coarsest grid then the matrix equation is solved using a direct method or sufficient iterations of the solver to get within discretization error, otherwise the algorithm is called again with the coarse grid replacing the fine grid and the next coarser grid as the coarse grid.  The coarse grid error, is interpolated to the fine grid where it corrects the fine grid approximation and post-smoothing iteration smooths the error.  For structured grids, the choices for interpolating from a coarse grid to a fine grid or restricting from a fine grid to a coarse grid are reasonably obvious, see \cite{Briggs2000}.

\begin{table}\center
\begin{tabular}{|l|l|ll}
\hline
AMG($\mathbf{u}^h;\mathbf{A}^h,\mathbf{f}^h)$ &\\ \hline
    \quad $\mathbf{A}^h\mathbf{u}^h=\mathbf{f}^h$ & \textbf{p steps pre-smoothing iteration}\\
	\quad $\mathbf{r}^h=\mathbf{f}^h-\mathbf{A}^h \mathbf{u}^h$ & \textbf{fine grid residual}\\
	\quad $\mathbf{r}^H=\mathbf{R}_h^H \mathbf{r}^h$ & \textbf{restrict residual} \\
	\quad $\mathbf{A}^H=\mathbf{R}_h^{H} \mathbf{A}^h \mathbf{P}_H^h$& \textbf{restrict operator}\\
	\quad if not coarsest  &\\
	  \quad\quad AMG($\mathbf{e}^H;\mathbf{A}^H,\mathbf{r}^H$) &\textbf{recursion}\\
	  \quad else &\\
	  \quad\quad $\mathbf{A}^H\mathbf{e}^H=\mathbf{r}^H$ & \textbf{coarsest solve}\\
	\quad$\mathbf{e}^h=\mathbf{P}_H^h \mathbf{e}^H$ & \textbf{interpolate error} \\
	\quad$\mathbf{u}^h=\mathbf{u}^h+\mathbf{e}^h$ & \textbf{fine grid correction}\\
	\quad$\mathbf{A}^h\mathbf{u}^h=\mathbf{f}^h$ & \textbf{q steps post-smoothing iteration}\\
	\quad return $\mathbf{u}^h$ &\\
\hline
\end{tabular}\caption{An AMG V(p.q) cycle algorithm to solve $\mathbf{A}\mathbf{u}=\mathbf{f}$, where $h$ and $H$ represent grid sizes with $h<H$.}
\end{table}

Algebraic multigrid methods were developed for unstructured grids and do not reference the grid but instead use interpolation and restriction operators derived from the matrix (see \cite{Briggs2000, Stuben2001281, Vanek1996, Tuminaro2000}).  The terms "coarse grid" and "fine grid" are still used but do not refer to actual grids.  "Smooth error" is defined to be the error not reduced by iteration and "oscillatory error" is the error reduced by iteration.  Coarse levels are chosen from the relative sizes of the off diagonal terms in the fine matrix.
Once the coarse grid is chosen the restriction and interpolation operators are computed. Restriction operators need to be chosen so that "smooth error" on a fine grid will appear "oscillatory" on a coarse grid ensuring that it can be reduced by iterating on this grid. There are a number of algorithm options available in Trilinos to compute the coarse grid and the choice will depend on the original PDE and smoothing options. For any multigrid method, there are basic choices:
\begin{itemize}%[topsep=0pt,itemsep=-1ex,partopsep=1ex,parsep=1ex]
    \item pre-smoothing iterative solver and number of iterations
    \item post-smoothing iterative solver and number of iterations
    \item choosing coarse grids
    \item number of coarse grids or size of coarsest grid
    \item interpolation operator
    \item restriction operator
    \item coarsest grid solver
    \item cycle type
\end{itemize}
We use Trilinos solvers and it is possible to access Trilinos options either within the escript script or, if more complicated control is needed, in an XML file. There are many Trilinos packages that can be used by escript including
MueLu   - setup of AMG, Belos   - linear solvers - Pseudo Block CG, Ifpack2 - iterative solvers (Jacobi, Gauss-Siedel), Amesos2 - direct solvers for coarse level and Voltan or Voltan2 - repartitioning for caorse grids

\subsection{Default MueLu Trilinos options for algebraic multigrid preconditioned conjugate gradient (AMG-PCG)}
More detail on the various options can be found in the MUELU user guide and other Trilinos user guides \cite{TrilinosWeb}. MUELU uses other Trilinos packages and to access these parameters the XML file must be used.
Recall $\mathbf{R}_h^H$ is the restriction operator and $\mathbf{P}^h_H$ is the interpolation (prolongation) operator.  The default values used are shown in Table \ref{defaultAMG}.  To use AMG-PCG with default paramerters we use script \ref{basicAMG}.

\begin{table}\center
\begin{tabular}{|r|l|}
\hline
    number of equations & 1\\
    problem: symmetric & True, $\mathbf{R}_h^H = (\mathbf{P}^h_H)^t$ \\
    pre-smoothing iterative solver & Symmetric Gauss-Seidel\\
    post-smoothing iterative solver & Symmetric Gauss-Seidel\\
    pre-smoothing iterations & 1 \\
    post-smoothing iterations & 1 \\
    minimum aggregate size & 2 \\
    maximum aggregate size & unlimited \\
    aggregation & uncoupled \\
    maximum number of levels & 10\\
    maximum size of coarsest grid & 2000\\
    choosing coarse grids & classical smoothed aggregation\\
    coarsest grid solver &  SuperLU\\
    cycle type & V(1,1) \\
    \hline
\end{tabular}\caption{Default parameters for AMG-PCG}\label{defaultAMG}
\end{table}

\begin{python}[caption=basic Trilinos PCG-AMG defaults only script, label=basicAMG ]
from esys.escript import *
from esys.weipa import saveVTK, saveSilo
from esys.escript.linearPDEs import LinearSinglePDE
from esys.finley import ReadGmsh

domain=ReadGmsh("simplemesh.msh", 3,  optimize=True )

pde = LinearSinglePDE(domain, isComplex=False)
pde.setSymmetryOn()
x = domain.getX()
pde.setValue(A=kronecker(3), Y=1, q=whereZero(x[0]-inf(x[0])))

options = pde.getSolverOptions()
options.setPackage(SolverOptions.TRILINOS)
options.setSolverMethod(SolverOptions.PCG)
options.setPreconditioner(SolverOptions.AMG)

u=pde.getSolution()
saveSilo("asimple",u=u)
\end{python}

Only two grids were used for the simple mesh.  The first coarse grid, replaces, if possible, 27 fine grid nodes represented by  one coarse grid node.  In 2D this would be 9 fine grid nodes represented with one coarse grid node. The ratio of the fine to coarse grid in this example is 19.21.  For a finer mesh, with mtop = 2 and mbase=1 in the geo file, 3 levels of grids and the coarsest grid is solved with a direct method.  AMG-PCG took 11 iterations to reach tolerance.

\subsection{Altering MUELU parameters}
To access MUELU parameters in the python script we use the general form
\begin{python}
options.setTrilinosParameter( "A", "B")
\end{python}
where "A" is the Trilinos parameter and "B" is its string value. It is extremely important to have correct spaces in the strings.

\subsubsection{Debug output}
Options are "none", "low", "medium", "high" and "extreme".
\begin{python}
options.setTrilinosParameter("verbosity", "low")
\end{python}
Options are\\
\var{"low"} - setup time,\\
\var{"medium"} - basic AMG data, mesh sizes, smoothers + "low" \\
\var{"high"} - input data, relaxation solvers and data, aggregate data + "medium"\\
\var{"extreme"} - may include solver details that MueLu calls + "high "\\

\subsubsection{Problem type}
Changes default multigrid algorithm, block size and smoother.
Options are
\begin{itemize}
    \item \var{"unknown"}: default
    \item \var{"Poisson-2D" or "Poisson-3D"} : using smoothed aggregation, Chebyshev smoother and block size of 1,
    \item \var{"Elasticity-2D" and "Elasticity-3D"}: using smoothed aggregation, Chebyshev smoother and block size of 2 or 3 respectively,
    \item \var{"Poisson-2D-complex" and "Poisson-3D-complex"}: using smoothed aggregation, symmetric Gauss-Seidel and block size 1,
    \item \var{"Elasticity-2D-complex" and "Elasticity-3D-complex"}: using smoothed aggregation, symmetric Gauss-Seidel and block size 2 and 3 respectively,
    \item \var{"ConvectionDiffusion"}: using Petrov-Galerkin AMG, Gauss-Seidel and 1 block,
    \item \var{"MHD"}: using unsmoothed aggregation and Additive Schwarts method with one level of overlap and ILU(0) as a subdomain solver.
\end{itemize}
\begin{python}
options.setTrilinosParameter("problem:type", "Poisson-3D")
\end{python}

\subsubsection{number of equations}
Number of PDE equations at each grid node.
\begin{python}
options.setTrilinosParameter("number of equations", 1)
\end{python}

\subsubsection{AMG algorithm}
The multigrid algorithm for computing the coarse levels and interpolation and restriction operators is controlled with \var{"multigrid algorithm"}. The default value is smoothed aggregation and is selected with \var{"sa"} and a damping factor can be imposed.  The other options are \var{"unsmoothed"}, no Jacobi prolongation improvement step; \var{"pg"}, $\mathbf{A}$ prolongation smoothing and $\mathbf{A}^T$ restriction smoothing; \var{"emin"} basis functions for grid transfer using energy constrained minimisation; \var{"interp"}, piecewise constant ("interpolation order" set to 0) or linear interpolation (\var{"interpolation order"} set to 1) from coarse to fine and is only possible with structured aggregation; and \var{"semicoarsen"}, coarsen fully in z direction (will need to set rate in this direction).   It is also possible to use an implicit transpose for the restriction operator.
\begin{python}
# smoothed aggregation
options.setTrilinosParameter("multigrid algorithm", "sa")
options.setTrilinosParameter("sa: damping factor", 1.3)
options.setTrilinosParameter("sa: use filtered matrix", True)
options.setTrilinosParameter("filtered matrix: use lumping", True)
options.setTrilinosParameter("filtered matrix: reuse eigenvalue", True)
# unsmoothed
options.setTrilinosParamter("multigrid algorithm", "unsmoothed")
# pg
options.setTrilinosParameter("multigrid algorithm", "pg")
# interpolation
options.setTrilinosParameter("multigrid algorithm", "interp")
options.setTrilinosParameter("interp: interpolation order", 1)
                                                          # 0, 1
options.setTrilinosParameter("interp: build coarse coordinates", True)
# emin
options.setTrilinosParameter("multigrid algorithm", "emin")
options.setTrilinosParameter("emin: iterative method", "cg")
                                                     # "cg", "gmres", "sd"
options.setTrilinosParameter("emin: num iterations", 2)
options.setTrilinosParameter("emin: num reuse iterations", 1)
options.setTrilinosParameter("emin: pattern", "AkPtent")
options.setTrilinosParameter("emin: pattern order", 1)
# semicoarsen
options.setTrilinosParameter("multigrid algorithm", "semicoarsen")
options.setTrilinosParameter("semicoarsen: coarsen rate", 3)
#
options.setTrilinosParameter("transpose: use implicit", False)
\end{python}

\subsubsection{Maximum levels, coarse mesh, coarse solver}
It is possible to limit the size of the coarsest level as well as limit the number of levels.  The default for the size of the coarsest level is 2000.  So once the size of the coarse level is less than 2000 then no more coarse levels are created.  Additionally, it is possible to limit the number of levels by setting "max levels" in the hierarchy.  This includes the fine grid.  The default value is 10 but depending on fine grid size, changing this could improve performance of the algorithm.  The coarsest level can be solved using a direct solver.  Possibilities are KLU, KLU2, SuperLU, SuperLU\_dist, Umfpack and Mumps

\begin{python}
options.setTrilinosParameter("max levels", 10)
options.setTrilinosParameter("coarse: max size", 2000)
options.setTrilinosParameter("coarse: type", "SuperLU")
\end{python}

\subsubsection{Aggregation}
It is possible to influence aggregation options.  If the fine mesh is a structured grid then aggregates can be created in a  "structured" way and the aggregation attempts to form hexahedral coarse levels.  This uses a default coarsening rate of 3 in each direction. The option "hybrid" allows user determined "structured" or "unstructured" aggregation for each level, To get optimal size coarse mesh ($3^d$ in $d$ dimensions) "uncoupled" or "coupled" is used with "coupled" allowing aggregates to span processors.  It is suggested that "coupled" should be used with care.  "brick" attempts to make rectangular aggregates. Some of the options are below with more detail and more options in the MUELU user guide.
\begin{python}
options.setTrilinosParameter("aggregation: type", "structured")
options.setTrilinosParameter("aggregation: ordering", "natural")
                                                 # "natural", "graph", "random"
options.setTrilinosParameter("aggregation: drop scheme", "classical")
                                                 # "classical", "distance laplacian"
options.setTrilinosParameter("aggregation: drop tol", 0.0)
options.setTrilinosParameter("aggregation: min agg size", 2)
options.setTrilinosParameter("aggregation: max agg size", -1)
                                                # -1 means unlimited
options.setTrilinosParameter("aggregation: Dirichlet threshold", 1e-5)
\end{python}

\subsubsection{Relationship between $\mathbf{R}_h^H$  and $\mathbf{P}^h_H$}
For $\mathbf{R}_h^H=(\mathbf{P}^h_H)^t$
\begin{python}
options.setTrilinosParameter("problem: symmetric", True)
\end{python}
this is the default.

\subsubsection{Smoothers}
In the escript script it is possible to choose smoother type, "RELAXATION", "CHEBYSHEV" and "ILUT" or "RILUT" but for more specific control the XML file needs to be used.  It is possible to use different pre and post smoothers.  "RELAXATION" could use Jacobi, Gauss-Seidel, symmetric Gauss-Seidel, multithreaded Gauss-Seidel.  To specify which one the XML file must be used.  Some examples for this are
\begin{python}
options.setTrilinosParameter("smoother: pre or post", "both")
options.setTrilinosParameter("smoother: type", "RELAXATION")
options.setTrilinosParameter("smoother: pre type", "CHEBYSHEV")
options.setTrilinosParameter("smoother: post type", "RELAXATION")
\end{python}

\subsubsection{Cycle type}
Allowable cycle types are "V" and "W".  The default is a "V" cycle.
\begin{python}
options.setTrilinosParameter("cycle type", "V")
\end{python}

\subsubsection{reuse}
If multiple PDEs are being solved the reuse strategy can use elements of previous computations.  The level of reuse varies from none to full.  Options are \var{"none"}; \var{"S"}, symbolic coarse levels information; \var{"tP"}, reuse tentative prolongation operator; \var{"emin"}, reuse old prolongator for initial guess; \var{"RP"}, reuse smoothed restrictor and prolongator; \var{"RAP"}, compute only fine level smoothers and reuse all other operators, and \var{"full"}, reuse everything.
\begin{python}
options.setTrilinosParameter("reuse: type", "full")
\end{python}

\subsubsection{repartitioning}
If there are multiple processors it might be benificial to repartition as the mesh are coarsened including perhaps using only one processor for the coarsest grid.  This is to reduce communication costs for the caorser grids.
\begin{python}
options.setTrilinosParameter("repartition: enable", False)
options.setTrilinosParameter("repartition: start level", 2)
options.setTrilinosParameter("repartition: min rows per proc", 800)
options.setTrilinosParameter("repartition: max imbalance", 1.2)
options.setTrilinosParameter("repartition: remap parts", True)
options.setTrilinosParameter("repartition: rebalance P and R", False)
\end{python}

\subsection{commands in XML file}
All the previous commands can be placed into an XML file.  The XML file option allows the user to choose parameters for the programs that MUELU calls, so more control is possible on the iterative solvers.
\begin{python}
from esys.escript import *
from esys.weipa import saveVTK, saveSilo
from esys.escript.linearPDEs import LinearSinglePDE
from esys.finley import ReadGmsh

domain=ReadGmsh("simplemesh.msh", 3,  optimize=True )

pde = LinearSinglePDE(domain, isComplex=False)
pde.setSymmetryOn()
x = domain.getX()
pde.setValue(A=kronecker(3), Y=1, q=whereZero(x[0]-inf(x[0])))

options = pde.getSolverOptions()
options.setPackage(SolverOptions.TRILINOS)
options.setSolverMethod(SolverOptions.PCG)
options.setPreconditioner(SolverOptions.AMG)
options.setTrilinosParameter("xml parameter file", "simplebob.xml")

u=pde.getSolution()
saveSilo("asimple",u=u)
\end{python}

It is possible to specify how many sweeps of the iterative solvers for pre and post smoothing and we could choose cycles with different numbers of pre and post sweeps.  Amesos2 provides direct solvers including superLU and Mumps. MueLu passes parameters directly to solver library.  To specify CHEBYSHEV parameters, for example, an XML file must be used.

Ifpack2 or Ifpack provides iterative matrix solvers Jacobi, Gauss Seidel, polynomial, distribution relaxation, domain decomposition solvers and incomplete factorizations.

A very simple XML file is in file \ref{simplebob}
\begin{python}[caption=simplebob.xml,label=simplebob]
<ParameterList name="MueLu">
  <Parameter name="verbosity"               type="string"    value="high"/>
  <Parameter name="max levels"              type="int"       value="4"/>
  <Parameter name="coarse: max size"        type="int"       value="200"/>
  <Parameter name="multigrid algorithm"     type="string"    value="sa"/>
  <Parameter name="reuse: type"             type="string"    value="full"/>
  <Parameter name="transpose: use implicit" type="bool"      value="true"/>
  <Parameter name="sa: damping factor"      type="double"    value="0.1"/>
  <Parameter name="sa: use filtered matrix" type="bool"      value="true"/>
</ParameterList>
\end{python}

A more complicated example that controls the number of pre and post sweeps is in the listing \ref{complicatedbob}
\begin{python}[caption=complicatedbob.xml,label=complicatedbob]
<ParameterList name="MueLu">
  <!--    General    -->
  <Parameter name="verbosity"               type="string"    value="high"/>
  <Parameter name="max levels"              type="int"       value="4"/>
  <Parameter name="coarse: max size"        type="int"       value="200"/>
  <Parameter name="multigrid algorithm"     type="string"    value="sa"/>
  <Parameter name="reuse: type"             type="string"    value="full"/>
  <Parameter name="transpose: use implicit" type="bool"      value="true"/>
  <Parameter name="sa: damping factor"      type="double"    value="0.1"/>
  <Parameter name="sa: use filtered matrix" type="bool"      value="true"/>

  <!-- Smoothing -->
  <Parameter name="smoother: pre or post"        type="string"  value="both"/>

  <Parameter name="smoother: pre type"           type="string"  value="CHEBYSHEV"/>
  <ParameterList name="smoother: pre params">
    <Parameter name="relaxation: type"           type="string"  value="Symmetric Gauss-Seidel"/>
    <Parameter name="relaxation: sweeps"         type="int"     value="5"/>
    <Parameter name="relaxation: damping factor" type="double"  value="0.9"/>
  </ParameterList>

  <ParameterList name="smoother: params">
    <Parameter name="chebyshev: degree"           type="int"     value="3"/>
    <Parameter name="chebyshev: ratio eigenvalue" type="double"  value="15"/>
  </ParameterList>

  <Parameter name="smoother: post type"           type="string"  value="RELAXATION"/>
  <ParameterList name="smoother: post params">
    <Parameter name="relaxation: type"           type="string"  value="Symmetric Gauss-Seidel"/>
    <Parameter name="relaxation: sweeps"         type="int"     value="5"/>
    <Parameter name="relaxation: damping factor" type="double"  value="0.9"/>
  </ParameterList>

  <!-- Aggregation -->
  <Parameter name="aggregation: type"           type="string"  value="uncoupled"/>
  <Parameter name="aggregation: min agg size"   type="int"     value="3"/>
  <Parameter name="aggregation: max agg size"   type="int"     value="27"/>

  <!--  for different level parameter list -->
  <ParameterList name="level 2">
    <Parameter name="smoother: type" type="string" value="CHEBYSHEV"/>
  </ParameterList>

</ParameterList>
\end{python}


\chapter{Binary search algorithms}
\Label{cha:binary-search}

In this chapter, we consider the four
\emph{binary search} algorithms of the \cxx Standard Library \cite[\S
28.7.3]{cxx-17-draft}, namely

\begin{itemize}
\item \lowerbound in \S\ref{sec:lowerbound}

\item \upperbound in \S\ref{sec:upperbound}

\item two variants for the implementation of  \equalrange in \S\ref{sec:equalrange}

\item two variants for the formal specification of \binarysearch in \S\ref{sec:binarysearch}
\end{itemize}

As in the case of the of maximum/minimum algorithms from Chapter~\ref{cha:maxmin}
the binary search algorithms primarily use the less-than operator~\inl{<}
(and the derived operators \inl{<=}, \inl{>} and \inl{>=}) to determine whether a particular
value is contained in an increasing range.
Thus, different to the \find algorithm in \S\ref{sec:find},
the equality operator~\inl{==} will play only a supporting part
in the specification of binary search.

In order to make the specifications of the binary search algorithms
more compact and (arguably) more readable we re-use the predicates
\logicref{LowerBound}, \logicref{StrictLowerBound},
\logicref{UpperBound}, and \logicref{StrictUpperBound}.

All binary search algorithms require that their input array is arranged in
increasing order.
The following listing shows two versions of predicate \logicref{Increasing}.
The first one defines when a section of an array is in increasing order.
The second version uses the first one to express that the whole array is in increasing order.

\input{Listings/Increasing.acsl.tex}

%\clearpage

There is also the overloaded predicate \logicref{WeaklyIncreasing} that we will user for
the verification of other algorithms.

\input{Listings/WeaklyIncreasing.acsl.tex}

Users inexperienced in formal verification often have a blind spot at the
difference between \Increasing and \WeaklyIncreasing.
%
Both versions are logically equivalent,
and proving that \Increasing implies \WeaklyIncreasing is even trivial.
%
However, proving the converse direction is not, and requires an induction on the
array size~\inl{n}, employing the transitivity of \inl{<=} in the induction step.
%
Humans are trained to perform such inductions unnoticed,
but none of the automated provers supported by \framac is able to perform induction.
%
The following Listing contains several lemmas on the relationship of
\WeaklyIncreasing and \Increasing.

\input{Listings/IncreasingLemmas.acsl.tex}

\clearpage

We usually exploit the relationship of the predicates \Increasing and \WeaklyIncreasing
in the following way:

\begin{itemize}
\item We use the predicate \Increasing in the preconditions and postconditions of
      function contracts.
\item The \WeaklyIncreasing is employed for assertions and loop invariants
      whenever we have to verify that an algorithm (typically a sorting algorithm)
      produces an increasing array.
\item Finally, to conclude that a \emph{weakly increasing} array is in fact \emph{increasing}
      we rely on lemma\\
      \logicref{WeaklyIncreasingIncreasing} .
\end{itemize}

\clearpage

\input{binary-search/lower_bound}
\input{binary-search/upper_bound}
\input{binary-search/equal_range}
\input{binary-search/binary_search}