

A central question in mathematical physics is how intricate large-scale behaviors emerge from elementary local interactions. In this thesis we analyze and establish several such asymptotic phenomena for the six-vertex model, which is a two-dimensional statistical mechanical model introduced by Pauling in 1935 to explicate the residual entropy of ice \cite{TEIOCSRAA}. We begin in \Cref{ModelVertex} by recalling the definition of this model; we next in \Cref{Limit} describe the asymptotic phenomena of the six-vertex model we seek to analyze; and we then in \Cref{Results} describe our main results.


\section{The Six-Vertex Model} 

\label{ModelVertex}

\subsection{Arrow Configurations and Six-Vertex Ensembles} 

\label{ArrowEnsembles} 

To define the six-vertex model, we first must introduce the notion of a six-vertex ensemble on a subdomain $\Lambda \subseteq \mathbb{Z}^2$ of the integer lattice.\footnote{We might also allow $\Lambda$ to be a discrete cylinder, where the same definitions apply.} To that end, an \emph{arrow configuration} is a quadruple $(i_1, j_1; i_2, j_2)$ such that $i_1, j_1, i_2, j_2 \in \{ 0, 1 \}$ and $i_1 + j_1 = i_2 + j_2$. We view such a quadruple as an assignment of arrows to a vertex $v \in \Lambda$. Specifically, $i_1$ and $j_1$ denote the numbers of vertical and horizontal arrows entering $v$, respectively; similarly, $i_2$ and $j_2$ denote the numbers of vertical and horizontal arrows exiting $v$, respectively. The fact that $i_1 + j_1 = i_2 + j_2$ means that the numbers of incoming and outgoing arrows at $v$ are equal; this is sometimes referred to as \emph{spin conservation}. There are six possible arrow configurations, which are depicted on the left side of \Cref{vertexdomain0}. 


