\RequirePackage{ifxetex,ifluatex}
\newif\ifxetexorluatex
\ifxetex
\xetexorluatextrue
\else
\ifluatex
\xetexorluatextrue
\else
\xetexorluatexfalse
\fi
\fi
\documentclass{article}
\pagestyle{empty}
\usepackage{mathtools}\mathtoolsset{mathic=true} %%% See http://tex.stackexchange.com/a/3496
\ifxetexorluatex
\usepackage{unicode-math}%%% Makes things worse but is included anyway, as we need it in an unrelated portion of the document.
\providecommand{\bigparallel}{\mathop{\mathchoice
{\big\Vert}
{\Vert}
{\scriptstyle\Vert}
{\scriptscriptstyle\Vert}
}
}
\else
\usepackage{stmaryrd}
\fi
\begin{document}
Let \(M_i\) be machines over the shared state space \(S\).
Consider their parallel composition
\[\bigparallel_{\mathclap{i=1}}^n M_i\,.\]
Consider its set of states
\[\mathrm{States}_{\bigparallel_{i=1}^n M_i}\]
and define a predicate
\[p_{\mathrm{States}_{\bigparallel_{i=1}^n M_i}}\]
on it.
Alternatively, consider their parallel composition \(\bigparallel_{i=1}^n M_i\).
Consider its set of states \(\mathrm{States}_{\bigparallel_{i=1}^n M_i}\) and define a predicate \(p_{\mathrm{States}_{\bigparallel_{i=1}^n M_i}}\) on it.
\end{document}
xelatex produces this: Is there a less cumbersome (and, perhaps, more natural way) to get the same or a better-looking result? Perhaps, someone has already done the exercise?