Skip to content
Snippets Groups Projects
main.tex 60.3 KiB
Newer Older
%% Write  basic article template
Luke Naylor's avatar
Luke Naylor committed

\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage{color}
\usepackage{sagetex}
\usepackage{minted}
\usepackage[]{breqn}
Luke Naylor's avatar
Luke Naylor committed

Luke Naylor's avatar
Luke Naylor committed
\newcommand{\QQ}{\mathbb{Q}}
Luke Naylor's avatar
Luke Naylor committed
\newcommand{\ZZ}{\mathbb{Z}}
\newcommand{\RR}{\mathbb{R}}
\newcommand{\PP}{\mathbb{P}}
Luke Naylor's avatar
Luke Naylor committed
\newcommand{\chern}{\operatorname{ch}}
Luke Naylor's avatar
Luke Naylor committed
\newcommand{\lcm}{\operatorname{lcm}}
Luke Naylor's avatar
Luke Naylor committed
\newcommand{\firsttilt}[1]{\mathcal{B}^{#1}}
\newcommand{\bddderived}{\mathcal{D}^{b}}
\newcommand{\centralcharge}{\mathcal{Z}}
\newcommand{\minorheading}[1]{{\noindent\normalfont\normalsize\bfseries #1}}
Luke Naylor's avatar
Luke Naylor committed

\newtheorem{theorem}{Theorem}[section]
\newtheorem{corrolary}{Corrolary}[section]
\newtheorem{lemmadfn}{Lemma/Definition}[section]
\newtheorem{dfn}{Definition}[section]
\newtheorem{fact}{Fact}[section]
\newtheorem{example}{Example}[section]
Luke Naylor's avatar
Luke Naylor committed
\begin{document}

\begin{sagesilent}
# Requires extra package:
#! sage -pip install "pseudowalls==0.0.3" --extra-index-url https://gitlab.com/api/v4/projects/43962374/packages/pypi/simple

from pseudowalls import *

Δ = lambda v: v.Q_tilt()
mu = stability.Mumford().slope

def beta_minus(v):
  beta = stability.Tilt().beta
  solutions = solve(
    stability.Tilt(alpha=0).degree(v)==0,
    beta)
  return min(map(lambda s: s.rhs(), solutions))

class Object(object):
  pass
\end{sagesilent}

Luke Naylor's avatar
Luke Naylor committed
\title{Explicit Formulae for Bounds on the Ranks of Tilt Destabilizers and
Practical Methods for Finding Pseudowalls}
Luke Naylor's avatar
Luke Naylor committed

\author{Luke Naylor}

\maketitle

Luke Naylor's avatar
Luke Naylor committed
\tableofcontents

Luke Naylor's avatar
Luke Naylor committed
\section{Introduction}
\label{sec:intro}
Luke Naylor's avatar
Luke Naylor committed

[ref] shows that for any rational $\beta_0$,
the vertical line $\{\sigma_{\alpha,\beta_0} \colon \alpha \in \RR_{>0}\}$ only
Luke Naylor's avatar
Luke Naylor committed
intersects finitely many walls. A consequence of this is that if
$\beta_{-}$ is rational, then there can only be finitely many circular walls to the
Luke Naylor's avatar
Luke Naylor committed
left of the vertical wall $\beta = \mu$.
On the other hand, when $\beta_{-}$ is not rational, [ref] showed that there are
Luke Naylor's avatar
Luke Naylor committed
infinitely many walls.

This dichotomy does not only hold for real walls, realised by actual objects in
$\bddderived(X)$, but also for pseudowalls. Here pseudowalls are defined as
`potential' walls, induced by hypothetical Chern characters of destabilizers
which satisfy certain numerical conditions which would be satisfied by any real
destabilizer, regardless of whether they are realised by actual semistabilizers
in $\bddderived(X)$.
Luke Naylor's avatar
Luke Naylor committed

Since real walls are a subset of pseudowalls, the irrational $\beta_{-}$ case
Luke Naylor's avatar
Luke Naylor committed
follows immediately from the corresponding case for real walls.
However, the rational $\beta_{-}$ case involves showing that the following
Luke Naylor's avatar
Luke Naylor committed
conditions only admit finitely many solutions (despite the fact that the same
conditions admit infinitely many solutions when $\beta_{-}$ is irrational).
Luke Naylor's avatar
Luke Naylor committed


For a destabilizing sequence
$E \hookrightarrow F \twoheadrightarrow G$ in $\mathcal{B}^\beta$
we have the following conditions.
There are some Bogomolov-Gieseker type inequalities:
$0 \leq \Delta(E), \Delta(G)$ and $\Delta(E) + \Delta(G) \leq \Delta(F)$.
We also have a condition relating to the tilt category $\firsttilt\beta$:
$0 \leq \chern^\beta_1(E) \leq \chern^\beta_1(F)$.
Luke Naylor's avatar
Luke Naylor committed
Finally, there is a condition ensuring that the radius of the circular wall is
strictly positive: $\chern^{\beta_{-}}_2(E) > 0$.
Luke Naylor's avatar
Luke Naylor committed

For any fixed $\chern_0(E)$, the inequality
$0 \leq \chern^{\beta}_1(E) \leq \chern^{\beta}_1(F)$,
allows us to bound $\chern_1(E)$. Then, the other inequalities allow us to
bound $\chern_2(E)$. The final part to showing the finiteness of pseudowalls
would be bounding $\chern_0(E)$. This has been hinted at in [ref] and done
explicitly by Benjamin Schmidt within a computer program which computes
pseudowalls. Here we discuss these bounds in more detail, along with the methods
used, followed by refinements on them which give explicit formulae for tighter
bounds on $\chern_0(E)$ of potential destabilizers $E$ of $F$.

Luke Naylor's avatar
Luke Naylor committed

\section{Characteristic Curves of Stability Conditions Associated to Chern
Characters}
Luke Naylor's avatar
Luke Naylor committed

\begin{dfn}[Pseudo-semistabilizers]
	Given a Chern Character $v$, and a given stability condition $\sigma$, 
	a pseudo-semistabilizing $u$ is a `potential' Chern character:
	\[
		u = \left(r, c\ell, d \frac{1}{2} \ell^2\right)
	\]
	which has the same tilt slope as $v$: $\mu_{\sigma}(u) = \mu_{\sigma}(v)$.

	Note $u$ does not need to be a Chern character of an actual sub-object of some
	object in the stability condition's heart with Chern character $v$.
\end{dfn}

At this point, and in this document, we do not care about whether
pseudo-semistabilizers are even Chern characters of actual elements of
$\bddderived(X)$, some other sources may have this extra restriction too.

Considering the stability conditions with two parameters $\alpha, \beta$ on
Picard rank 1 surfaces.
We can draw 2 characteristic curves for any given Chern character $v$ with
$\Delta(v) \geq 0$ and positive rank.
These are given by the equations $\chern_i^{\alpha,\beta}(v)=0$ for $i=1,2$, and
are illustrated in Fig \ref{fig:charact_curves_vis}
(dotted line for $i=1$, solid for $i=2$).

\begin{dfn}[Characteristic Curves $V_v$ and $\Theta_v$]
Given a Chern character $v$, with positive rank and $\Delta(v) \geq 0$, we
define two characteristic curves on the $(\alpha, \beta)$-plane:

\begin{align*}
	V_v &\colon \chern_1^{\alpha, \beta}(v) = 0 \\
	\Theta_v &\colon \chern_2^{\alpha, \beta}(v) = 0
\end{align*}
\end{dfn}

\begin{fact}[Geometry of Characteristic Curves]
The following facts can be deduced from the formulae for $\chern_i^{\alpha, \beta}(v)$
as well as the restrictions on $v$:
\begin{itemize}
	\item $V_v$ is a vertical line at $\beta=\mu(v)$
	\item $\Theta_v$ is a hyperbola with assymptotes angled at $\pm 45^\circ$
		crossing where $V_v$ meets the $\beta$-axis: $(\mu(v),0)$
	\item $\Theta_v$ is oriented with left-right branches (as opposed to up-down).
		The left branch shall be labelled $\Theta_v^-$ and the right $\Theta_v^+$.
	\item The gap along the $\beta$-axis between either branch of $\Theta_v$
		and $V_v$ is $\sqrt{\Delta(v)}/\chern_0(v)$.
	\item When $\Delta(v)=0$, $\Theta_v$ degenerates into a pair of lines, but the
		labels $\Theta_v^\pm$ will still be used for convenience.
\end{itemize}
\end{fact}

\minorheading{Relevance of the vertical line $V_v$}

By definition of the first tilt $\firsttilt\beta$, objects of Chern character
$v$ can only be in $\firsttilt\beta$ on the left of $V_v$, where
$\chern_1^{\alpha,\beta}(v)>0$, and objects of Chern character $-v$ can only be
in $\firsttilt\beta$ on the right, where $\chern_1^{\alpha,\beta}(-v)>0$. In
fact, if there is a Gieseker semistable coherent sheaf $E$ of Chern character
$v$, then $E \in \firsttilt\beta$ if and only if $\beta<\mu(E)$ (left of the
$V_v$), and $E[1] \in \firsttilt\beta$ if and only if $\beta\geq\mu(E)$.
Because of this, when using these characteristic curves, only positive ranks are
considered, as negative rank objects are implicitly considered on the right hand
side of $V_v$.

\begin{sagesilent}
def charact_curves(v):
    alpha = stability.Tilt().alpha
    beta = stability.Tilt().beta
    coords_range = (beta, -4, 5), (alpha, 0, 4)
Luke Naylor's avatar
Luke Naylor committed
    text_args = {"fontsize":"xx-large", "clip":True}
Luke Naylor's avatar
Luke Naylor committed
    black_text_args = {"rgbcolor": "black", **text_args}
    p = (
      implicit_plot(stability.Tilt().degree(v), *coords_range )
      + line([(mu(v),0),(mu(v),5)], linestyle = "dashed")
Luke Naylor's avatar
Luke Naylor committed
      + text(r"$\Theta_v^+$",[3.5, 2], rotation=45, **text_args)
      + text(r"$V_v$", [0.43, 1.5], rotation=90, **text_args)
      + text(r"$\Theta_v^-$", [-2.2, 2], rotation=-45, **text_args)
Luke Naylor's avatar
Luke Naylor committed
      + text(r"$\nu_{\alpha, \beta}(v)>0$", [-3, 1], **black_text_args)
      + text(r"$\nu_{\alpha, \beta}(v)<0$", [-1, 3], **black_text_args)
      + text(r"$\nu_{\alpha, \beta}(-v)>0$", [2, 3], **black_text_args)
      + text(r"$\nu_{\alpha, \beta}(-v)<0$", [4, 1], **black_text_args)
    )
    p.xmax(5)
    p.xmin(-4)
    p.ymax(4)
    p.axes_labels([r"$\beta$", r"$\alpha$"])
    return p

v1 = Chern_Char(3, 2, -2)
v2 = Chern_Char(3, 2, 2/3)
\end{sagesilent}

\begin{figure}
\centering
\begin{subfigure}{.49\textwidth}
	\centering
	\sageplot[width=\textwidth]{charact_curves(v1)}
	\caption{$\Delta(v)>0$}
	\label{fig:charact_curves_vis_bgmvlPos}
\end{subfigure}%
\hfill
\begin{subfigure}{.49\textwidth}
	\centering
	\sageplot[width=\textwidth]{charact_curves(v2)}
	\caption{
		$\Delta(v)=0$: hyperbola collapses
	}
	\label{fig:charact_curves_vis_bgmlv0}
\end{subfigure}
\caption{
	Characteristic curves ($\chern_i^{\alpha,\beta}(v)=0$) of stability conditions
	associated to Chern characters $v$ with $\Delta(v) \geq 0$ and positive rank.
}
\label{fig:charact_curves_vis}
\end{figure}

\minorheading{Relevance of the hyperbola $\Theta_v$}

Since $\chern_2^{\alpha, \beta}$ is the numerator of the tilt slope
$\nu_{\alpha, \beta}$. The curve $\Theta_v$, where this is 0, firstly divides the
$(\alpha$-$\beta)$-half-plane into regions where the signs of tilt slopes of
objects of Chern character $v$ (or $-v$) are fixed. Secondly, it gives more of a
fixed target for some $u=(r,c\ell,d\frac{1}{2}\ell^2)$ to be a
pseudo-semistabilizer of $v$, in the following sense: If $(\alpha,\beta)$, is on
$\Theta_v$, then for any $u$, $u$ is a pseudo-semistabilizer of $v$ iff
$\nu_{\alpha,\beta}(u)=0$, and hence $\chern_2^{\alpha, \beta}(u)=0$. In fact,
this allows us to use the characteristic curves of some $v$ and $u$ (with
$\Delta(v), \Delta(u)\geq 0$ and positive ranks) to determine the location of
the pseudo-wall where $u$ pseudo-semistabilizes $v$. This is done by finding the
intersection of $\Theta_v$ and $\Theta_u$.
%TODO ref forwards

\subsection{Bertram's nested wall theorem}

Although Bertram's nested wall theorem can be proved more directly, it's also
important for the content of this document to understand the connection with
these characteristic curves.
Emanuele Macri noticed in (TODO ref) that any circular wall of $v$ reaches a critical
point on $\Theta_v$ (TODO ref). This is a consequence of
$\frac{\delta}{\delta\beta} \chern_2^{\alpha,\beta} = -\chern_1^{\alpha,\beta}$.
This fact, along with the hindsight knowledge that non-vertical walls are
circles with centers on the $\beta$-axis, gives an alternative view to see that
the circular walls must be nested and non-intersecting.

\subsection{Characteristic curves for pseudo-semistabilizers}

\begin{lemma}[Numerical tests for left-wall pseudo-semistabilizers]
\label{lem:pseudo_wall_numerical_tests}
Let $v$ and $u$ be Chern characters with positive ranks and $\Delta(v),
\Delta(u)\geq 0$. Let $P$ be a point on $\Theta_v^-$.
\noindent
Suppose that the following are satisfied:
\bgroup
\renewcommand{\labelenumi}{\alph{enumi}.}
\begin{enumerate}
\item $u$ gives rise to a pseudo-wall for $v$, left of the vertical line $V_v$
\item The pseudo-wall contains $P$ in it's interior
	($P$ can be chosen to be the base of the left branch to target all left-walls)
\item $u$ destabilizes $v$ going `inwards', that is,
	$\nu_{\alpha,\beta}(\pm u)<\nu_{\alpha,\beta}(v)$ outside the pseudo-wall, and
	$\nu_{\alpha,\beta}(\pm u)>\nu_{\alpha,\beta}(v)$ inside.
	Where we use $+u$ or $-u$ depending on whether $(\beta,\alpha)$ is on the left
	or right (resp.) of $V_u$.
\begin{enumerate}
	\item The pseudo-wall is left of $V_u$
		(if this is a real wall then $v$ is being semistabilized by an object with
		Chern character $u$, not $-u$)
	\item $\beta(P)<\mu(u)<\mu(v)$, i.e., $V_u$ is strictly between $P$ and $V_v$.
	\item $\chern_2^{P}(u)>0$
\end{enumerate}
Furthermore, only the last two of these consequences are sufficient to recover
all of the suppositions above.
\end{lemma}
\begin{proof}
Let $u,v$ be Chern characters with positive ranks and
$\Delta(u),\Delta(v) \geq 0$.


For the forwards implication, assume that the suppositions of the lemma are
satisfied. The pseudo-wall intersects $\Theta_v^-$, at some point $Q$ further up
the hyperbola branch than $P$ (to satisfy supposition b). At $Q$, we have
$\nu_Q(v)=0$, and hence $\nu_Q(u)=0$ too. This means that $\Theta_u$ must
intersect $\Theta_v^-$ at $Q$. Considering the shapes of the hyperbolae alone,
there are 3 distinct ways that they can intersect, as illustrated in Fig
\ref{fig:hyperbol-intersection}. These cases are distinguished by whether it is
the left, or the right branch of $\Theta_u$ involved, as well as the positions
of the base. However, considering supposition b, only case 3 (green in
figure) is valid. This is because we need $\nu_{P}(u)>0$ (or $\nu_{P}(-u)>0$ in
case 1 involving $\Theta_u^+$).
Recalling how the sign of $\nu_{\alpha,\beta}(\pm u)$ changes (illustrated in
Fig \ref{fig:charact_curves_vis}), we can eliminate cases 1 and 2.
In passing, note that this implies consequence 3.

\begin{sagesilent}
def hyperbola_intersection_plot():
  var("alpha beta", domain="real")
  coords_range = (beta, -3, -1/2), (alpha, 0, 2.5)
  delta1 = -sqrt(2)+1/100
  delta2 = 1/2
  pbeta=-1.5
Luke Naylor's avatar
Luke Naylor committed
  text_args = {"fontsize":"large", "clip":True}
  black_text_args = {"rgbcolor":"black", **text_args}
Luke Naylor's avatar
Luke Naylor committed
    implicit_plot( beta^2 - alpha^2 == 2,
        *coords_range , rgbcolor = "black", legend_label=r"a")
    + implicit_plot( (beta+4)^2 - (alpha)^2 == 2,
        *coords_range , rgbcolor = "red")
    + implicit_plot( (beta+delta1)^2 - alpha^2 == (delta1-2)^2-2,
        *coords_range , rgbcolor = "blue")
    + implicit_plot( (beta+delta2)^2 - alpha^2 == (delta2-2)^2-2,
        *coords_range , rgbcolor = "green")
    + point([-2, sqrt(2)], size=50, rgbcolor="black", zorder=50)
Luke Naylor's avatar
Luke Naylor committed
    + text("Q",[-2, sqrt(2)+0.1], **black_text_args)
    + point([pbeta, sqrt(pbeta^2-2)], size=50, rgbcolor="black", zorder=50)
Luke Naylor's avatar
Luke Naylor committed
    + text("P",[pbeta+0.1, sqrt(pbeta^2-2)], **black_text_args)
    + circle((-2,0),sqrt(2), linestyle="dashed", rgbcolor="purple")
    # dummy lines to add legends (circumvent bug in implicit_plot)
Luke Naylor's avatar
Luke Naylor committed
    + line([(2,0),(2,0)] , rgbcolor = "purple", linestyle="dotted",
        legend_label=r"pseudo-wall")
    + line([(2,0),(2,0)] , rgbcolor = "black",
Luke Naylor's avatar
Luke Naylor committed
        legend_label=r"$\Theta_v^-$")
    + line([(2,0),(2,0)] , rgbcolor = "red", legend_label=r"$\Theta_u$ case 1")
    + line([(2,0),(2,0)] , rgbcolor = "blue", legend_label=r"$\Theta_u$ case 2")
    + line([(2,0),(2,0)] , rgbcolor = "green", legend_label=r"$\Theta_u$ case 3")
Luke Naylor's avatar
Luke Naylor committed
  p.set_legend_options(loc="upper right", font_size="x-large",
    font_family="serif")
  p.xmax(coords_range[0][2])
  p.xmin(coords_range[0][1])
  p.ymax(coords_range[1][2])
  p.ymin(coords_range[1][1])
Luke Naylor's avatar
Luke Naylor committed
  p.axes_labels([r"$\beta$", r"$\alpha$"])
  return p

def correct_hyperbola_intersection_plot():
  var("alpha beta", domain="real")
  coords_range = (beta, -2.5, 0.5), (alpha, 0, 3)
  delta2 = 1/2
  pbeta=-1.5
Luke Naylor's avatar
Luke Naylor committed
  text_args = {"fontsize":"large", "clip":True}
  black_text_args = {"rgbcolor":"black", **text_args}
Luke Naylor's avatar
Luke Naylor committed
    implicit_plot( beta^2 - alpha^2 == 2,
        *coords_range , rgbcolor = "black", legend_label=r"a")
    + implicit_plot((beta+delta2)^2 - alpha^2 == (delta2-2)^2-2,
        *coords_range , rgbcolor = "green")
    + point([-2, sqrt(2)], size=50, rgbcolor="black", zorder=50)
Luke Naylor's avatar
Luke Naylor committed
    + text("Q",[-2, sqrt(2)+0.1], **black_text_args)
    + point([pbeta, sqrt(pbeta^2-2)], size=50, rgbcolor="black", zorder=50)
Luke Naylor's avatar
Luke Naylor committed
    + text("P",[pbeta+0.1, sqrt(pbeta^2-2)], **black_text_args)
    + circle((-2,0),sqrt(2), linestyle="dashed", rgbcolor="purple")
    # dummy lines to add legends (circumvent bug in implicit_plot)
Luke Naylor's avatar
Luke Naylor committed
    + line([(2,0),(2,0)] , rgbcolor = "purple", linestyle="dotted",
        legend_label=r"pseudo-wall")
    + line([(2,0),(2,0)] , rgbcolor = "black",
Luke Naylor's avatar
Luke Naylor committed
        legend_label=r"$\Theta_v^-$")
Luke Naylor's avatar
Luke Naylor committed
    + line([(2,0),(2,0)] , rgbcolor = "green",
Luke Naylor's avatar
Luke Naylor committed
        legend_label=r"$\Theta_u^-$")
    # vertical characteristic lines
Luke Naylor's avatar
Luke Naylor committed
    + line([(0,0),(0,coords_range[1][2])],
        rgbcolor="black", linestyle="dashed",
Luke Naylor's avatar
Luke Naylor committed
        legend_label=r"$V_v$")
Luke Naylor's avatar
Luke Naylor committed
    + line([(-delta2,0),(-delta2,coords_range[1][2])],
        rgbcolor="green", linestyle="dashed",
Luke Naylor's avatar
Luke Naylor committed
        legend_label=r"$V_u$")
Luke Naylor's avatar
Luke Naylor committed
    + line([(-delta2,0),(-delta2-coords_range[1][2],coords_range[1][2])],
        rgbcolor="green", linestyle="dotted",
Luke Naylor's avatar
Luke Naylor committed
        legend_label=r"$\Theta_u^-$ assymptote")
    + line([(0,0),(-coords_range[1][2],coords_range[1][2])],
        rgbcolor="black", linestyle="dotted",
        legend_label=r"$\Theta_v^-$ assymptote")
Luke Naylor's avatar
Luke Naylor committed
  p.set_legend_options(loc="upper right", font_size="x-large",
    font_family="serif")
  p.xmax(coords_range[0][2])
  p.xmin(coords_range[0][1])
  p.ymax(coords_range[1][2])
  p.ymin(coords_range[1][1])
  p.axes_labels([r"$\beta$", r"$\alpha$"])
  return p
\end{sagesilent}

\begin{figure}
\begin{subfigure}[t]{0.48\textwidth}
	\centering
	\sageplot[width=\textwidth]{hyperbola_intersection_plot()}
	\caption{Three ways the characteristic hyperbola for $u$ can intersect the left
	branch of the characteristic hyperbola for $v$}
	\label{fig:hyperbol-intersection}
\end{subfigure}
\hfill
\begin{subfigure}[t]{0.48\textwidth}
	\centering
	\sageplot[width=\textwidth]{correct_hyperbola_intersection_plot()}
	\caption{Closer look at characteristic curves for valid case}
	\label{fig:correct-hyperbol-intersection}
\end{subfigure}
\end{figure}
Fixing attention on the only valid case (2), illustrated in Fig
\ref{fig:correct-hyperbol-intersection}. We must have $\Theta_u^-$ taking a
base-point to the right $\Theta_v$, but then, further up, crossing over to the
left side. The latter fact implies that the assymptote for $\Theta_u^-$ must be
to the left of the one for $\Theta_v^-$. Given that they are parallel and
intersect the $\beta$-axis at $\beta=\mu(u)$ and $\beta=\mu(v)$ respectively. We
must have $\mu(u)<\mu(v)$, that is, $V_u$ is strictly to the left of $V_v$.
Finally, the fact that it is the left branch of the hyperbola for $u$ implies
consequence 1 and $\beta(P)<\mu(u)$ (consequence 2).
Conversely, suppose that the consequences 2 and 3 are satisfied. Consequence 2
implies that the assymptote for $\Theta_u^-$ is to the left of $\Theta_v^-$.
Consequence 3, along with $\beta(P)<\mu(u)$, implies that $P$ must be in the
region left of $\Theta_u^-$. These two facts imply that $\Theta_u^-$ is to the
right of $\Theta_v^-$ at $\alpha=\alpha(P)$, but crosses to the left side as
$\alpha \to +\infty$. This implies suppositions a and b, and that the
characteristic curves for $u$ and $v$ must be in the configuration illustrated
in Fig \ref{fig:correct-hyperbol-intersection}. Recalling consequence 3 finally
confirms supposition c.
\section{Loose Bounds on $\chern_0(E)$ for Semistabilizers Along Fixed
$\beta\in\QQ$}
\begin{dfn}[Twisted Chern Character]
\label{sec:twisted-chern}
For a given $\beta$, define the twisted Chern character as follows.
\[\chern^\beta(E) = \chern(E) \cdot \exp(-\beta \ell)\]
\noindent
Component-wise, this is:
\begin{align*}
	\chern^\beta_0(E) &= \chern_0(E)
\\
	\chern^\beta_1(E) &= \chern_1(E) - \beta \chern_0(E)
\\
	\chern^\beta_2(E) &= \chern_2(E) - \beta \chern_1(E) + \frac{\beta^2}{2} \chern_0(E)
\end{align*}
where $\chern_i$ is the coefficient of $\ell^i$ in $\chern$.
Luke Naylor's avatar
Luke Naylor committed
% TODO I think this^ needs adjusting for general Surface with $\ell$
Luke Naylor's avatar
Luke Naylor committed

$\chern^\beta_1(E)$ is the imaginary component of the central charge
$\centralcharge_{\alpha,\beta}(E)$ and any element of $\firsttilt\beta$
satisfies $\chern^\beta_1 \geq 0$. This, along with additivity gives us, for any
destabilizing sequence [ref]:
\begin{equation}
	\label{eqn-tilt-cat-cond}
	0 \leq \chern^\beta_1(E) \leq \chern^\beta_1(F)

When finding Chern characters of potential destabilizers $E$ for some fixed
Chern character $\chern(F)$, this bounds $\chern_1(E)$.

The Bogomolov form applied to the twisted Chern character is the same as the
normal one. So $0 \leq \Delta(E)$ yields:

\begin{equation}
	\label{eqn-bgmlv-on-E}
Luke Naylor's avatar
Luke Naylor committed
	2\chern^\beta_0(E) \chern^\beta_2(E) \leq \chern^\beta_1(E)^2
\begin{theorem}[Bound on $r$ - Benjamin Schmidt]
\label{thm:loose-bound-on-r}
Given a Chern character $v$ such that $\beta_-:=\beta_{-}(v)\in\QQ$, the rank $r$ of
any semistabilizer $E$ of some $F \in \firsttilt{\beta_-}$ with $\chern(F)=v$ is
	r \leq \frac{mn^2 \chern^{\beta_-}_1(v)^2}{\gcd(m,2n^2)}
The restrictions on $\chern^{\beta_-}_0(E)$ and $\chern^{\beta_-}_2(E)$
is best seen with the following graph:

% TODO: hyperbola restriction graph (shaded)
\begin{sagesilent}
var("m") # Initialize symbol for variety parameter
\end{sagesilent}
Luke Naylor's avatar
Luke Naylor committed

This is where the rationality of $\beta_{-}$ comes in. If
$\beta_{-} = \frac{a_v}{n}$ for some $a_v,n \in \ZZ$. Then
$\chern^{\beta_-}_2(E) \in \frac{1}{\lcm(m,2n^2)}\ZZ$ where $m$ is the integer
Luke Naylor's avatar
Luke Naylor committed
which guarantees $\chern_2(E) \in \frac{1}{m}\ZZ$ (determined by the variety).
In particular, since $\chern_2^{\beta_-}(E) > 0$ (by using 	$P=(\beta_-,0)$ in
lemma \ref{lem:pseudo_wall_numerical_tests}) we must also have
$\chern^{\beta_-}_2(E) \geq \frac{1}{\lcm(m,2n^2)}$, which then in turn gives a
bound for the rank of $E$:
Luke Naylor's avatar
Luke Naylor committed

\begin{align}
	\chern_0(E) &= \chern^{\beta_-}_0(E) \\
	&\leq \frac{\lcm(m,2n^2) \chern^{\beta_-}_1(E)^2}{2} \\
	&= \frac{mn^2 \chern^{\beta_-}_1(F)^2}{\gcd(m,2n^2)}
Luke Naylor's avatar
Luke Naylor committed
\end{align}

\begin{example}[$v=(3, 2\ell, -2)$ on $\PP^2$]
\label{exmpl:recurring-first}
\begin{sagesilent}
recurring = Object()
recurring.chern = Chern_Char(3, 2, -2)
recurring.b = beta_minus(recurring.chern)
recurring.twisted = recurring.chern.twist(recurring.b)
\end{sagesilent}
Taking $\ell=c_1(\mathcal{O}(1))$ as the standard polarization on $\PP^2$, so
that $m=2$, $\beta_-=\sage{recurring.b}$,
giving $n=\sage{recurring.b.denominator()}$ and
$\chern_1^{\sage{recurring.b}}(F) = \sage{recurring.twisted.ch[1]}$.

\begin{sagesilent}
n = recurring.b.denominator()
m = 2
loose_bound = (
  m*n^2*recurring.twisted.ch[1]^2
) / gcd(m, 2*n^2)
\end{sagesilent}
Using the above theorem \ref{thm:loose-bound-on-r}, we get that the ranks of
tilt semistabilizers for $v$ are bounded above by $\sage{loose_bound}$.
However, when computing all tilt semistabilizers for $v$ on $\PP^2$, the maximum
rank that appears turns out to be 25. This will be a recurring example to
illustrate the performance of later theorems about rank bounds
\end{example}

\begin{example}[extravagant example: $v=(29, 13\ell, -3/2)$ on $\PP^2$]
\label{exmpl:extravagant-first}
\begin{sagesilent}
extravagant = Object()
extravagant.chern = Chern_Char(29, 13, -3/2)
extravagant.b = beta_minus(extravagant.chern)
extravagant.twisted = extravagant.chern.twist(extravagant.b)
extravagant.actual_rmax = 49313
\end{sagesilent}
Taking $\ell=c_1(\mathcal{O}(1))$ as the standard polarization on $\PP^2$, so
that $m=2$, $\beta_-=\sage{extravagant.b}$,
giving $n=\sage{extravagant.b.denominator()}$ and
$\chern_1^{\sage{extravagant.b}}(F) = \sage{extravagant.twisted.ch[1]}$.

\begin{sagesilent}
n = extravagant.b.denominator()
m = 2
loose_bound = (
  m*n^2*extravagant.twisted.ch[1]^2
) / gcd(m, 2*n^2)
\end{sagesilent}
Using the above theorem \ref{thm:loose-bound-on-r}, we get that the ranks of
tilt semistabilizers for $v$ are bounded above by $\sage{loose_bound}$.
However, when computing all tilt semistabilizers for $v$ on $\PP^2$, the maximum
rank that appears turns out to be $\sage{extravagant.actual_rmax}$.
\end{example}

\section{B.Schmidt's Wall Finding Method}
The proof for the previous theorem was hinted at in [ref], but the value appears
explicitly in [ref]. The latter reference is a SageMath [ref?] library for
computing certain quantities related to Bridgeland stabilities on Picard rank 1
varieties. It also includes functions to compute pseudo-walls and
pseudo-semistabilizers for tilt stability.

Here is an outline of the algorithm involved to do this. Simplifications will be
made in the presenteation to concentrate on the case we are interested in:
finding all pseudo-walls when $\beta_{-}\in\QQ$. In section [ref], a different
algorithm will be presented making use of the later theorems in this article,
with the goal of cutting down the run time.
Luke Naylor's avatar
Luke Naylor committed

\subsection{Strategy}

Goals:
\begin{itemize}
	\item link repo
	\item Calc max destab rank
	\item Decrease mu(E) starting from mu(F) taking on all poss frac vals
	\item iterate over something else
	\item Stop when conditions fail
	\item method works same way for both rational beta_{-} but also for walls
		larger than certain amount

Fix a Chern character $v$ with positive rank, $\Delta(v) \geq 0$,
and $\beta_{-}(v) \in \QQ$.
The goal is to find all Chern characters $u=(r,c\ell,d\ell^2)$ which satisfy the
conditions of lemma \ref{lem:pseudo_wall_numerical_tests} using
$P=(\beta_{-},0)$, as well as the Bogomolov inequalities:
$\Delta(u),\Delta(v-u) \geq 0$ and $\Delta(u)+\Delta(v-u) \leq \Delta(v)$.
We want to restrict our attention to pseudo-walls left of $V_v$ (condition (a) of
lemma), because this is the side of $V_v$ containing the chamber for Gieseker
stable objects, and the picture on the other side should be symmetric.
Condition (c) of the lemma is there to restrict to objects most likely to
semistabilizers of actual sheaves. The Chern characters which destabilize
`outwards' can be recovered as $v-u$ for each solution $u$ to the current
problem.

To do this, first calculate the upper bound $r_{max}$ on the ranks of tilt
semistabilizers, as given by theorem \ref{thm:loose-bound-on-r}.

Recalling consequence 2 of lemma \ref{lem:pseudo_wall_numerical_tests}, we can
iterate through the possible values of $\mu(u)=\frac{c}{r}$ taking a decreasing
sequence of all fractions between $\mu(v)$ and $\beta_{-}$, who's denominators
are no large than $r_{max}$ (giving a finite sequence). This can be done with Farey sequences [ref], for
which there exist formulae to generate.

These $\mu(u)$ values determine pairs $r,c$ up to multiples, we can then take
all multiples which satisy $0<r\geq r_{max}$.

We now have a finite sequence of pairs $r,c$ for which there might be a solution
to our problem. In particular, any $(r,c\ell,d\ell^2)$ satisfies consequence 2
of lemma \ref{lem:pseudo_wall_numerical_tests}, and the positive rank condition.


Luke Naylor's avatar
Luke Naylor committed
\end{itemize}

\subsection{Limitations}

Goals:
\begin{itemize}
	\item large rank forces mu to beta_{-}, so many vals of mu(E) checked
		needlessly
	\item noticeably slow (show benchmark)
\end{itemize}

\section{Refinement}
\label{sec:refinement}
Luke Naylor's avatar
Luke Naylor committed

Luke Naylor's avatar
Luke Naylor committed
To get tighter bounds on the rank of destabilizers $E$ of some $F$ with some
fixed Chern character, we will need to consider each of the values which
$\chern_1^{\beta}(E)$ can take.
Luke Naylor's avatar
Luke Naylor committed
Doing this will allow us to eliminate possible values of $\chern_0(E)$ for which
each $\chern_1^{\beta}(E)$ leads to the failure of at least one of the inequalities.
Luke Naylor's avatar
Luke Naylor committed
As opposed to only eliminating possible values of $\chern_0(E)$ for which all
corresponding $\chern_1^{\beta}(E)$ fail one of the inequalities (which is what
Luke Naylor's avatar
Luke Naylor committed
was implicitly happening before).

First, let us fix a Chern character for $F$,
$\chern(F) = (R,C\ell,D\ell^2)$, and consider the possible Chern characters
$\chern(E) = (r,c\ell,d\ell^2)$ of some semistabilizer $E$.
Luke Naylor's avatar
Luke Naylor committed
 
\begin{sagesilent}
Luke Naylor's avatar
Luke Naylor committed
# Requires extra package:
#! sage -pip install "pseudowalls==0.0.3" --extra-index-url https://gitlab.com/api/v4/projects/43962374/packages/pypi/simple
Luke Naylor's avatar
Luke Naylor committed
from pseudowalls import *
Luke Naylor's avatar
Luke Naylor committed

Luke Naylor's avatar
Luke Naylor committed
v = Chern_Char(*var("R C D", domain="real"))
u = Chern_Char(*var("r c d", domain="real"))
Luke Naylor's avatar
Luke Naylor committed
Δ = lambda v: v.Q_tilt()
Luke Naylor's avatar
Luke Naylor committed
\end{sagesilent}

Recall [ref] that $\chern_1^{\beta}$ has fixed bounds in terms of
Luke Naylor's avatar
Luke Naylor committed
$\chern(F)$, and so we can write:

\begin{sagesilent}
Luke Naylor's avatar
Luke Naylor committed
ts = stability.Tilt
var("beta", domain="real")
Luke Naylor's avatar
Luke Naylor committed
c_lower_bound = -(
Luke Naylor's avatar
Luke Naylor committed
	/ts().alpha
).expand() + c
Luke Naylor's avatar
Luke Naylor committed
var("q", domain="real")
c_in_terms_of_q = c_lower_bound + q
Luke Naylor's avatar
Luke Naylor committed
\begin{equation}
	\label{eqn-cintermsofm}
	c=\chern_1(E) = \sage{c_in_terms_of_q}
	\qquad 0 \leq q \leq \chern_1^{\beta}(F)
Luke Naylor's avatar
Luke Naylor committed
\end{equation}

Furthermore, $\chern_1 \in \ZZ$ so we only need to consider
$q \in \frac{1}{n} \ZZ \cap [0, \chern_1^{\beta}(F)]$.
For the next subsections, we consider $q$ to be fixed with one of these values,
Luke Naylor's avatar
Luke Naylor committed
and we shall be varying $\chern_0(E) = r$ to see when certain inequalities fail.

Luke Naylor's avatar
Luke Naylor committed
\subsection{Numerical Inequalities}

\subsubsection{
	\texorpdfstring{
		$\Delta(E) + \Delta(G) \leq \Delta(F)$
	}{
		Δ(E) + Δ(G) ≤ Δ(F)
	}
}
\label{subsect-d-bound-bgmlv1}

This condition expressed in terms of $R,C,D,r,c,d$ looks as follows:

Luke Naylor's avatar
Luke Naylor committed
\begin{sagesilent}
Luke Naylor's avatar
Luke Naylor committed
# First Bogomolov-Gieseker form expression that must be non-negative:
bgmlv1 = Δ(v) - Δ(u) - Δ(v-u)
\end{sagesilent}
Luke Naylor's avatar
Luke Naylor committed

\begin{equation}
	\sage{0 <= bgmlv1.expand() }
Expressing $c$ in terms of $q$ as defined in (eqn \ref{eqn-cintermsofm})
we get the following:

\begin{sagesilent}
Luke Naylor's avatar
Luke Naylor committed
bgmlv1_with_q = (
	bgmlv1
	.expand()
	.subs(c == c_in_terms_of_q)
)
\end{sagesilent}

\begin{equation}
	\sage{0 <= bgmlv1_with_q}
This can be rearranged to express a bound on $d$ as follows:

\begin{sagesilent}
Luke Naylor's avatar
Luke Naylor committed
var("r_alt",domain="real") # r_alt = r - R/2 temporary substitution
Luke Naylor's avatar
Luke Naylor committed
bgmlv1_with_q_reparam = (bgmlv1_with_q.subs(r == r_alt + R/2)/r_alt).expand()
Luke Naylor's avatar
Luke Naylor committed
bgmlv1_d_ineq = (
	((0 >= -bgmlv1_with_q_reparam)/4 + d) # Rearrange for d
	.subs(r_alt == r - R/2) # Resubstitute r back in
	.expand()
)
Luke Naylor's avatar
Luke Naylor committed
bgmlv1_d_lowerbound = bgmlv1_d_ineq.rhs() # Keep hold of lower bound for d
\end{sagesilent}

	\label{eqn-bgmlv1_d_lowerbound}
	\sage{bgmlv1_d_ineq}
Luke Naylor's avatar
Luke Naylor committed
# Separate out the terms of the lower bound for d
bgmlv1_d_lowerbound_without_hyp = bgmlv1_d_lowerbound.subs(1/(R-2*r) == 0)

bgmlv1_d_lowerbound_exp_term = (
	bgmlv1_d_lowerbound
	- bgmlv1_d_lowerbound_without_hyp
).expand()

bgmlv1_d_lowerbound_const_term = bgmlv1_d_lowerbound_without_hyp.subs(r==0)

bgmlv1_d_lowerbound_linear_term = (
	bgmlv1_d_lowerbound_without_hyp
	- bgmlv1_d_lowerbound_const_term
).expand()

# Verify the simplified forms of the terms that will be mentioned in text
var("chbv",domain="real") # symbol to represent ch_1^\beta(v)
Luke Naylor's avatar
Luke Naylor committed
assert bgmlv1_d_lowerbound_const_term == (
	(
		# Keep hold of this alternative expression:
		bgmlv1_d_lowerbound_const_term_alt :=
		(
			chbv/2
	.subs(chbv == v.twist(beta).ch[2])
Luke Naylor's avatar
Luke Naylor committed
)

assert bgmlv1_d_lowerbound_exp_term == (
	(
		# Keep hold of this alternative expression:
		bgmlv1_d_lowerbound_exp_term_alt :=
		(
			- R*chbv/2
	.subs(chbv == v.twist(beta).ch[2])
\noindent
Viewing equation \ref{eqn-bgmlv1_d_lowerbound} as a lower bound for $d$ given
as a function of $r$, the terms can be rewritten as follows.
The constant term in $r$ is
$\chern^{\beta}_2(F)/2 + \beta q$.
The linear term in $r$ is
$\sage{bgmlv1_d_lowerbound_linear_term}$.
Luke Naylor's avatar
Luke Naylor committed
Finally, there is an hyperbolic term in $r$ which tends to 0 as $r \to \infty$,
and can be written:
$\frac{R\chern^{\beta}_2(F)/2 + R\beta q - Cq + q^2  }{2r-R}$.
In the case $\beta = \beta_{-}$ (or $\beta_{+}$) we have
$\chern^{\beta}_2(F) = 0$,
so some of these expressions simplify.
Luke Naylor's avatar
Luke Naylor committed
\subsubsection{
	\texorpdfstring{
		$\Delta(E) \geq 0$
	}{
		Δ(E) ≥ 0
	}
}

This condition expressed in terms of $R,C,D,r,c,d$ looks as follows:

\begin{sagesilent}
Luke Naylor's avatar
Luke Naylor committed
# First Bogomolov-Gieseker form expression that must be non-negative:
bgmlv2 = Δ(u)
\end{sagesilent}

\begin{equation}
	\sage{0 <= bgmlv2.expand() }
\end{equation}


\noindent
Expressing $c$ in terms of $q$ as defined in (eqn \ref{eqn-cintermsofm})
we get the following:

\begin{sagesilent}
Luke Naylor's avatar
Luke Naylor committed
bgmlv2_with_q = (
	bgmlv2
	.expand()
	.subs(c == c_in_terms_of_q)
)
\end{sagesilent}

\begin{equation}
	\sage{0 <= bgmlv2_with_q}
\end{equation}


\noindent
This can be rearranged to express a bound on $d$ as follows:

\begin{sagesilent}
Luke Naylor's avatar
Luke Naylor committed
bgmlv2_d_ineq = (
	(0 <= bgmlv2_with_q)/2/r # rescale assuming r > 0
	+ d # Rearrange for d
).expand()
Luke Naylor's avatar
Luke Naylor committed
# Keep hold of lower bound for d
bgmlv2_d_upperbound = bgmlv2_d_ineq.rhs()
\end{sagesilent}

\begin{equation}
	\label{eqn-bgmlv2_d_upperbound}
	\sage{bgmlv2_d_ineq}
\end{equation}

Luke Naylor's avatar
Luke Naylor committed
# Seperate out the terms of the lower bound for d
bgmlv2_d_upperbound_without_hyp = (
	bgmlv2_d_upperbound
	.subs(1/r == 0)
)

bgmlv2_d_upperbound_const_term = (
	bgmlv2_d_upperbound_without_hyp
bgmlv2_d_upperbound_linear_term = (
	bgmlv2_d_upperbound_without_hyp
	- bgmlv2_d_upperbound_const_term
Luke Naylor's avatar
Luke Naylor committed
).expand()
bgmlv2_d_upperbound_exp_term = (
	bgmlv2_d_upperbound
	- bgmlv2_d_upperbound_without_hyp
Luke Naylor's avatar
Luke Naylor committed
).expand()
Viewing equation \ref{eqn-bgmlv2_d_upperbound} as a lower bound for $d$ in term
Luke Naylor's avatar
Luke Naylor committed
of $r$ again, there is a constant term
$\sage{bgmlv2_d_upperbound_const_term}$,
$\sage{bgmlv2_d_upperbound_linear_term}$,
$\sage{bgmlv2_d_upperbound_exp_term}$.
Notice that for $\beta = \beta_{-}$ (or $\beta_{+}$), that is when
$\chern^{\beta}_2(F)=0$, the constant and linear terms match up with the ones
for the bound found for $d$ in subsection \ref{subsect-d-bound-bgmlv1}.
Luke Naylor's avatar
Luke Naylor committed

Luke Naylor's avatar
Luke Naylor committed
\subsubsection{
	\texorpdfstring{
		$\Delta(G) \geq 0$
	}{
		Δ(G) ≥ 0
	}
}
\label{subsect-d-bound-bgmlv3}

This condition expressed in terms of $R,C,D,r,c,d$ looks as follows:

\begin{sagesilent}
Luke Naylor's avatar
Luke Naylor committed
# Third Bogomolov-Gieseker form expression that must be non-negative:
bgmlv3 = Δ(v-u)
\end{sagesilent}

\begin{equation}
	\sage{0 <= bgmlv3.expand() }
\end{equation}


\noindent
Expressing $c$ in terms of $q$ as defined in (eqn \ref{eqn-cintermsofm})
we get the following:

\begin{sagesilent}
Luke Naylor's avatar
Luke Naylor committed
bgmlv3_with_q = (
	bgmlv3
	.expand()
	.subs(c == c_in_terms_of_q)
)
\end{sagesilent}

\begin{equation}
	\sage{0 <= bgmlv3_with_q}
\end{equation}


\noindent
This can be rearranged to express a bound on $d$ as follows:

\begin{sagesilent}
Luke Naylor's avatar
Luke Naylor committed
var("r_alt",domain="real") # r_alt = r - R temporary substitution

bgmlv3_with_q_reparam = (
	bgmlv3_with_q
	.subs(r == r_alt + R)
	/r_alt # This operation assumes r_alt > 0
).expand()

bgmlv3_d_ineq = (
	((0 <= bgmlv3_with_q_reparam)/2 + d) # Rearrange for d
	.subs(r_alt == r - R) # Resubstitute r back in
	.expand()
)

# Check that this equation represents a bound for d
assert bgmlv3_d_ineq.lhs() == d

Luke Naylor's avatar
Luke Naylor committed
bgmlv3_d_upperbound = bgmlv3_d_ineq.rhs() # Keep hold of lower bound for d
\end{sagesilent}

\begin{sagesilent}
Luke Naylor's avatar
Luke Naylor committed
# Seperate out the terms of the lower bound for d
bgmlv3_d_upperbound_without_hyp = (
	bgmlv3_d_upperbound
	.subs(1/(R-r) == 0)
)
bgmlv3_d_upperbound_const_term = (
	bgmlv3_d_upperbound_without_hyp
	.subs(r==0)
)
Luke Naylor's avatar
Luke Naylor committed
bgmlv3_d_upperbound_linear_term = (
	bgmlv3_d_upperbound_without_hyp
	- bgmlv3_d_upperbound_const_term
).expand()
Luke Naylor's avatar
Luke Naylor committed
bgmlv3_d_upperbound_exp_term = (
	bgmlv3_d_upperbound
	- bgmlv3_d_upperbound_without_hyp
).expand()