\begin{figure}[t]
	
	\begin{center}
		
		\begin{tikzpicture}[
		>=stealth,
		scale = 1.3	
		]
		
		\draw[] (-5.75, .3) -- (-2, .3) -- (-2, 4.2) -- (-5.75, 4.2) -- (-5.75, .3);
		
		\draw[] (-3.25, .3) -- (-3.25, 4.2); 
		\draw[] (-4.5, .3) -- (-4.5, 4.2);
		
		
		\draw[] (-5.75, .65) -- (-2, .65); 
		\draw[] (-5.75, 1) -- (-2, 1); 
		\draw[] (-5.75, 2.25) -- (-2, 2.25); 
		\draw[] (-5.75, 2.6) -- (-2, 2.6);
		\draw[] (-5.75, 2.95) -- (-2, 2.95);
		
		
		\draw[] (-2.625, 2.775) circle [radius = 0] node[scale = .75]{$(1, 0; 0, 1)$};
		\draw[] (-3.875, 2.775) circle [radius = 0] node[scale = .75]{$(1, 0; 1, 0)$};
		\draw[] (-5.125, 2.775) circle [radius = 0] node[scale = .75]{$(0, 0; 0, 0)$};
		
		\draw[] (-2.625, 2.425) circle [radius = 0] node[scale = .75]{$c_1$};
		\draw[] (-3.875, 2.425) circle [radius = 0] node[scale = .75]{$b_1$};
		\draw[] (-5.125, 2.425) circle [radius = 0] node[scale = .75]{$a_1$};
		
		\draw[] (-2.625, .825) circle [radius = 0] node[scale = .75]{$(0, 1; 1, 0)$};
		\draw[] (-3.875, .825) circle [radius = 0] node[scale = .75]{$(0, 1; 0, 1)$};
		\draw[] (-5.125, .825) circle [radius = 0] node[scale = .75]{$(1, 1; 1, 1)$};
		
		\draw[] (-2.625, .475) circle [radius = 0] node[scale = .75]{$c_2$};
		\draw[] (-3.875, .475) circle [radius = 0] node[scale = .75]{$b_2$};
		\draw[] (-5.125, .475) circle [radius = 0] node[scale = .75]{$a_2$};
		
		\draw[->, thick] (-3.875, 3) -- (-3.875, 3.5);
		\draw[->, thick] (-3.875, 3.65) -- (-3.875, 4.15);
		
		\draw[->, thick] (-2.625, 3) -- (-2.625, 3.5);
		\draw[->, thick] (-2.55, 3.575) -- (-2.05, 3.575);
		
		\draw[->, thick] (-5.125, 1.7) -- (-5.125, 2.2);
		\draw[->, thick] (-5.125, 1.05) -- (-5.125, 1.55);
		\draw[->, thick] (-5.7, 1.625) -- (-5.2, 1.625);
		\draw[->, thick] (-5.05, 1.625) -- (-4.55, 1.625);
		
		\draw[->, thick] (-4.45, 1.625) -- (-3.95, 1.625);
		\draw[->, thick] (-3.8, 1.625) -- (-3.3, 1.625);
		
		\draw[->, thick] (-3.2, 1.625) -- (-2.7, 1.625);
		\draw[->, thick] (-2.625, 1.7) -- (-2.625, 2.2);
		
		
		\filldraw[fill=gray!50!white, draw=black] (-2.625, 1.625) circle [radius=.075];
		\filldraw[fill=gray!50!white, draw=black] (-3.875, 1.625) circle [radius=.075];
		\filldraw[fill=gray!50!white, draw=black] (-5.125, 1.625) circle [radius=.075];
		\filldraw[fill=gray!50!white, draw=black] (-2.625, 3.575) circle [radius=.075];
		\filldraw[fill=gray!50!white, draw=black] (-3.875, 3.575) circle [radius=.075];
		\filldraw[fill=gray!50!white, draw=black] (-5.125, 3.575) circle [radius=.075];
		
		
		
		
		
		
		\draw[->,black, very thick] (0, .5) -- (.45, .5);
		\draw[->,black, very thick] (0, 1) -- (.45, 1);
		\draw[->,black, very thick] (0, 1.5) -- (.45, 1.5);
		\draw[->,black, very thick] (0, 2) -- (.45, 2);
		\draw[->,black, very thick] (0, 2.5) -- (.45, 2.5);
		\draw[->,black, very thick] (0, 3) -- (.45, 3);
		\draw[->,black, very thick] (0, 3.5) -- (.45, 3.5);
		
		\draw[->,black, very thick] (.55, .5) -- (.95, .5);
		\draw[->,black, very thick] (.55, 1) -- (.95, 1);
		\draw[->,black, very thick] (.55, 1.5) -- (.95, 1.5);
		\draw[->,black, very thick] (.55, 2.5) -- (.95, 2.5);
		\draw[->,black, very thick] (.55, 3) -- (.95, 3);
		\draw[->,black, very thick] (.55, 3.5) -- (.95, 3.5);
		\draw[->,black, very thick] (.5, 2.05) -- (.5, 2.45);
		\draw[->,black, very thick] (.5, 2.55) -- (.5, 2.95);
		\draw[->,black, very thick] (.5, 3.05) -- (.5, 3.45);
		\draw[->,black, very thick] (.5, 3.55) -- (.5, 3.95);
		
		\draw[->,black, very thick] (1.05, .5) -- (1.45, .5);
		\draw[->,black, very thick] (1.05, 1) -- (1.45, 1);
		\draw[->,black, very thick] (1.05, 2) -- (1.45, 2);
		\draw[->,black, very thick] (1.05, 2.5) -- (1.45, 2.5);
		\draw[->,black, very thick] (1.05, 3.5) -- (1.45, 3.5);
		\draw[->,black, very thick] (1, 1.55) -- (1, 1.95);
		\draw[->,black, very thick] (1, 3.05) -- (1, 3.45);
		\draw[->,black, very thick] (1, 3.55) -- (1, 3.95);
		
		\draw[->,black, very thick] (1.5, .55) -- (1.5, .95);
		\draw[->,black, very thick] (1.5, 1.05) -- (1.5, 1.45);
		\draw[->,black, very thick] (1.5, 1.55) -- (1.5, 1.95);
		\draw[->,black, very thick] (1.5, 2.05) -- (1.5, 2.45);
		\draw[->,black, very thick] (1.5, 2.55) -- (1.5, 2.95);
		\draw[->,black, very thick] (1.5, 3.55) -- (1.5, 3.95);
		\draw[->,black, very thick] (1.55, 1) -- (1.95, 1);
		\draw[->,black, very thick] (1.55, 2) -- (1.95, 2);
		\draw[->,black, very thick] (1.55, 2.5) -- (1.95, 2.5);
		\draw[->,black, very thick] (1.55, 3) -- (1.95, 3);
		
		\draw[->,black, very thick] (2, 1.05) -- (2, 1.45);
		\draw[->,black, very thick] (2, 3.05) -- (2, 3.45);
		\draw[->,black, very thick] (2, 3.55) -- (2, 3.95);
		\draw[->,black, very thick] (2.05, 1.5) -- (2.45, 1.5);
		\draw[->,black, very thick] (2.05, 2) -- (2.45, 2);
		\draw[->,black, very thick] (2.05, 2.5) -- (2.45, 2.5);
		
		\draw[->,black, very thick] (2.5, 1.55) -- (2.5, 1.95);
		\draw[->,black, very thick] (2.5, 2.05) -- (2.5, 2.45);
		\draw[->,black, very thick] (2.5, 2.55) -- (2.5, 2.95);
		\draw[->,black, very thick] (2.5, 3.05) -- (2.5, 3.45);
		\draw[->,black, very thick] (2.5, 3.55) -- (2.5, 3.95);
		\draw[->,black, very thick] (2.55, 2) -- (2.95, 2);
		\draw[->,black, very thick] (2.55, 2.5) -- (2.95, 2.5);
		
		\draw[->, black, very thick] (3, 2.05) -- (3, 2.45); 
		\draw[->,black, very thick] (3, 2.55) -- (3, 2.95);
		\draw[->,black, very thick] (3, 3.05) -- (3, 3.45);
		\draw[->,black, very thick] (3, 3.55) -- (3, 3.95);
		\draw[->, black, very thick] (3.05, 2.5) -- (3.45, 2.5); 
		
		\draw[->,black, very thick] (3.5, 2.55) -- (3.5, 2.95);
		\draw[->,black, very thick] (3.5, 3.05) -- (3.5, 3.45);
		\draw[->,black, very thick] (3.5, 3.55) -- (3.5, 3.95);
		
		
		\filldraw[fill=gray!50!white, draw=black] (.5, .5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (.5, 1) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (.5, 1.5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (.5, 2) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (.5, 2.5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (.5, 3) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (.5, 3.5) circle [radius=.05];
		
		\filldraw[fill=gray!50!white, draw=black] (1, .5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (1, 1) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (1, 1.5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (1, 2) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (1, 2.5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (1, 3) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (1, 3.5) circle [radius=.05];
		
		\filldraw[fill=gray!50!white, draw=black] (1.5, .5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (1.5, 1) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (1.5, 1.5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (1.5, 2) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (1.5, 2.5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (1.5, 3) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (1.5, 3.5) circle [radius=.05];
		
		\filldraw[fill=gray!50!white, draw=black] (2, .5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (2, 1) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (2, 1.5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (2, 2) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (2, 2.5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (2, 3) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (2, 3.5) circle [radius=.05];
		
		\filldraw[fill=gray!50!white, draw=black] (2.5, .5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (2.5, 1) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (2.5, 1.5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (2.5, 2) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (2.5, 2.5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (2.5, 3) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (2.5, 3.5) circle [radius=.05];
		
		\filldraw[fill=gray!50!white, draw=black] (3, .5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (3, 1) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (3, 1.5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (3, 2) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (3, 2.5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (3, 3) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (3, 3.5) circle [radius=.05];
		
		\filldraw[fill=gray!50!white, draw=black] (3.5, .5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (3.5, 1) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (3.5, 1.5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (3.5, 2) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (3.5, 2.5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (3.5, 3) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (3.5, 3.5) circle [radius=.05];
		
		
		
		
		
		
		\filldraw[fill=gray!50!white, draw=black] (.25, .75) circle [radius=0] node[scale = .8, right = 4, below = -5]{$1$};
		\filldraw[fill=gray!50!white, draw=black] (.25, 1.25) circle [radius=0] node[scale = .8, right = 4, below = -5]{$2$};
		\filldraw[fill=gray!50!white, draw=black] (.25, 1.75) circle [radius=0] node[scale = .8, right = 4, below = -5]{$3$};
		\filldraw[fill=gray!50!white, draw=black] (.25, 2.25) circle [radius=0] node[scale = .8, right = 4, below = -5]{$4$};
		\filldraw[fill=gray!50!white, draw=black] (.25, 2.75) circle [radius=0] node[scale = .8, right = 4, below = -5]{$5$};
		\filldraw[fill=gray!50!white, draw=black] (.25, 3.25) circle [radius=0] node[scale = .8, right = 4, below = -5]{$6$};
		\filldraw[fill=gray!50!white, draw=black] (.25, 3.75) circle [radius=0] node[scale = .8, right = 4, below = -5]{$7$};
		
		\filldraw[fill=gray!50!white, draw=black] (.75, .75) circle [radius=0] node[scale = .8, right = 4, below = -5]{$1$};
		\filldraw[fill=gray!50!white, draw=black] (.75, 1.25) circle [radius=0] node[scale = .8, right = 4, below = -5]{$2$};
		\filldraw[fill=gray!50!white, draw=black] (.75, 1.75) circle [radius=0] node[scale = .8, right = 4, below = -5]{$3$};
		\filldraw[fill=gray!50!white, draw=black] (.75, 2.25) circle [radius=0] node[scale = .8, right = 4, below = -5]{$3$};
		\filldraw[fill=gray!50!white, draw=black] (.75, 2.75) circle [radius=0] node[scale = .8, right = 4, below = -5]{$4$};
		\filldraw[fill=gray!50!white, draw=black] (.75, 3.25) circle [radius=0] node[scale = .8, right = 4, below = -5]{$5$};
		\filldraw[fill=gray!50!white, draw=black] (.75, 3.75) circle [radius=0] node[scale = .8, right = 4, below = -5]{$6$};
		
		\filldraw[fill=gray!50!white, draw=black] (1.25, .75) circle [radius=0] node[scale = .8, right = 4, below = -5]{$1$};
		\filldraw[fill=gray!50!white, draw=black] (1.25, 1.25) circle [radius=0] node[scale = .8, right = 4, below = -5]{$2$};
		\filldraw[fill=gray!50!white, draw=black] (1.25, 1.75) circle [radius=0] node[scale = .8, right = 4, below = -5]{$2$};
		\filldraw[fill=gray!50!white, draw=black] (1.25, 2.25) circle [radius=0] node[scale = .8, right = 4, below = -5]{$3$};
		\filldraw[fill=gray!50!white, draw=black] (1.25, 2.75) circle [radius=0] node[scale = .8, right = 4, below = -5]{$4$};
		\filldraw[fill=gray!50!white, draw=black] (1.25, 3.25) circle [radius=0] node[scale = .8, right = 4, below = -5]{$4$};
		\filldraw[fill=gray!50!white, draw=black] (1.25, 3.75) circle [radius=0] node[scale = .8, right = 4, below = -5]{$5$};
		
		\filldraw[fill=gray!50!white, draw=black] (1.75, .75) circle [radius=0] node[scale = .8, right = 4, below = -5]{$0$};
		\filldraw[fill=gray!50!white, draw=black] (1.75, 1.25) circle [radius=0] node[scale = .8, right = 4, below = -5]{$1$};
		\filldraw[fill=gray!50!white, draw=black] (1.75, 1.75) circle [radius=0] node[scale = .8, right = 4, below = -5]{$1$};
		\filldraw[fill=gray!50!white, draw=black] (1.75, 2.25) circle [radius=0] node[scale = .8, right = 4, below = -5]{$2$};
		\filldraw[fill=gray!50!white, draw=black] (1.75, 2.75) circle [radius=0] node[scale = .8, right = 4, below = -5]{$3$};
		\filldraw[fill=gray!50!white, draw=black] (1.75, 3.25) circle [radius=0] node[scale = .8, right = 4, below = -5]{$4$};
		\filldraw[fill=gray!50!white, draw=black] (1.75, 3.75) circle [radius=0] node[scale = .8, right = 4, below = -5]{$4$};
		
		\filldraw[fill=gray!50!white, draw=black] (2.25, .75) circle [radius=0] node[scale = .8, right = 4, below = -5]{$0$};
		\filldraw[fill=gray!50!white, draw=black] (2.25, 1.25) circle [radius=0] node[scale = .8, right = 4, below = -5]{$0$};
		\filldraw[fill=gray!50!white, draw=black] (2.25, 1.75) circle [radius=0] node[scale = .8, right = 4, below = -5]{$1$};
		\filldraw[fill=gray!50!white, draw=black] (2.25, 2.25) circle [radius=0] node[scale = .8, right = 4, below = -5]{$2$};
		\filldraw[fill=gray!50!white, draw=black] (2.25, 2.75) circle [radius=0] node[scale = .8, right = 4, below = -5]{$3$};
		\filldraw[fill=gray!50!white, draw=black] (2.25, 3.25) circle [radius=0] node[scale = .8, right = 4, below = -5]{$3$};
		\filldraw[fill=gray!50!white, draw=black] (2.25, 3.75) circle [radius=0] node[scale = .8, right = 4, below = -5]{$3$};
		
		\filldraw[fill=gray!50!white, draw=black] (2.75, .75) circle [radius=0] node[scale = .8, right = 4, below = -5]{$0$};
		\filldraw[fill=gray!50!white, draw=black] (2.75, 1.25) circle [radius=0] node[scale = .8, right = 4, below = -5]{$0$};
		\filldraw[fill=gray!50!white, draw=black] (2.75, 1.75) circle [radius=0] node[scale = .8, right = 4, below = -5]{$0$};
		\filldraw[fill=gray!50!white, draw=black] (2.75, 2.25) circle [radius=0] node[scale = .8, right = 4, below = -5]{$1$};
		\filldraw[fill=gray!50!white, draw=black] (2.75, 2.75) circle [radius=0] node[scale = .8, right = 4, below = -5]{$2$};
		\filldraw[fill=gray!50!white, draw=black] (2.75, 3.25) circle [radius=0] node[scale = .8, right = 4, below = -5]{$2$};
		\filldraw[fill=gray!50!white, draw=black] (2.75, 3.75) circle [radius=0] node[scale = .8, right = 4, below = -5]{$2$};
		
		\filldraw[fill=gray!50!white, draw=black] (3.25, .75) circle [radius=0] node[scale = .8, right = 4, below = -5]{$0$};
		\filldraw[fill=gray!50!white, draw=black] (3.25, 1.25) circle [radius=0] node[scale = .8, right = 4, below = -5]{$0$};
		\filldraw[fill=gray!50!white, draw=black] (3.25, 1.75) circle [radius=0] node[scale = .8, right = 4, below = -5]{$0$};
		\filldraw[fill=gray!50!white, draw=black] (3.25, 2.25) circle [radius=0] node[scale = .8, right = 4, below = -5]{$0$};
		\filldraw[fill=gray!50!white, draw=black] (3.25, 2.75) circle [radius=0] node[scale = .8, right = 4, below = -5]{$1$};
		\filldraw[fill=gray!50!white, draw=black] (3.25, 3.25) circle [radius=0] node[scale = .8, right = 4, below = -5]{$2$};
		\filldraw[fill=gray!50!white, draw=black] (3.25, 3.75) circle [radius=0] node[scale = .8, right = 4, below = -5]{$2$};
		
		\end{tikzpicture}
		
	\end{center}	
	
	\caption{\label{vertexdomain0} The six arrow configurations in the six-vertex model are depicted on the left. The six-vertex model with domain-wall boundary data and its height function are depicted on the right.} 
\end{figure}


A \emph{six-vertex ensemble} on a finite subdomain $\Lambda \subset \mathbb{Z}^2$ is defined to be an assignment of an arrow configuration to each vertex of $\Lambda$ in such a way that neighboring arrow configurations are \emph{consistent}; this means that, if $v_1, v_2 \in \Lambda$ are two adjacent vertices, then there is an arrow to $v_2$ in the configuration at $v_1$ if and only if there is an arrow from $v_1$ in the configuration at $v_2$. Observe in particular that the arrows in a six-vertex ensemble form up-right directed paths connecting vertices of $\Lambda$, which emanate from the left and bottom boundaries of $\Lambda$ and exit through the top and right boundaries; see the right side of \Cref{vertexdomain0} for a depiction.  

\emph{Boundary data} for a six-vertex ensemble on $\Lambda$ is prescribed by dictating which elements of the boundary $\partial \Lambda$ of $\Lambda$ are entrance and exit sites for a paths. An example of particular interest, called \emph{domain-wall boundary data}, is when $\Lambda$ is a square and arrows enter and exit through its left and top boundaries, respectively; see the right side of \Cref{vertexdomain0}. We will also in some contexts not impose any specific boundary data, which we refer to as a \emph{free} boundary conditions. 


\subsection{The Six-Vertex Model and its Height Function} 

\label{HeightVertex} 

 Fix six real numbers $a_1, a_2, b_1, b_2, c_1, c_2 \ge 0$; a finite subdomain $\Lambda \subseteq \mathbb{Z}$; and some boundary data on $\Lambda$, which we label by $\Psi$. We assign a \emph{weight} $w(i_1, j_1; i_2, j_2)$ to each of the six arrow configurations as depicted in the left side of \Cref{vertexdomain0}, namely, so that 
\begin{flalign*}
& w (0, 0; 0, 0) = a_1; \qquad w (1, 0; 1, 0) = b_1; \qquad w (1, 0; 0, 1) = c_1; \\
& w (1, 1; 1, 1) = a_2; \qquad w (0, 1; 0, 1) = b_2; \qquad w (0, 1; 1, 0) = c_2.
\end{flalign*}

Given these weights, a six-vertex ensemble $\mathcal{E}$ on $\Lambda$ with boundary data $\Psi$, and a vertex $v$ in the interior of $\Lambda$ with some arrow configuration $(i_1, j_1; i_2, j_2)$, we define the weight of $v$ with respect to $\mathcal{E}$ to be $w_{\mathcal{E}} (v) = w(i_1, j_1; i_2, j_2)$. We then define the weight of $\mathcal{E}$,
\begin{flalign*} 
w (\mathcal{E}) = \prod_{v \in \Lambda} w_{\mathcal{E}} (v),
\end{flalign*} 

\noindent to be the product of the weights of its vertices. The \emph{six-vertex model} on $\Lambda$ is the probability measure $\mathbb{P} = \mathbb{P}_{\Lambda; \Psi}^{(a_1, a_2, b_1, b_2, c_1, c_2)}$ on all six-vertex ensembles on $\Lambda$ with boundary data $\Psi$ defined so that 
\begin{flalign*} 
\mathbb{P} [\mathcal{E}] = Z^{-1} w(\mathcal{E}), \qquad \text{where} \qquad Z = \sum_{\mathcal{E}} w(\mathcal{E}), 
\end{flalign*} 

\noindent is the \emph{partition function} chosen to make the sum of these probabilities equal to $1$. 

Let us describe another description of a six-vertex ensemble on $\Lambda$ through height functions. A \emph{height function} on $\Lambda$ is a function $H: \Lambda \rightarrow \mathbb{Z}$ such that $H(v) - H(u) \in \{ 0, 1 \}$, for any adjacent vertices $v, u \in \Lambda$ such that $v$ is either west or north of $u$ (that is, such that $v - u \in \big\{ (-1, 0), (0, 1) \big\}$). 

Associated with any six-vertex ensemble $\mathcal{E}$ on a finite domain $\Lambda$ is a height function $H: \Lambda \rightarrow \mathbb{Z}$ defined by setting $H(v)$ to be the number of paths in $\mathcal{E}$ that are (weakly) to the right of $v$; any global shift of this $H$ would also constitute a height function on $\Lambda$. By essentially reversing this process, one can associate with any height function $H: \Lambda \rightarrow \mathbb{Z}$ a unique six-vertex ensemble $\mathcal{E}_H$ on $\Lambda$. This produces a bijection between six-vertex ensembles on $\Lambda$ and height functions on $\Lambda$ up to global shift. We refer to the right side of \Cref{vertexdomain0} for an example, where there the value of the height function at a vertex $v$ is depicted slightly to the northwest of $v$.


\subsection{Special Cases of the Six-Vertex Model} 

\label{DegenerationsVertex} 

One of the remarkable features of the six-vertex model is that it is an archetypal example of an exactly solvable system, while still being vastly general and ubiquitous. Indeed, an incomplete list of well-studied models constituting special cases of the six-vertex model includes alternating sign matrices \cite{PPASM}; tiling models \cite{DTSVMFFP}; simple exclusion processes and other stochastically driven interfaces \cite{CSSVMP,SSVM}; certain stochastic partial differential equations such as the Kardar--Parisi--Zhang equation \cite{SEPS,SLSVM} and the stochastic telegraph equation \cite{STESVM}; Potts and cluster models \cite{DPTPRM}; discrete random surfaces and crystal growth \cite{ESMRTCS,TECS}; and random graph homomorphisms \cite{RGH}. 

In this section we briefly describe two of the above degenerations of the six-vertex model, namely, to the asymmetric simple exclusion process (ASEP) and uniformly random alternating sign matrices. The former comes from a choice of weights $(a_1, a_2, b_1, b_2, c_1, c_2)$ corresponding to the stochastic six-vertex model and the latter comes from a choice of weights corresponding to the ice model. 

\subsubsection{Stochastic Six-Vertex Model} 

\label{VertexStochastic} 

Originally studied in \cite{SVMRSASH}, the \emph{stochastic six-vertex model} is the special case of the six-vertex model whose weights $(a_1, a_2, b_1, b_2, c_1, c_2)$ satisfy 
\begin{flalign}
\label{weights1} 
a_1 = 1 = a_2; \qquad b_1 + c_1 = 1; \qquad b_2 + c_2 = 1. 
\end{flalign} 

\noindent As such, these six weights are determined by the pair $(b_1, b_2) \in [0, 1]^2$. Under the specialization \eqref{weights1}, the weights $(a_1, a_2, b_1, b_2, c_1, c_2)$ are ``stochastic,'' in the sense that the sum of the weights of all arrow configurations with given incoming arrows is equal to $1$. Using this fact, it is possible to sample the stochastic six-vertex model on certain infinite subdomains $\Lambda \subseteq \mathbb{Z}^2$ in a ``local'' Markovian way. Following \cite{SSVM,HSVMRSF,SHSVML}, let us explain this procedure on the quadrant $\Lambda = \mathbb{Z}_{> 0}^2$. 

The stochastic six-vertex model on the quadrant is defined to be a probability measure $\mathcal{P} = \mathcal{P} (b_1, b_2)$ that is the limit of a family of probability measures $\mathcal{P}_n = \mathcal{P}_n (b_1, b_2)$ defined on the set of six-vertex ensembles whose vertices are all contained in triangles of the form $\mathcal{T}_n = \{ (x, y) \in \mathbb{Z}_{\ge 0}^2: x + y \le n \}$. The first such probability measure $\mathcal{P}_1$ is supported on the unique six-vertex ensemble on $\mathcal{T}_1$ with no arrows. 

For each positive integer $n$, we define $\mathcal{P}_{n + 1}$ from $\mathcal{P}_n$ through the following Markovian update rules. Use $\mathcal{P}_n$ to sample a six-vertex ensemble $\mathcal{E}_n$ on $\mathcal{T}_n$. This gives arrow configurations (of the type shown on the left side of \Cref{vertexdomain0}) to all vertices in the positive quadrant strictly below the diagonal $\mathcal{D}_n = \{ (x, y) \in \mathbb{Z}_{> 0}^2: x + y = n \}$. Each vertex on $\mathcal{D}_n$ is also given ``half'' of an arrow configuration, in the sense that it is given the directions of all entering paths but no direction of any exiting path. 

To extend $\mathcal{E}_n$ to an ensemble on $\mathbb{T}_{n + 1}$, we must ``complete'' the configurations (specify the exiting paths) at all vertices $(x, y) \in \mathcal{D}_n$. Any half-configuration can be completed in at most two ways; selecting between these completions is done randomly, according to the weights in \Cref{vertexdomain0} (specialized according to \eqref{weights1}, so that these weights are probabilities). All choices are mutually independent. 

In this way, we obtain a random ensemble $\mathcal{E}_{n + 1}$ on $\mathcal{T}_{n + 1}$; the resulting probability measure on path ensembles with vertices in $\mathcal{T}_{n + 1}$ is denoted $\mathcal{P}_{n + 1}$. Define the limit $\mathcal{P} = \lim_{n \rightarrow \infty} \mathcal{P}_n$. 

Observe that this stochastic six-vertex model can also be viewed as a discrete-time interacting particle system on $\mathbb{Z}_{> 0}$, by viewing the horizontal direction as space; vertical arrows as particles; and the vertical direction as time. More specifically, given a six-vertex ensemble $\mathcal{E}$ on $\mathbb{Z}_{> 0}^2$, we place a particle at site $x \in \mathbb{Z}_{> 0}$ and time $t \in \mathbb{Z}_{> 0}$ if and only if a vertical arrow exits from the vertex $(x, t)$. Under this correspondence, the (non-crossing) directed up-right paths in $\mathcal{E}$ are the space-time trajectories for particles. 




\subsubsection{ASEP} 

\label{Process1} 

Originally introduced in \cite{KBNAT,IMP}, the \emph{asymmetric simple exclusion process} (ASEP) is now widely viewed as perhaps the simplest statistical mechanical model for non-equilibrium growth; it is a continuous time Markov process that can be described as follows. Particles are initially (at time $0$) placed on $\mathbb{Z}$ such that at most one particle occupies any site. Associated with each particle are two exponential clocks, one of rate $L$ and one of rate $R$; we assume that $R > L \ge 0$ and that all clocks are mutually independent. When some particle's left clock rings, the particle attempts to jump one space to the left; similarly, when its right clock rings, it attempts to jump one space to the right. If the destination of the jump is unoccupied, the jump is performed; otherwise it is not. This is sometimes referred to as the \emph{exclusion restriction}. 

As was observed in \cite{SSVM} (and proven in \cite{CSSVMP}), the interpretation of the stochastic six-vertex model as an interacting particle system enables a limit degeneration that transforms it into the ASEP. To explain this, first consider the stochastic six-vertex model with $(b_1, b_2) = (0, 0)$. Then, arrow configurations of types $(1, 0; 1, 0)$ and $(0, 1; 0, 1)$ are forbidden, and so all paths must proceed diagonally (that is, parallel to the line $x = y$). Thus, all particles in the associated interacting particle system will remain fixed along the diagonal reference frame that changes variables from $(x, t)$ to $(x - t, t)$. We refer to the left side of \Cref{vertexprocess} for a depiction.

\begin{figure}
	

\begin{center}
	
	
	\begin{tikzpicture}[
	>=stealth,
	scale = 1
	]
	
	
	
	\draw[->, dotted] (8.5, 0) -- (10.75, 2.25);	
	
	
	
	\draw[->, black	] (8.5, 0) -- (12.5, 0);
	\draw[->, black] (8.5, 0) -- (8.5, 3);
	
	
	\draw[->, black] (8.5, 1) -- (8.95, 1);
	\draw[->, black] (8.5, 1.5) -- (8.95, 1.5);
	\draw[->, black] (8.5, 2) -- (8.95, 2);
	
	
	\draw[->, black] (9.05, .5) -- (9.45, .5);
	\draw[->, black] (9.05, 2) -- (9.45, 2);
	
	\draw[->, black] (10.05, 1.5) -- (10.45, 1.5);
	
	\draw[->, black] (10.05, .5) -- (10.45, .5);
	
	\draw[->, black] (10.55, 2) -- (10.95, 2);
	
	\draw[->, black] (9, 0) -- (9, .45);
	
	
	\draw[->, black] (9, 1.05) -- (9, 1.45);
	\draw[->, black] (9, 1.55) -- (9, 1.95);
	\draw[->, black] (9, 2.05) -- (9, 2.45);
	\draw[->, black] (9.05, 2) -- (9.45, 2); 
	\draw[->, black] (9.05, 1.5) -- (9.45, 1.5); 
	
	\draw[->, black] (9.5, .55) -- (9.5, .95);
	\draw[->, black] (9.5, 2.05) -- (9.5, 2.45);  
	\draw[->, black] (9.5, 1.55) -- (9.5, 1.95);
	\draw[->, black] (9.55, 2) -- (9.95, 2); 
	
	\draw[->, black] (9.55, 1) -- (9.95, 1);
	
	\draw[->, black] (10, 0) -- (10, .45);
	\draw[->, black] (10, 1.05) -- (10, 1.45);
	\draw[->, black] (10, 2.05) -- (10, 2.45); 
	
	
	\draw[->, black] (10.5, .55 ) -- (10.5, .95);
	\draw[->, black] (11, 1.05) -- (11, 1.45);
	\draw[->, black] (10.5, 1.55) -- (10.5, 1.95);
	
	\draw[->, black] (11.05, 1.5) -- (11.45, 1.5);
	
	\draw[->, black] (11, 2.05) -- (11, 2.45);
	\draw[->, black] (11.5, 1.55) -- (11.5, 1.95);
	
	\draw[->, black] (12, 2.05) -- (12, 2.45);
	
	\draw[->, black] (11.45, 2) -- (11.95, 2);
	
	\draw[->, black] (10.45, 1) -- (10.95, 1);
	
	
	
	
	
	\filldraw[fill=gray!50!white, draw=black] (9, .5) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (9, 1) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (9, 1.5) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (9, 2) circle [radius=.05];
	
	\filldraw[fill=gray!50!white, draw=black] (9.5, .5) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (9.5, 1) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (9.5, 1.5) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (9.5, 2) circle [radius=.05];
	
	\filldraw[fill=gray!50!white, draw=black] (10, .5) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (10, 1) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (10, 1.5) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (10, 2) circle [radius=.05];
	
	\filldraw[fill=gray!50!white, draw=black] (10.5, .5) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (10.5, 1) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (10.5, 1.5) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (10.5, 2) circle [radius=.05];
	
	\filldraw[fill=gray!50!white, draw=black] (11, .5) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (11, 1) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (11, 1.5) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (11, 2) circle [radius=.05];
	
	\filldraw[fill=gray!50!white, draw=black] (11.5, .5) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (11.5, 1) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (11.5, 1.5) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (11.5, 2) circle [radius=.05];
	
	\filldraw[fill=gray!50!white, draw=black] (12, .5) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (12, 1) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (12, 1.5) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (12, 2) circle [radius=.05];	
	
	
	
		
	
	\draw[->, dotted] (14.5, 0) -- (16.75, 2.25);	
	
	
	
	\draw[->, black	] (14.5, 0) -- (18.5, 0);
	\draw[->, black] (14.5, 0) -- (14.5, 3);
	
	
	\draw[->, black] (14.5, 1) -- (14.95, 1);
	\draw[->, black] (14.5, 1.5) -- (14.95, 1.5);
	\draw[->, black] (14.5, 2) -- (14.95, 2);
	
	
	\draw[->, black] (15.05, .5) -- (15.45, .5);
	\draw[->, black] (15.05, 2) -- (15.45, 2);
	
	\draw[->, black] (16.05, 1.5) -- (16.45, 1.5);
	
	\draw[->, black] (16.05, .5) -- (16.45, .5);
	
	\draw[->, black] (16.55, 2) -- (16.95, 2);
	
	
	\draw[->, black] (15, 0) -- (15, .45);
	
	
	\draw[->, black] (15, 1.05) -- (15, 1.45);
	\draw[->, black] (15, 1.55) -- (15, 1.95);
	\draw[->, black] (15, 2.05) -- (15, 2.45);
	\draw[->, black] (15.05, 2) -- (15.45, 2); 
	\draw[->, very thick] (15.05, 1.5) -- (15.45, 1.5); 
	
	\draw[->, black] (15.5, .55) -- (15.5, .95);
	\draw[->, black] (15.5, 2.05) -- (15.5, 2.45);  
	\draw[->] (16, 1.55) -- (16, 1.95);
	\draw[->, very thick] (15.55, 1.5) -- (15.95, 1.5); 
	
	\draw[->, black] (15.55, 1) -- (15.95, 1);
	
	\draw[->, black] (16, 0) -- (16, .45);
	\draw[->, black] (16, 1.05) -- (16, 1.45);
	\draw[->] (16.5, 2.05) -- (16.5, 2.45); 
	\draw[->] (16.05, 2) -- (16.45, 2);
	
	
	\draw[->, black] (16.5, .55 ) -- (16.5, .95);
	\draw[->, black] (17, 1.05) -- (17, 1.45);
	\draw[->, black] (16.5, 1.55) -- (16.5, 1.95);
	
	\draw[->, black] (17.05, 1.5) -- (17.45, 1.5);
	
	\draw[->, black] (17, 2.05) -- (17, 2.45);
	\draw[->, very thick] (17.5, 1.55) -- (17.5, 1.95);
	
	\draw[->, very thick] (17.5, 2.05) -- (17.5, 2.45);
	
	
	\draw[->, black] (16.45, 1) -- (16.95, 1);
	
	
	
	\filldraw[fill=gray!50!white, draw=black] (10.5, 3) circle [radius = 0] node{$(b_1, b_2) = (0, 0)$};
	\filldraw[fill=gray!50!white, draw=black] (16.5, 3) circle [radius = 0] node{$(b_1, b_2) = (\varepsilon L, \varepsilon R)$};
	
	
	\filldraw[fill=gray!50!white, draw=black] (15, .5) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (15, 1) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (15, 1.5) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (15, 2) circle [radius=.05];
	
	\filldraw[fill=gray!50!white, draw=black] (15.5, .5) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (15.5, 1) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (15.5, 1.5) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (15.5, 2) circle [radius=.05];
	
	\filldraw[fill=gray!50!white, draw=black] (16, .5) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (16, 1) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (16, 1.5) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (16, 2) circle [radius=.05];
	
	\filldraw[fill=gray!50!white, draw=black] (16.5, .5) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (16.5, 1) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (16.5, 1.5) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (16.5, 2) circle [radius=.05];
	
	\filldraw[fill=gray!50!white, draw=black] (17, .5) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (17, 1) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (17, 1.5) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (17, 2) circle [radius=.05];
	
	\filldraw[fill=gray!50!white, draw=black] (17.5, .5) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (17.5, 1) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (17.5, 1.5) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (17.5, 2) circle [radius=.05];
	
	\filldraw[fill=gray!50!white, draw=black] (18, .5) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (18, 1) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (18, 1.5) circle [radius=.05];
	\filldraw[fill=gray!50!white, draw=black] (18, 2) circle [radius=.05];	
	
	
	
	
	
	
	\end{tikzpicture}
	
	
	\caption{\label{vertexprocess} Shown to the left is a stochastic six-vertex model with $(b_1, b_2) = (0, 0)$, under which paths do not move along a diagonal reference frame. Shown to the right is this model with $(b_1, b_2) = (\varepsilon L, \varepsilon R)$, under which paths can occasionally jump left and right along this reference frame.} 
	
\end{center}


\end{figure}




Now suppose we fix real numbers $0 \le L < R$ and a small real number $\varepsilon > 0$; set $(b_1, b_2) = (\varepsilon L, \varepsilon R)$; scale time by $\varepsilon$ (that is, replace $t$ by $\varepsilon t$); and let $\varepsilon$ tend to $0$. Paths in this stochastic six-vertex model will then still typically proceed diagonally, but now will occasionally deviate from this trajectory. Under the choice $(b_1, b_2) = (\varepsilon L, \varepsilon R)$ and the scaling that sends $\varepsilon$ to $0$, paths will move twice up and right according to Poisson processes of rates $L$ and $R$, respectively. Under the diagonal reference frame mentioned above, this corresponds to particles jumping to the left and right with rates $L$ and $R$, respectively, subject to the exclusion restriction (since at most one vertical arrow may exit from any vertex); this coincides with the above description of the ASEP. We refer to the right side of \Cref{vertexprocess} for a depiction.






\subsubsection{Ice Model and Alternating Sign Matrices} 

\label{Matrices}


Introduced in \cite{ASMDDP}, an \emph{alternating sign matrix} (ASM) is a square matrix, with each entry in $\{ -1, 0, 1 \}$, such that the following two properties hold. First, the non-zero entries in each row and in each column alternate between $1$ and $-1$. Second, the sum of the entries in each row and in each column is equal to $1$. We refer to the right side of \Cref{vertexmatrix} for an example. 

As observed in \cite{DSM,AMT,AMTT}, there is a bijection between $N \times N$ alternating sign matrices and six-vertex ensembles on an $N \times N$ square with domain-wall boundary data (recall the right side of \Cref{vertexdomain0}). Given a domain-wall six-vertex ensemble $\mathcal{E}$ on the $N \times N$ square $[1, N] \times [1, N] \subset \mathbb{Z}^2$, one may form an $N \times N$ alternating matrix $\textbf{M} = \textbf{M} (\mathcal{E})$ by setting the corner vertices (namely, those with arrow configuration $(1, 0; 0, 1)$ or $(0, 1; 1, 0)$) of $\mathcal{E}$ to be $1$ and $-1$ in $\textbf{M}$;  we refer to \Cref{vertexmatrix} for a depiction. 

More specifically, we set the $(i, j)$ entry of $\textbf{M}$ (where we label the $i$-th row from the left and $j$-th row from the bottom) equal to $1$ if the vertex $(i, j)$ has arrow configuration $(0, 1; 1, 0)$ in $\mathcal{E}$; equal to $-1$ if $(i, j)$ has arrow configuration $(1, 0; 0, 1)$ in $\mathcal{E}$; and $0$ otherwise. Since any domain-wall six-vertex ensemble is uniquely determined by the locations of its corner vertices, it is quickly verified that this correspondence is a bijection.

\begin{figure} 
	
	\begin{center} 
		
		
		\begin{tikzpicture}[
		>=stealth,
		scale = 1.3	
		]
		
		\draw[] (-3.25, 1) -- (-1.25, 1) -- (-1.25, 3.5) -- (-3.25, 3.5) -- (-3.25, 1);
		
		\draw[] (-3.25, 3) -- (-1.25, 3); 
		\draw[] (-2.25, 1) -- (-2.25, 3.5);
		\draw[] (-3.25, 2) -- (-1.25, 2); 
		
		\draw[->, very thick] (-1.5, 2.25) -- (-1.5, 2.9);
		\draw[->, very thick] (-2.15, 2.25) -- (-1.425, 2.25);
		
		
		\draw[->, very thick] (-2, 1.1) -- (-2, 1.675);
		\draw[->, very thick] (-2, 1.75) -- (-1.35, 1.75);
		
		
		\filldraw[fill=gray!50!white, draw=black] (-2, 1.75) circle [radius=.075];
		\filldraw[fill=gray!50!white, draw=black] (-1.5, 2.25) circle [radius=.075];
		
		
		\filldraw[fill=gray!50!white, draw=black] (-2.75, 2.5) circle [radius=0] node{$1$};
		\filldraw[fill=gray!50!white, draw=black] (-2.75, 1.5) circle [radius=0] node{$-1$};
		
		
		\filldraw[fill=gray!50!white, draw=black] (-1.75, 3.25) circle [radius=0] node[scale = .65]{Six-Vertex};
		\filldraw[fill=gray!50!white, draw=black] (-2.75, 3.25) circle [radius=0] node{ASM};
		
		
		
		
		
		
		\draw[->,black, very thick] (0, .5) -- (.45, .5);
		\draw[->,black, very thick] (0, 1) -- (.45, 1);
		\draw[->,black, very thick] (0, 1.5) -- (.45, 1.5);
		\draw[->,black, very thick] (0, 2) -- (.45, 2);
		\draw[->,black, very thick] (0, 2.5) -- (.45, 2.5);
		\draw[->,black, very thick] (0, 3) -- (.45, 3);
		\draw[->,black, very thick] (0, 3.5) -- (.45, 3.5);
		
		\draw[->,black, very thick] (.55, .5) -- (.95, .5);
		\draw[->,black, very thick] (.55, 1) -- (.95, 1);
		\draw[->,black, very thick] (.55, 1.5) -- (.95, 1.5);
		\draw[->,black, very thick] (.55, 2.5) -- (.95, 2.5);
		\draw[->,black, very thick] (.55, 3) -- (.95, 3);
		\draw[->,black, very thick] (.55, 3.5) -- (.95, 3.5);
		\draw[->,black, very thick] (.5, 2.05) -- (.5, 2.45);
		\draw[->,black, very thick] (.5, 2.55) -- (.5, 2.95);
		\draw[->,black, very thick] (.5, 3.05) -- (.5, 3.45);
		\draw[->,black, very thick] (.5, 3.55) -- (.5, 3.95);
		
		\draw[->,black, very thick] (1.05, .5) -- (1.45, .5);
		\draw[->,black, very thick] (1.05, 1) -- (1.45, 1);
		\draw[->,black, very thick] (1.05, 2) -- (1.45, 2);
		\draw[->,black, very thick] (1.05, 2.5) -- (1.45, 2.5);
		\draw[->,black, very thick] (1.05, 3.5) -- (1.45, 3.5);
		\draw[->,black, very thick] (1, 1.55) -- (1, 1.95);
		\draw[->,black, very thick] (1, 3.05) -- (1, 3.45);
		\draw[->,black, very thick] (1, 3.55) -- (1, 3.95);
		
		\draw[->,black, very thick] (1.5, .55) -- (1.5, .95);
		\draw[->,black, very thick] (1.5, 1.05) -- (1.5, 1.45);
		\draw[->,black, very thick] (1.5, 1.55) -- (1.5, 1.95);
		\draw[->,black, very thick] (1.5, 2.05) -- (1.5, 2.45);
		\draw[->,black, very thick] (1.5, 2.55) -- (1.5, 2.95);
		\draw[->,black, very thick] (1.5, 3.55) -- (1.5, 3.95);
		\draw[->,black, very thick] (1.55, 1) -- (1.95, 1);
		\draw[->,black, very thick] (1.55, 2) -- (1.95, 2);
		\draw[->,black, very thick] (1.55, 2.5) -- (1.95, 2.5);
		\draw[->,black, very thick] (1.55, 3) -- (1.95, 3);
		
		\draw[->,black, very thick] (2, 1.05) -- (2, 1.45);
		\draw[->,black, very thick] (2, 3.05) -- (2, 3.45);
		\draw[->,black, very thick] (2, 3.55) -- (2, 3.95);
		\draw[->,black, very thick] (2.05, 1.5) -- (2.45, 1.5);
		\draw[->,black, very thick] (2.05, 2) -- (2.45, 2);
		\draw[->,black, very thick] (2.05, 2.5) -- (2.45, 2.5);
		
		\draw[->,black, very thick] (2.5, 1.55) -- (2.5, 1.95);
		\draw[->,black, very thick] (2.5, 2.05) -- (2.5, 2.45);
		\draw[->,black, very thick] (2.5, 2.55) -- (2.5, 2.95);
		\draw[->,black, very thick] (2.5, 3.05) -- (2.5, 3.45);
		\draw[->,black, very thick] (2.5, 3.55) -- (2.5, 3.95);
		\draw[->,black, very thick] (2.55, 2) -- (2.95, 2);
		\draw[->,black, very thick] (2.55, 2.5) -- (2.95, 2.5);
		
		\draw[->, black, very thick] (3, 2.05) -- (3, 2.45); 
		\draw[->,black, very thick] (3, 2.55) -- (3, 2.95);
		\draw[->,black, very thick] (3, 3.05) -- (3, 3.45);
		\draw[->,black, very thick] (3, 3.55) -- (3, 3.95);
		\draw[->, black, very thick] (3.05, 2.5) -- (3.45, 2.5); 
		
		\draw[->,black, very thick] (3.5, 2.55) -- (3.5, 2.95);
		\draw[->,black, very thick] (3.5, 3.05) -- (3.5, 3.45);
		\draw[->,black, very thick] (3.5, 3.55) -- (3.5, 3.95);
		
		
		\filldraw[fill=gray!50!white, draw=black] (.5, .5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (.5, 1) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (.5, 1.5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (.5, 2) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (.5, 2.5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (.5, 3) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (.5, 3.5) circle [radius=.05];
		
		\filldraw[fill=gray!50!white, draw=black] (1, .5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (1, 1) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (1, 1.5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (1, 2) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (1, 2.5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (1, 3) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (1, 3.5) circle [radius=.05];
		
		\filldraw[fill=gray!50!white, draw=black] (1.5, .5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (1.5, 1) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (1.5, 1.5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (1.5, 2) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (1.5, 2.5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (1.5, 3) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (1.5, 3.5) circle [radius=.05];
		
		\filldraw[fill=gray!50!white, draw=black] (2, .5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (2, 1) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (2, 1.5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (2, 2) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (2, 2.5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (2, 3) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (2, 3.5) circle [radius=.05];
		
		\filldraw[fill=gray!50!white, draw=black] (2.5, .5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (2.5, 1) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (2.5, 1.5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (2.5, 2) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (2.5, 2.5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (2.5, 3) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (2.5, 3.5) circle [radius=.05];
		
		\filldraw[fill=gray!50!white, draw=black] (3, .5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (3, 1) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (3, 1.5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (3, 2) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (3, 2.5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (3, 3) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (3, 3.5) circle [radius=.05];
		
		\filldraw[fill=gray!50!white, draw=black] (3.5, .5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (3.5, 1) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (3.5, 1.5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (3.5, 2) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (3.5, 2.5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (3.5, 3) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (3.5, 3.5) circle [radius=.05];
		
		
		
		
		
		
		\filldraw[fill=gray!50!white, draw=black] (7, 2) circle [radius=0] node[scale = 1.2]{$\begin{bmatrix} 0 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 1 & -1 & 1 & 0 & 0 & 0 \\	0 & 0 & 0 & 0 & 0 & 0 & 1 \\ 1 & -1 & 0 & 0 & 0 & 1 & 0 \\	0 & 1 & 0 & -1 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 \\	0 & 0 & 1 & 0 & 0 & 0 & 0 \end{bmatrix}$};
		
		\end{tikzpicture}
		
		\caption{ \label{vertexmatrix} Depicted above is the bijection between alternating sign matrix and six-vertex ensembles with domain-wall boundary data.} 
	\end{center}
\end{figure} 




The \emph{ice model} is the special case of the six-vertex model corresponding to the choice of weights 
\begin{flalign*}
a_1 = a_2 = b_1 = b_2 = c_1 = c_2 = 1.
\end{flalign*}

\noindent In view of the above correspondence, the ice model with domain-wall boundary data is equivalent to a uniformly random alternating sign matrix. 




\section{Asymptotic Phenomena}

\label{Limit} 

A fundamental question concerning the six-vertex model is to understand its limiting behavior on very large domains. There are a number of specific behaviors one might seek to analyze. Here, we list several such phenomena, namely, boundary-induced phase transitions; limit shapes and fluctuations; and local statistics.

1. Boundary-induced phase transitions: As a highly-correlated system in two-dimensional statistical mechanics, the six-vertex model is highly sensitive its boundary data. For instance, consider an ensemble $\mathcal{E}$ sampled under a six-vertex model with domain-wall boundary data; see the right side of \Cref{vertexdomain0}. Since paths only enter and exit the domain $\Lambda = [1, N] \times [1, N]$ through its left and top boundaries, respectively, one might expect (with high probability) no paths in $\mathcal{E}$ to exist in a neighborhood of the southeast vertex $(N, 1)$. Stated equivalently, all vertices in $\Lambda$ near its southeast corner should be assigned arrow configuration $(0, 0; 0, 0)$. Similarly, one might expect all vertices near the northwest corner of $\Lambda$ to be assigned $(1, 1; 1, 1)$; all vertices near the southwest corner to be assigned $(0, 1; 0, 1)$; and all vertices near the northeast corner to be assigned $(1, 0; 1, 0)$. In this way, the model is asymptotically deterministic (or \emph{frozen}) near the corners of $\Lambda$ due to the influence of the boundary, but still random (or \emph{liquid}) near the center of $\Lambda$. Stated in terms of the alternating sign matrix $\textbf{M} = \textbf{M}_{\mathcal{E}}$ associated with $\mathcal{E}$, one expects only zeros to be present near all four corners of $\textbf{M}$, but all possible entries $\{ -1, 0, 1 \}$ to all be present near its center; see the right side of \Cref{vertexmatrix}. The phase transition separating these frozen and liquid regions is commonly known as an \emph{arctic boundary}, and understanding this boundary is a question of interest. 

2. Limit shape and height fluctuations: Recall that any six-vertex model is associated with a height function, which is unique up to global shift. One expects this height function to exhibit a law of large numbers, in the following sense. Let $N$ be a large integer; let $R_N \subset \mathbb{Z}^2$ denote a domain whose diameter is of order $N$; and consider a six-vertex model on $R_N$ with some boundary data. Let $H_N: R_N \rightarrow \mathbb{Z}$ denote the associated height function, and assume that $N^{-1} R_N$ approximates some domain $\mathfrak{R} \subset \mathbb{R}^2$, as $N$ tends to $\infty$. Then, the rescaled height function $N^{-1} H_N (N \cdot)$ should converge to a deterministic \emph{limit shape} $\mathcal{H}: \mathfrak{R} \rightarrow \mathbb{R}^2$, as $N$ tends to $\infty$. This function will also exhibit random \emph{height fluctuations} $H_N (N \cdot) - N \mathcal{H} (\cdot)$ around its limit shape. Understanding this limit shape, as well as both the order of growth and the scaling limit for these height fluctuations, are additional questions of interest.

3. Local statistics: Let $\mathcal{E}$ denote an ensemble sampled from a six-vertex model on some large domain $R_N \approx N \mathfrak{R}$, with some prescribed boundary data, as above. The \emph{local statistics} (or \emph{local correlation functions}) for $\mathcal{E}$ around some vertex $v_N \in R_N$ provide the joint law of the arrow configurations assigned to vertices that are in some uniformly bounded neighborhood of $v_N$. For example, these include the probability that $v_N$ and $v_N + (1, 2)$ are assigned arrow configurations $(0, 0; 0, 0)$ and $(1, 1; 1, 1)$, respectively. For fixed parameters $a_1, a_2, b_1, b_2, c_1, c_2$ of the six-vertex model, the belief is that these local statistics should, as $N$ tends to $\infty$, be governed by a pair $(s, t) \in [0, 1]^2$ of real parameters (also called a \emph{slope}) given by the gradient $\nabla \mathcal{H}(N^{-1} v_N)$ of the limit shape $\mathcal{H}: \mathfrak{R} \rightarrow \mathbb{R}$ at $N^{-1} v_N$. Understanding this universality phenomenon for the six vertex model is another question of interest.






Although the six-vertex model has long been cited as an archetypal exactly solvable model in two-dimensional statistical mechanics, there have been essentially no results mathematically establishing any of the above phenomena for it until the past decade, except in the special case when $a_1 a_2 + b_1 b_2 - c_1 c_2 = 0$. In the latter setting, the six-vertex model degenerates to a dimer (tiling) model, which exhibits an extensive determinantal structure that enables exact analysis. Therefore, for these tiling models, each of the above phenomena have been investigated at length over the past 25 years; we will provide more detailed references on this point in the subsequent chapters of this thesis, but for now we refer to the survey \cite{D} for further information. 






\section{Results}

\label{Results}

In this thesis we analyze each of the phenomena described in \Cref{Limit} for certain six-vertex models. In \Cref{Fluctuations1} we describe our results concerning height fluctuations for a stochastic six-vertex model with translation-invariant boundary data; the content in this section is detailed in \Cref{FluctuationStationary} below, which is based on the paper \cite{CFSAEPSSVMCL}. In \Cref{Local1} we describe our results concerning limit shapes and local statistics for the stochastic six-vertex model on a cylinder; the content in this section is detailed in \Cref{Local} below and is based on the paper \cite{LSLSSVSM}. In \Cref{Boundary1} we describe our results concerning boundary-induced phase transitions for uniformly random alternating sign matrices (or, equivalently, for the domain-wall ice model); the content in this section is detailed in \Cref{Boundaries} below and is based on the paper \cite{ABIMD}. 

Before proceeding, let us mention that the statements of these results here will be slightly informal. However, for each result, we will provide a specific reference to a corresponding statement in a subsequent chapter of this thesis that provides a more precise statement of this result, under perhaps slightly different notation. 



\subsection{Fluctuation Results}

\label{Fluctuations1} 

Fix real numbers $0 < b_1 < b_2 < 1$, and consider the stochastic six-vertex model with weights 
\begin{flalign}
\label{weightsmodelstochastic}
(a_1, a_2, b_1, b_2, c_1, c_2) = (1, 1, b_1, b_2, 1 - b_1, 1 - b_2).
\end{flalign} 

\noindent It is in general unknown how to prove height fluctuation theorems for this model under general boundary data. So, we will instead analyze this question for a special type of boundary condition that gives rise to an infinite-volume, translation-invariant Gibbs measure for the stochastic six-vertex model. We will see as \Cref{sixvertexlocalcylinder0} below that the latter are universal, in the sense that they prescribe the limiting local statistics for the stochastic six-vertex model under general boundary data.

This measure will eventually be defined on all of $\mathbb{Z}^2$, but let us first define its restriction to the positive quadrant. For any real numbers $\rho_1, \rho_2 \in [0, 1]$, consider the stochastic six-vertex model on $\mathbb{Z}_{> 0}^2$ with \emph{double-sided $(\rho_1, \rho_2)$-Bernoulli boundary data}, in which sites on the $y$-axis are independently entrance sites for paths with probability $\rho_1$ and sites on the $x$-axis are entrance sites for paths with probability $\rho_2$. We refer to the left side of \Cref{boundaryrho} for a depiction. 

\begin{figure} 
	
	
	\begin{center}
		
		\begin{tikzpicture}[
		>=stealth,
		scale = 1
		]
		
		
		
		
		
		
		
		\draw[->, black	] (8.5, 0) -- (12.5, 0);
		\draw[->, black] (8.5, 0) -- (8.5, 3);
		
		
		\draw[->, black] (8.5, 1) -- (8.95, 1);
		\draw[->, black] (8.5, 1.5) -- (8.95, 1.5);
		\draw[->, black] (8.5, 2) -- (8.95, 2);
		
		
		\draw[->, black] (9.05, 1) -- (9.45, 1);
		\draw[->, black] (9.05, 2) -- (9.45, 2);
		
		\draw[->, black] (9.55, 1.5) -- (9.95, 1.5);
		
		\draw[->, black] (10.05, .5) -- (10.45, .5);
		
		\draw[->, black] (10.55, 2) -- (10.95, 2);
		
		\draw[->, black] (9, 0) -- (9, .45);
		\draw[->, black] (9, .55) -- (9, .95);
		\draw[->, black] (9, 1.05) -- (9, 1.45);
		\draw[->, black] (9, 1.55) -- (9, 1.95);
		\draw[->, black] (9, 2.05) -- (9, 2.45);
		\draw[->, black] (9.05, 2) -- (9.45, 2); 
		\draw[->, black] (9.05, 1.5) -- (9.45, 1.5); 
		
		\draw[->, black] (9.5, 1.05) -- (9.5, 1.45);
		\draw[->, black] (9.5, 2.05) -- (9.5, 2.45);  
		\draw[->, black] (9.5, 1.55) -- (9.5, 1.95);
		\draw[->, black] (9.55, 2) -- (9.95, 2); 
		
		\draw[->, black] (10, 0) -- (10, .45);
		\draw[->, black] (10, 1.55) -- (10, 1.95);
		\draw[->, black] (10, 2.05) -- (10, 2.45); 
		\draw[->, black] (10.05, 2) -- (10.45, 2); 
		
		
		\draw[->, black] (10.5, .55 ) -- (10.5, .95);
		\draw[->, black] (10.5, 1.05) -- (10.5, 1.45);
		\draw[->, black] (10.5, 1.55) -- (10.5, 1.95);
		
		\draw[->, black] (11.05, 2) -- (11.45, 2);
		
		\draw[->, black] (10.5, 2.05) -- (10.5, 2.45);
		\draw[->, black] (11.5, 2.05) -- (11.5, 2.45);
		
		
		
		
		
		
		\filldraw[fill=gray!50!white, draw=black] (9, .5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (9, 1) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (9, 1.5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (9, 2) circle [radius=.05];
		
		\filldraw[fill=gray!50!white, draw=black] (9.5, .5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (9.5, 1) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (9.5, 1.5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (9.5, 2) circle [radius=.05];
		
		\filldraw[fill=gray!50!white, draw=black] (10, .5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (10, 1) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (10, 1.5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (10, 2) circle [radius=.05];
		
		\filldraw[fill=gray!50!white, draw=black] (10.5, .5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (10.5, 1) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (10.5, 1.5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (10.5, 2) circle [radius=.05];
		
		\filldraw[fill=gray!50!white, draw=black] (11, .5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (11, 1) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (11, 1.5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (11, 2) circle [radius=.05];
		
		\filldraw[fill=gray!50!white, draw=black] (11.5, .5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (11.5, 1) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (11.5, 1.5) circle [radius=.05];
		\filldraw[fill=gray!50!white, draw=black] (11.5, 2) circle [radius=.05];
		
		\filldraw[] (8.125, 1.25) circle[radius = 0] node[]{$\rho_1$};
		\filldraw[] (10.25, -.375) circle[radius = 0] node[]{$\rho_2$};
		
		
		
		
		\draw[->, black	] (15.5, 0) -- (18.5, 0);
		\draw[->, black] (15.5, 0) -- (15.5, 3);
		
		
		\draw[->, black] (15.5, 1) -- (15.95, 1);
		\draw[->, black] (15.5, 1.5) -- (15.95, 1.5);
		\draw[->, black] (15.5, 2) -- (15.95, 2);
		
		
		\draw[->, black] (16, 0) -- (16, .45);	
		\draw[->, black] (17, 0) -- (17, .45);
		
		
		\filldraw[] (15, 1.25) circle[radius = 0] node[]{$\varphi (\rho)$};
		\filldraw[] (16.75, -.375) circle[radius = 0] node[]{$\rho$};
		
		
		\draw[->] (16.5, 1) -- (18.5, 1); 
		\draw[->] (16.5, 1) -- (16.5, 3);
		
		
		\draw[->, black] (17, 1) -- (17, 1.45);	
		\draw[->, black] (17.5, 1) -- (17.5, 1.45);
		
		
		\draw[->, black] (16.5, 1.5) -- (16.95, 1.5);
		\draw[->, black] (16.5, 2.5) -- (16.95, 2.5);
		
		
		\filldraw[] (16.175, 1.75) circle[radius = 0] node[scale = .8]{$\varphi (\rho)$};
		\filldraw[] (17.25, .75) circle[radius = 0] node[scale = .8]{$\rho$};
		
		\filldraw[fill = black] (16.5, 1) circle[radius = .05] node[below, scale = .87]{$(x, y)$};
		
		
		
		
		
		
		
		\end{tikzpicture}
		
		
	\end{center}

	\caption{\label{boundaryrho} Depicted to the left is the stochastic six-vertex model on $\mathbb{Z}_{> 0}^2$ with double-sided $(\rho_1, \rho_2)$-Bernoulli boundary data. Depicted to the right is the translation-invariance of $\mu_0 (\rho)$. }

\end{figure} 

The stochastic six-vertex model with this boundary data can be considered for any choice of $(\rho_1, \rho_2)$, but these two parameters must satisfy a specific relation to ensure the model is translation-invariant. To describe this further, we define $\kappa > 1$ and $\varphi: [0, 1] \rightarrow [0, 1]$ by 
\begin{flalign}
\label{kappafunction1}
\kappa = \displaystyle\frac{1 - b_1}{1 - b_2} > 1; \qquad \varphi (z) = \displaystyle\frac{\kappa z}{(\kappa - 1) z + 1}, \quad \text{for any $z \in [0, 1]$.}
\end{flalign} 

Now, fix $\rho \in [0, 1]$, and consider the stochastic six-vertex model on the nonnegative quadrant with double-sided $\big( \varphi (\rho), \rho \big)$-Bernoulli initial data; denote the associated measure on the set of six-vertex ensembles on $\mathbb{Z}_{> 0}^2$ by $\mu_0 = \mu_0 (\rho)$. It is shown as \Cref{stationarystochastic} below that this measure is \emph{translation-invariant} in the following sense. For any $(x, y) \in \mathbb{Z}_{\ge 0}^2$, the restriction of $\mu$ to $\mathbb{Z}_{> x} \times \mathbb{Z}_{> y}$ coincides with the translation of $\mu$ by $(x, y)$ (that is, $x$ spaces to the east and $y$ spaces north). We refer to the right side of \Cref{boundaryrho} for a depiction. 

This allows us to define a family of measures $\mu_N = \mu_N (\rho)$ as follows. For each integer $N \ge 1$, let $\mu_N = \mu_N (\rho)$ denote the measure on $\mathbb{Z}_{\ge -N}^2$ formed by translating $\mu_0$ by $(-N, -N)$ (that is, $N$ spaces south and to the west). Due to the translation-invariance of $\mu_0$ mentioned above, these measures are compatible in the sense that $\mu_M$ is the restriction of $\mu_N$ to $\mathbb{Z}_{> -M}^2$, for any integers $N \ge M \ge 0$. Therefore, we can define the limit $\mu = \mu (\rho) = \lim_{N \rightarrow \infty} \mu_N (\rho)$ on all of $\mathbb{Z}^2$. By the translation-invariance of $\mu_0$, this limiting measure is quickly seen to be invariant with respect to any vertical or horizontal shift. Thus, $\mu (\rho)$ is an \emph{infinite-volume, translation-invariant Gibbs measure} for the stochastic six-vertex model. 

The following theorem shows that the height fluctuations under this measure, along a specific characteristic line $y = \nu x$, are of order $T^{1 / 3}$ and converge to the Baik--Rains distribution $F_{\BR} = F_{\BR; 0}$ (see \Cref{stationarydistribution} below) after scaling. 


\begin{thm}[See \Cref{processfluctuations} below]
	\label{modelfluctuations}
	
	Fix $\rho > 0$, and let $H: \mathbb{Z}^2 \rightarrow \mathbb{Z}$ denote the height function associated with a stochastic six-vertex model sampled under $\mu (\rho)$, globally shifted so that $H (0, 0) = 0$. Then there exist (explicit) constants $\nu = \nu (b_1, b_2, \rho) > 0$; $\mathcal{L} = \mathcal{L} (b_1, b_2, \rho) > 0$; and $\mathcal{F} = \mathcal{F}  (b_1, b_2, \rho) > 0$ such that 
	\begin{flalign*}
	\displaystyle\lim_{T \rightarrow \infty} \mathbb{P} \Big[ \mathcal{L} T - H \big( T, \nu T \big) \le \mathcal{F} & s T^{1 / 3} \Big] = F_{\BR} (s), 
	\end{flalign*}
	
	\noindent for any real number $s \in \mathbb{R}$.
\end{thm}

This provides the first fluctuation result for an infinite-volume translation-invariant Gibbs measure for a non-determinantal six-vertex model. Let us mention that, although \Cref{modelfluctuations} as stated only describes the height fluctuations of a stochastic six-vertex model sampled under $\mu (\rho)$ along the line $y = \nu x$, using the translation-invariance of $\mu$ one can quickly show that these fluctuations are of order $N^{1 / 2}$ and are Gaussian away from this characteristic line. Therefore, the six-vertex Gibbs measures $\mu (\rho)$ are quite anisotropic, exhibiting Baik--Rains fluctuations of exponent $\frac{1}{3}$ along a single characteristic direction and Gaussian fluctuations of exponent $\frac{1}{2}$ elsewhere. This is qualitatively quite different from the behavior of infinite-volume, translation-invariant Gibbs measures for tiling models, which are known by Kenyon to be conformally invariant \cite{CI} with Gaussian free field fluctuations \cite{F,DA}. 





As mentioned in \Cref{DegenerationsVertex}, there is a limit degeneration that transforms the stochastic six-vertex model into the ASEP. Using this limit degeneration, we can also establish the following theorem for the current fluctuations of the ASEP with \emph{$\rho$-stationary initial data}, which corresponds to each site initially being occupied independently with probability $\rho$. For any integer $x \in \mathbb{Z}$ and real number $t \ge 0$, the \emph{current} $J_t (x)$ of this ASEP is defined to be the number of particles initially to the left of or at site $x$ at time $0$ that pass to the right of $x$ at time $t$. 

\begin{thm}[See \Cref{currentfluctuations} below]
	\label{currentprocess}
	
	Fix real numbers $0 < L < R$ and $\rho \in (0, 1)$; set $\delta = R - L$ and $\chi = \rho (1 - \rho)$. Consider the ASEP, with left jump rate $L$ and right jump rate $R$, under $\rho$-stationary initial data. Then, for any real number $s \in \mathbb{R}$, we have that 
	\begin{flalign}
	\label{probabilitycurrentfluctuations1} 
	\displaystyle\lim_{T \rightarrow \infty} \mathbb{P} \Big[ \rho^2 T - J_{\delta^{-1} T} \big( (1 - 2\rho) T  \big) \le \chi^{2 / 3} s & T^{1 / 3} \Big] = F_{\BR} (s). 
	\end{flalign}
	
\end{thm}


Work concerning current fluctuations along the characteristic line for the stationary ASEP dates back to a physics paper \cite{ENDDS} of van Beijeren--Kutner--Spohn in 1985, which predicted that the two-point function (closely related to the current fluctuations) should converge to some universal distribution upon the appropriate scaling. Ferrari--Fontes bounded the current fluctuations above by $o(T^{1 / 2})$ in 1994 \cite{CFA}, and Landim--Quastel--Salmhofer--Yau bounded them below by of order $T^{1 / 4}$ in 2004 \cite{SAEPD}. In 2006, Ferrari--Spohn proved for the TASEP ($L = 0$) case of the ASEP that they are of order $T^{1 / 3}$ and converge to the Baik--Rains distribution after scaling \cite{SLSCST}. In 2010, Bal\'{a}zs--Sepp\"{a}l\"{a}inen showed that the current fluctuations of the general ($L \ne R$) ASEP are of order $T^{1 / 3}$ \cite{OCVDA}. In a series of works from 2008 to 2010 \cite{FDRA,AASIC,ATBIC,IASEP,ASBIC}, Tracy--Widom established exact statistics results for general ASEP current fluctuations under various types of (including step and step Bernoulli) initial data but did not establish the Baik--Rains fluctuations in the stationary case. This is addressed by \Cref{currentprocess}. 


The proofs of \Cref{modelfluctuations} and \Cref{currentprocess} are largely algebraic, based on the analysis of a lattice model called the (inhomogeneous) stochastic higher spin vertex model. This system is \emph{exactly solvable}, meaning that it exhibits families of row-to-row transfer operators satisfying the Yang--Baxter relations. Furthermore, it exhibits degenerations transforming it to the stochastic six-vertex model and ASEP. The first point enabled Borodin--Petrov in 2018 prove contour integral identities for ($q$-deformed) moments of the current of the stochastic higher spin vertex model under a certain type of boundary condition called step initial data \cite{HSVMRSF}. By the latter point, one can then deduce analogous identities for the stochastic six-vertex model and ASEP, which can be analyzed to re-derive the fluctuation theorems for the stochastic six-vertex model \cite{SSVM} and ASEP \cite{AASIC} under step initial data.\footnote{For the stochastic six-vertex model, this means double-sided $(1, 0)$-Bernoulli initial data; for the ASEP, this means that particles initially occupy all sites to the left of $0$ but no sites to the right of $-1$.} 

Extending these results past step initial data required further ideas. In \cite{PTAEPSSVM} we observed that new types of initial data for the stochastic higher spin vertex model can be introduced by running it under step initial data, but with deformed spin and inhomogeneity parameters in its first several columns. Combined with the above framework, this led to integral identities for $q$-moments for the stochastic six-vertex model and ASEP current under these new initial data, which could then be asymptotically analyzed. 

As stated, this this method can only give rise to initial data that do not support particles to the right of the origin; so, it does not apply in the stationary case. We will remedy this by showing that double-sided initial data for the stochastic higher spin vertex model can be introduced by running it under step initial data not only with deformed column parameters, but also with new additional rows whose spectral parameters along are specialized according to the Kulish--Reshetikhin--Sklyanin fusion procedure of \cite{ERT}. This will lead to identities for the translation-invariant stochastic six-vertex model height function and stationary ASEP current, which (through a more intricate analysis than in the above cases) can be used to prove the long-time Baik--Rains fluctuations.










\subsection{Limit Shapes and Local Statistics}

\label{Local1}


Fix real numbers $0 < b_1 < b_2 < 1$ and $\lambda > 0$; fix an integer $N \ge 1$; set $L = \lfloor \lambda N \rfloor$; assume $L \ge 1$; let $\mathfrak{T} = \mathfrak{T}_N = \mathbb{Z} / N \mathbb{Z}$ denote a discrete torus; and define the discrete cylinder $\mathfrak{C}_{N; L} = \mathfrak{T}_N \times \{ 1, 2, \ldots , L \}$. Here, we consider the stochastic six-vertex model with weights \eqref{weightsmodelstochastic} on $\mathfrak{C}_{N; L}$, with arbitrary specified boundary data on the bottom end $\mathfrak{T} \times \{ 1 \}$ of the cylinder and free boundary conditions on its upper end $\mathfrak{T} \times \{ L \}$. We refer to \Cref{vertexdomain1} for a depiction. 

\begin{figure}[t]
	
	\begin{center}
		
		\begin{tikzpicture}[
		>=stealth,
		scale = .75 	
		]
		
		
		
		\draw[-, dashed] (0, 0) -- (6, 0) node[right = 0]{$1$};
		\draw[-, dashed] (0, 1) -- (6, 1) node[right = 0]{$2$};
		\draw[-, dashed] (0, 2) -- (6, 2) node[right = 0]{$3$};
		\draw[-, dashed] (0, 3) -- (6, 3) node[right = 0]{$4$};
		\draw[-, dashed] (0, 4) -- (6, 4) node[right = 0]{$5$};
		\draw[-, dashed] (0, 5) -- (6, 5) node[right = 0]{$6$};
		\draw[-, dashed] (0, 6) -- (6, 6) node[right = 0]{$7$};
		
		\draw[-, dashed] (1, -1) -- (1, 7) node[above = 0]{$0$}; 
		\draw[-, dashed] (2, -1) -- (2, 7) node[above = 0]{$1$};  
		\draw[-, dashed] (3, -1) -- (3, 7) node[above = 0]{$2$}; 
		\draw[-, dashed] (4, -1) -- (4, 7) node[above = 0]{$3$}; 
		\draw[-, dashed] (5, -1) -- (5, 7) node[above = 0]{$4$}; 
		
		\draw[-, black] (-.25, 0) -- (-.5, 0) -- (-.5, 6) -- (-.25, 6); 
		\draw[] (-.5, 3) circle[radius = 0] node[left = 0]{$L$}; 
		
		\draw[-, black] (1, -1.25) -- (1, -1.5) -- (5, -1.5) -- (5, -1.25); 
		\draw[] (3, -1.5) circle[radius = 0] node[below = 0]{$N$}; 
		
		\draw[->, black, thick] (1, -1) -- (1, -.1); 
		\draw[->, black, thick] (2, -1) -- (2, -.1);
		\draw[->, black, thick] (5, -1) -- (5, -.1);
		
		\draw[->, black, thick] (1.1, 0) -- (1.9, 0);
		\draw[->, black, thick] (2.1, 0) -- (2.9, 0);
		\draw[->, black, thick] (3.1, 0) -- (3.9, 0);
		
		\draw[->, black, thick] (2, .1) -- (2, .9);
		\draw[->, black, thick] (4, .1) -- (4, .9);
		\draw[->, black, thick] (5, .1) -- (5, .9);
		
		\draw[->, black, thick] (0, 1) -- (.9, 1);
		\draw[->, black, thick] (2.1, 1) -- (2.9, 1);
		\draw[->, black, thick] (4.1, 1) -- (4.9, 1);
		\draw[->, black, thick] (5.1, 1) -- (6, 1);
		
		\draw[->, black, thick] (1, 1.1) -- (1, 1.9); 
		\draw[->, black, thick] (3, 1.1) -- (3, 1.9);
		\draw[->, black, thick] (5, 1.1) -- (5, 1.9);
		
		
		\draw[->, black, thick] (1.1, 2) -- (1.9, 2);
		
		\draw[->, black, thick] (2, 2.1) -- (2, 2.9); 
		\draw[->, black, thick] (3, 2.1) -- (3, 2.9);
		\draw[->, black, thick] (5, 2.1) -- (5, 2.9);
		
		
		\draw[->, black, thick] (0, 3) -- (.9, 3);
		\draw[->, black, thick] (2.1, 3) -- (2.9, 3);
		\draw[->, black, thick] (3.1, 3) -- (3.9, 3);
		\draw[->, black, thick] (5.1, 3) -- (6, 3);
		
		\draw[->, black, thick] (1, 3.1) -- (1, 3.9); 
		\draw[->, black, thick] (3, 3.1) -- (3, 3.9);
		\draw[->, black, thick] (4, 3.1) -- (4, 3.9);
		
		\draw[->, black, thick] (3.1, 4) -- (3.9, 4);
		\draw[->, black, thick] (4.1, 4) -- (4.9, 4);
		
		\draw[->, black, thick] (1, 4.1) -- (1, 4.9); 
		\draw[->, black, thick] (4, 4.1) -- (4, 4.9);
		\draw[->, black, thick] (5, 4.1) -- (5, 4.9);
		
		
		\draw[->, black, thick] (0, 5) -- (.9, 5);
		\draw[->, black, thick] (1.1, 5) -- (1.9, 5);
		\draw[->, black, thick] (4.1, 5) -- (4.9, 5);
		\draw[->, black, thick] (5.1, 5) -- (6, 5);
		
		
		\draw[->, black, thick] (1, 5.1) -- (1, 5.9); 
		\draw[->, black, thick] (2, 5.1) -- (2, 5.9);
		\draw[->, black, thick] (5, 5.1) -- (5, 5.9);
		
		
		\draw[->, black, thick] (1.1, 6) -- (1.9, 6);
		\draw[->, black, thick] (2.1, 6) -- (2.9, 6);
		\draw[->, black, thick] (3.1, 6) -- (3.9, 6);
		
		\draw[->, black, thick] (2, 6.1) -- (2, 7); 
		\draw[->, black, thick] (4, 6.1) -- (4, 7);
		\draw[->, black, thick] (5, 6.1) -- (5, 7);
		
		
		
		
		\filldraw[fill=gray!50!white, draw=black] (1, 0) circle [radius=.1];
		\filldraw[fill=gray!50!white, draw=black] (1, 1) circle [radius=.1];
		\filldraw[fill=gray!50!white, draw=black] (1, 2) circle [radius=.1];
		\filldraw[fill=gray!50!white, draw=black] (1, 3) circle [radius=.1];
		\filldraw[fill=gray!50!white, draw=black] (1, 4) circle [radius=.1];
		\filldraw[fill=gray!50!white, draw=black] (1, 5) circle [radius=.1];
		\filldraw[fill=gray!50!white, draw=black] (1, 6) circle [radius=.1];
		
		\filldraw[fill=gray!50!white, draw=black] (2, 0) circle [radius=.1];
		\filldraw[fill=gray!50!white, draw=black] (2, 1) circle [radius=.1];
		\filldraw[fill=gray!50!white, draw=black] (2, 2) circle [radius=.1];
		\filldraw[fill=gray!50!white, draw=black] (2, 3) circle [radius=.1];
		\filldraw[fill=gray!50!white, draw=black] (2, 4) circle [radius=.1];
		\filldraw[fill=gray!50!white, draw=black] (2, 5) circle [radius=.1];
		\filldraw[fill=gray!50!white, draw=black] (2, 6) circle [radius=.1];
		
		\filldraw[fill=gray!50!white, draw=black] (3, 0) circle [radius=.1];
		\filldraw[fill=gray!50!white, draw=black] (3, 1) circle [radius=.1];
		\filldraw[fill=gray!50!white, draw=black] (3, 2) circle [radius=.1];
		\filldraw[fill=gray!50!white, draw=black] (3, 3) circle [radius=.1];
		\filldraw[fill=gray!50!white, draw=black] (3, 4) circle [radius=.1];
		\filldraw[fill=gray!50!white, draw=black] (3, 5) circle [radius=.1];
		\filldraw[fill=gray!50!white, draw=black] (3, 6) circle [radius=.1];
		
		\filldraw[fill=gray!50!white, draw=black] (4, 0) circle [radius=.1];
		\filldraw[fill=gray!50!white, draw=black] (4, 1) circle [radius=.1];
		\filldraw[fill=gray!50!white, draw=black] (4, 2) circle [radius=.1];
		\filldraw[fill=gray!50!white, draw=black] (4, 3) circle [radius=.1];
		\filldraw[fill=gray!50!white, draw=black] (4, 4) circle [radius=.1];
		\filldraw[fill=gray!50!white, draw=black] (4, 5) circle [radius=.1];
		\filldraw[fill=gray!50!white, draw=black] (4, 6) circle [radius=.1];
		
		\filldraw[fill=gray!50!white, draw=black] (5, 0) circle [radius=.1];
		\filldraw[fill=gray!50!white, draw=black] (5, 1) circle [radius=.1];
		\filldraw[fill=gray!50!white, draw=black] (5, 2) circle [radius=.1];
		\filldraw[fill=gray!50!white, draw=black] (5, 3) circle [radius=.1];
		\filldraw[fill=gray!50!white, draw=black] (5, 4) circle [radius=.1];
		\filldraw[fill=gray!50!white, draw=black] (5, 5) circle [radius=.1];
		\filldraw[fill=gray!50!white, draw=black] (5, 6) circle [radius=.1];
		
		
		\filldraw[fill=gray!50!white, draw=black] (-4, -.5) circle [radius=0] node{Arbitrary specified boundary data};
		\filldraw[fill=gray!50!white, draw=black] (-4, 6.5) circle [radius=0] node{Free boundary conditions};
		
		
		
		
		
		\end{tikzpicture}
		
	\end{center}	
	
	\caption{\label{vertexdomain1} A stochastic six-vertex model on $\mathfrak{C}_{5; 7}$ is shown above.}
\end{figure}


Our first result, \Cref{sixvertexcylinderglobal0}, provides a limit shape for the height function of this stochastic six-vertex model. This limit shape is given by the solution to a certain non-linear conservation law originally predicted by Gwa--Spohn in 1992 \cite{SVMRSASH}, which was later heuristically re-derived assuming a conjectural variational principle for the general six-vertex model by Reshetikhin--Sridhar in 2018 \cite{LSSSVM}. In what follows, we recall the function $\varphi: [0, 1] \rightarrow [0, 1]$ from \eqref{kappafunction1} and define the torus $\mathbb{T} = \mathbb{R} / \mathbb{Z}$. 



\begin{thm}[See \Cref{sixvertexcylinderglobal} below]
	
	\label{sixvertexcylinderglobal0} 
	
	The height function of the stochastic six-vertex model described above converges to a deterministic profile $\mathcal{H}: \mathbb{T} \times [0, \lambda] \rightarrow \mathbb{R}$ whose $x$-derivative $G (x, y) = \frac{\partial}{\partial x} \mathcal{H}(x, y)$ satisfies the equation 
	\begin{flalign}
	\label{gxydefinition0} 
	\displaystyle\frac{\partial}{\partial y} G (x, y) + \displaystyle\frac{\partial}{\partial x} \Big( \varphi \big( G(x, y) \big) \Big) = 0.
	\end{flalign}
	

	
\end{thm} 

Let us mention that, although \Cref{sixvertexcylinderglobal0} as stated only provides an equation governing the $x$-derivative $G (x, y)$ of $\mathcal{H}$, it is also possible to establish a similar statement for its $y$-derivative, which characterizes $\mathcal{H}$ from its initial data. 

Previous works have established this limit shape result under certain classes of initial data. Indeed, in 2016, Borodin--Corwin--Gorin \cite{SSVM} address the limit shape (and fluctuations) for this model when run under step initial data data; this was later extended in \cite{PTAEPSSVM} to the case of (generalized) Bernoulli initial data. Although both of these results imply precise asymptotic statements about the stochastic six-vertex model in their respective settings, the algebraic analysis implemented in their proofs requires that the boundary data be of a special type, and so does not apply to the case of general initial data. 


Our second result, \Cref{sixvertexlocalcylinder}, shows that as $N$ tends to $\infty$ the local statistics of this model around some vertex $(X, Y) \in \mathfrak{C}_{N; L}$ are given by the infinite-volume translation-invariant Gibbs measures $\mu (\rho)$ described in \Cref{Fluctuations1}, where $\rho$ is determined by the derivative of global limit shape described in \Cref{sixvertexcylinderglobal0}. 
 


\begin{thm}[See \Cref{sixvertexlocalcylinder} below]
	
	\label{sixvertexlocalcylinder0}
	
	Adopt the notation of \Cref{sixvertexcylinderglobal0}, and fix some pair $(u, v) \in \mathbb{T} \times (0, \lambda)$ such that that $(u, v)$ is a continuity point of $G$; denote $G (u, v) = \rho$. For each integer $N \ge 1$, let $U_N \in \mathfrak{T}_N$ and $V_N \in [0, L]$ be integers such that $\lim_{N \rightarrow \infty} \frac{U_N}{N} = u$ and $\lim_{N \rightarrow \infty} \frac{V_N}{N} = v$. Then the local statistics for the stochastic six-vertex model described above on $\mathfrak{C}_{N; L}$ around $(U_N, V_N)$ are given, as $N$ tends to $\infty$, by $\mu (\rho)$. 

\end{thm} 

There seem to have been no previous results on local statistics for the any non-determinantal six-vertex model when run under any type of (deterministic) boundary data, and so \Cref{sixvertexlocalcylinder0} provides the first.

The proofs of both \Cref{sixvertexcylinderglobal0} and \Cref{sixvertexlocalcylinder0} will be probabilistic. They proceed by first reinterpreting the stochastic six-vertex model as a discrete-time interacting particle system, and then by analyzing this system through a discrete-time adaptation of hydrodynamical limit methods developed for continuous-time, attractive interacting particle systems. Fundamental to this framework was the development of attractive couplings between different stochastic six-vertex models. These couplings will in fact have an algebraic origin, namely, the $U_q (\widehat{\mathfrak{sl}}_n)$ $R$-matrix introduced independently by Bazhanov in 1985 \cite{TSEA} and Jimbo in 1986 \cite{QGM}.







\subsection{Arctic Boundaries}

\label{Boundary1}

In this section we describe our results concerning arctic boundaries for the ice model with domain-wall boundary data. As explained in \Cref{DegenerationsVertex}, this model is equivalent to a uniformly random alternating sign matrix, so let us describe our results in the latter context.

Given an $N \times N$ alternating sign matrix $\textbf{M}$, we say that $(i, j) \in [1, N] \times [1, N]$ is in the \emph{frozen region} of $\textbf{M}$ if at least one of the following holds.
\begin{itemize} 
	\item Each entry in $\textbf{M}$ (weakly) northwest of $(i, j)$ is equal to $0$. 
	\item Each entry in $\textbf{M}$ (weakly) southwest of $(i, j)$ is equal to $0$. 
	\item Each entry in $\textbf{M}$ (weakly) northeast of $(i, j)$ is equal to $0$. 
	\item Each entry in $\textbf{M}$ (weakly) southeast	 of $(i, j)$ is equal to $0$. 
\end{itemize} 

We refer to the left side of \Cref{boundarya} for a depiction.  


\begin{figure}[t]
	
	\begin{center}
		
		\begin{tikzpicture}[
		>=stealth,
		]
		
		\draw[] (2, 2.5) circle [radius = 0] node[]{$\begin{bmatrix} 
			\textbf{0} & \textbf{0} & 1 & \textbf{0} & \textbf{0} & \textbf{0} & \textbf{0} \\
			\textbf{0} & 1 & -1 & 1 & \textbf{0} & \textbf{0} & \textbf{0} \\
			\textbf{0} & 0 & 0 & 0 & 0 & 0 & 1 \\
			1 & -1 & 0 & 0 & 0 & 1 & \textbf{0} \\
			\textbf{0} & 1 & 0 & -1 & 1 & \textbf{0} & \textbf{0} \\
			\textbf{0} & \textbf{0} & 0 & 1 & \textbf{0} & \textbf{0} & \textbf{0} \\
			\textbf{0} & \textbf{0} & 1 & \textbf{0} & \textbf{0} & \textbf{0} & \textbf{0}
			\end{bmatrix}$};
		
		
		\draw[-, black] (8, .75) -- (11, .75) -- (11, 3.75) -- (8, 3.75) -- (8, .75); 	
		
		\draw[-, black] (9.5, .75) -- (9.65, .755179) -- (9.8, .771539) -- (9.95, .800633) -- (10.1, .844602) -- (10.25, .906534) -- (10.4, .991154) -- (10.475, 1.04424) -- (10.55, 1.10638) -- (10.625, 1.17971) -- (10.7, 1.26752) -- (10.775, 1.37532) -- (10.85, 1.51375) -- (10.91, 1.6634) -- (10.94, 1.76299) -- (10.97, 1.8985) -- (10.982, 1.97482) -- (10.988, 2.02385) -- (10.994, 2.08877) -- (11, 2.25);
		
		\draw[-, black] (9.5, 3.75) -- (9.35, 3.74482) -- (9.2, 3.72846) -- (9.05, 3.69937) -- (8.9, 3.6554) -- (8.75, 3.59347) -- (8.6, 3.50885) -- (8.525, 3.45576) -- (8.45, 3.39362) -- (8.375, 3.32029) -- (8.3, 3.23248) -- (8.225, 3.12468) -- (8.15, 2.98625) -- (8.09, 2.8366) -- (8.06, 2.73701) -- (8.03, 2.6015) -- (8.018, 2.52518) -- (8.012, 2.47615) -- (8.006, 2.41123) -- (8, 2.25); 
		
		
		\draw[-, black] (8, 2.25) -- (8.006, 2.08877) -- (8.012, 2.02385) -- (8.018, 1.97482) -- (8.03, 1.8985) -- (8.06, 1.76299) -- (8.09, 1.6634) -- (8.15, 1.51375) -- (8.225, 1.37532) -- (8.3, 1.26752) -- (8.375, 1.17971) -- (8.45, 1.10638) -- (8.525, 1.04424) -- (8.6, .991154) -- (8.75, .906534) -- (8.9, .844602) -- (9.05, .800633) -- (9.2, .771539) -- (9.35, .755179) -- (9.5, .75); 
		
		
		\draw[-, black] (9.5, 3.75) -- (9.65, 3.74482) -- (9.8, 3.72846) -- (9.95, 3.69937) -- (10.1, 3.6554) -- (10.25, 3.59347) -- (10.4, 3.50885) -- (10.475, 3.45576) -- (10.55, 3.39362) -- (10.625, 3.32029) -- (10.7, 3.23248) -- (10.775, 3.12468) -- (10.85, 2.98625) -- (10.91, 2.8366) -- (10.94, 2.73701) -- (10.97, 2.6015) -- (10.982, 2.52518) -- (10.988, 2.47615) -- (10.994, 2.41123) -- (11, 2.25); 
		
		
		\filldraw[fill = black] (9.5, .75) circle[radius = .05] node[below, scale = .7]{$\big( \frac{1}{2}, 0 \big)$};
		\filldraw[fill = black] (8, 2.25) circle[radius = .05] node[left, scale = .7]{$\big( 0, \frac{1}{2} \big)$};
		\filldraw[fill = black] (11, 2.25) circle[radius = .05] node[right, scale = .7]{$\big( 1, \frac{1}{2} \big)$};
		\filldraw[fill = black] (9.5, 3.75) circle[radius = .05] node[above, scale = .7]{$\big( \frac{1}{2}, 1 \big)$};
		
		
		\filldraw[fill = black] (10.55, 1.5) circle[radius = 0] node[scale = .7]{$\mathfrak{A}_{\text{SE}}$};
		\filldraw[fill = black] (8.55, 1.5) circle[radius = 0] node[scale = .7]{$\mathfrak{A}_{\text{SW}}$};
		\filldraw[fill = black] (10.55, 3) circle[radius = 0] node[scale = .7]{$\mathfrak{A}_{\text{NE}}$};
		\filldraw[fill = black] (8.55, 3) circle[radius = 0] node[scale = .7]{$\mathfrak{A}_{\text{NW}}$};
		
		
		\end{tikzpicture}
		
	\end{center}	
	
	\caption{\label{boundarya} To the left is an alternating sign matrix whose frozen region is depicted in bold. The four curves $\mathfrak{A}_{\text{SE}}$, $\mathfrak{A}_{\text{SW}}$, $\mathfrak{A}_{\text{NE}}$, and $\mathfrak{A}_{\text{NW}}$ are depicted to the right. } 
\end{figure} 

Our result, given by \Cref{boundarydomain0} below, characterizes the boundary of the frozen region of a uniformly random alternating sign matrix. To describe this boundary, we define the portion of an ellipse
\begin{flalign*}
\mathfrak{A}_{\text{SE}} = \big\{ (x, y) \in \mathbb{R}^2: (2x - 1)^2 + (2y - 1)^2 - 4(1 - x)y = 1 \big\} \cap \bigg( \Big[ \displaystyle\frac{1}{2}, 1 \Big] \times \Big[ 0, \displaystyle\frac{1}{2} \Big] \bigg),
\end{flalign*}

\noindent and its reflections 
\begin{flalign*}
& \mathfrak{A}_{\text{SW}} = \big\{ (x, y) \in \mathbb{R}^2: (1 - x, y) \in \mathfrak{A}_{\text{SE}} \big\}; \qquad  \mathfrak{A}_{\text{NE}} = \big\{ (x, y) \in \mathbb{R}^2: (x, 1 - y) \in \mathfrak{A}_{\text{SE}} \big\}; \\
&  \mathfrak{A}_{\text{NW}} = \big\{ (x, y) \in \mathbb{R}^2: (1 - x, 1 - y) \in \mathfrak{A}_{\text{SE}} \big\}.
\end{flalign*}

Let $\mathfrak{A} = \mathfrak{A}_{\text{SE}} \cup \mathfrak{A}_{\text{SW}} \cup \mathfrak{A}_{\text{NE}} \cup \mathfrak{A}_{\text{NW}}$; we refer to the right side of \Cref{boundarya} for a depiction.	

Now we can state the following theorem, which essentially prescribes $\mathfrak{A}$ as the arctic boundary of a uniformly random alternating sign matrix. In the below, $d (v, u) = \| v - u \|_2$ denotes the Euclidean distance between any two points $v, u \in \mathbb{R}^2$ and, for any set $\mathcal{S} \subseteq \mathbb{R}^2$, we define $d (v, \mathcal{S}) = \inf_{u \in \mathcal{S}} d (v, u)$.


\begin{thm}[See \Cref{boundarya0b0} below]

\label{boundarydomain0}

Let $N \ge 1$ be a positive integer; let $(i, j) \in [1, N] \times [1, N]$ be an integer pair; and set $z = \big( \frac{i}{N}, \frac{j}{N} \big) \in [0, 1] \times [0, 1]$. Fix a real number $\varepsilon > 0$, and assume that $\text{\emph{dist}} (z, \mathfrak{A}) > \varepsilon$. Let $\textbf{\emph{M}}$ denote an $N \times N$ alternating sign matrix, chosen uniformly at random. 

Then, there exists $\delta = \delta (\varepsilon) > 0$ such that, with probability at least $1 - e^{-\delta N}$, $(i, j)$ is in the frozen region of $\textbf{\emph{M}}$ if and only if $z$ is outside of $\mathfrak{A}$. 

\end{thm}


By physical reasoning and extensive numerical simulations, it had widely been predicted (for instance, by Eloranta in 1999 \cite{DI}, Zinn-Justin in 2000 \cite{SVMDWBCMM}, and Allison--Reshetikhin in 2005 \cite{NSVMDWBC}) that an arctic boundary should be present in the six-vertex model under domain-wall boundary data. An explicit parameterization for this arctic curve was predicted by Colomo--Pronko in 2009 \cite{TLSLASM} based on an analysis of certain non-local correlation functions. This form was heuristically re-derived by Colomo--Sportiello in 2016 \cite{ACSVMGD} as an initial application of their \emph{(geometric) tangent method}, a broad principle for locating arctic boundaries of certain two-dimensional statistical mechanical models. 


Due to the previously mentioned equivalence between uniformly random alternating sign matrices and ice models with domain-wall boundary data, \Cref{boundarydomain0} shows that the arctic boundary for the domain-wall ice model is also given by $\mathfrak{A}$, thereby establishing the above prediction (for both the existence and explicit parameterization of the arctic boundary) in this case. In fact, our results also apply to the ice model on a more general domain called the three-bundle domain (where the corresponding result was originally predicted by Colomo--Sportiello \cite{ACSVMGD}); we refer to \Cref{boundaryb} below for the precise statement of this generalization. 

Our proof will be based on a mathematical justification of the tangent method for this model. This will proceed through a series of probabilistic comparisons between the original ice model and significantly simpler systems of few (at most three) non-overlapping random walks, which could be analyzed directly. These comparisons will partly be facilitated by monotonicity results, which were stimulated by the 2014 work \cite{LE} of Corwin--Hammond on Airy line ensembles. 


