% ------------------------------------------------------------------------------
% Copyright (c) 2010, 2025 Contributors to the Eclipse Foundation
%
% See the NOTICE file(s) distributed with this work for additional
% information regarding copyright ownership.
%
% This program and the accompanying materials are made available under the terms
% of the MIT License which is available at https://opensource.org/licenses/MIT
%
% SPDX-License-Identifier: MIT
% ------------------------------------------------------------------------------
\documentclass{article}
\usepackage{tikz}
\usepackage{verbatim}

\usepackage[paperwidth=40in, paperheight=20in]{geometry}

\usetikzlibrary{arrows, automata, positioning}
\begin{document}
\pagestyle{empty}

\definecolor{se-blue}{HTML}{D0D5FF}

\newcommand{\state}[2]{\begin{tabular}{@{}c@{}}#1\\#2\end{tabular}}

\begin{tikzpicture}[
  ->,>=stealth',auto,node distance=2.5cm,thick,
  every node/.style={font=\sffamily\small},
  every state/.style={draw=se-blue,thick,top color=white,
                      bottom color=se-blue!75,initial text=},
  accepting/.style={accepting by arrow,accepting text=\ldots},
  every edge/.style={draw=black!50}]

  \node[state, initial]   (s0)                    {p/i};
  \node[state]            (s1) [right of=s0]      {i/i};
  \node[state]            (s2) [below =1cm of s0] {p/c};
  \node[state]            (s3) [below =1cm of s1] {i/c};

  \path[every node/.style={font=\sffamily\normalsize,outer sep=0pt}]
    (s0) edge[] node[]                    {produce} (s1)
    (s1) edge[] node[sloped,anchor=south] {provide} (s2)
    (s2) edge[] node[swap]                {produce} (s3)
    (s3) edge[] node[swap]                {consume} (s1)
    (s2) edge[] node[]                    {consume} (s0)
  ;

\end{tikzpicture}
\end{document}
