% control-dash-steps.tex --- big and small steps in Dash -*-latex-*-

% Copyright (C) 2019 Jose Serna <jserna@uwaterloo.ca>
% Copyright (C) 2019 Nancy Day <nday@uwaterloo.ca>
% Copyright (C) 2020 Amin Bandali <bandali@uwaterloo.ca>

% This file is part of Amin Bandali's MMath thesis.

% This thesis is free software: you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation, either version 3 of the License, or
% (at your option) any later version.

% This thesis is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
% GNU General Public License for more details.

% You should have received a copy of the GNU General Public License
% along with this thesis.  If not, see <https://www.gnu.org/licenses/>.


\begin{figure*}
\centering
\begin{tikzpicture}[node distance=2.8cm, on grid, auto,
  state/.style={circle, draw, minimum size=1.35cm}] 
\node[state, accepting, align=center] (sp_0) {$sp_0$\\stable}; 
\node        (env1) [above=of sp_0] {env input};
\node[state] (sp_1) [right=of sp_0] {$sp_1$};
\node[state] (sp_2) [right=of sp_1] {$sp_2$};
\node[state] (sp_n1) [right=of sp_2] {$sp_{n-1}$};
\node[state, accepting, align=center] (sp_n) [right=of sp_n1] {$sp_n$\\stable};
\node        (env2) [above=of sp_n] {env input};
\path[->]
(sp_0) edge node {$ss_1$} (sp_1)
(sp_1) edge node {$ss_2$} (sp_2)
(sp_2) -- node[auto=false]{\ldots} (sp_n1)
(sp_n1) edge node {$ss_n$} (sp_n)
(env1) edge[dotted, -{Latex[width=3mm]}] node {} (sp_0)
(env2) edge[dotted, -{Latex[width=3mm]}] node {} (sp_n);
\draw[decorate, decoration={brace, amplitude=20pt}]
(sp_0.north) -- (sp_n.north) node[midway, yshift=25pt] {big step};
\end{tikzpicture}
\caption{Big step ($sp$ is a snapshot; $ss$ is a small step)}
\label{fig:control/dash-steps}
\end{figure*}


%% Local Variables:
%% tex-main-file: "../bandali-mmath-thesis.tex"
%% End:
