[Tex/LaTex] the best practice for typesetting set-builder notation with a large number of membership criteria

best practicesmath-modepositioningspacing

That is, I have something akin to the following right now:

\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}

\begin{document}
We must have $(a^i,b^i,c^i) \in X^i(d) = \bigg\{(a,b,c)
    \in \mathbb R^A \times \mathbb R^B \times \mathbb R^C : $
\begin{displaymath}
    \begin{array}{l}
        1.\ d_0 \cdot (a_0 - b_0) + d_1 \cdot (b_0 - c_0) \leq 0  \\
        2.\ \sum_j c_j b^j \leq d_j \\
        3.\ \forall k \geq 1,
            d_k \cdot \left(a_k - b^h_k - F_k(x_{k^*})\right) \leq 
            \sum_k (b_k-c_k) \cdot \min \left(d_k \cdot G^j_k, m_k \right)
            \bigg\}
    \end{array}
\end{displaymath}
\end{document}

Which produces this monstrosity:

Awful TeX Job

Any suggestions for slaying this beast would be much appreciated.

Goals:

  • make it look clean,
  • and comport with TeX best practices,
  • in particular removing manual serialization
  • and manual, highly-contingent layout tweaks

Restrictions:

  • There is limited horizontal space with which to work, which may end up requiring that the set be opened on a different line from that on which it is closed.
  • Obviously, I do not want to define membership criteria outside of the set braces and then reference them, unless I can be convinced that this is the most simple / elegant way to express the set.

Best Answer

If you replace some of the symbolism with words from natural language, I think you get a much clearer and cleaner result; the most natural choice for the list is an enumerate environment; here's one possibility:

\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}

\begin{document}
We must have $(a^i,b^i,c^i) \in X^i(d)$, where $X^i(d)$ is the set of all triples $(a,b,c) \in \mathbb R^A \times \mathbb R^B \times \mathbb R^C $ such that
\begin{enumerate}
  \item $d_0 \cdot (a_0 - b_0) + d_1 \cdot (b_0 - c_0) \leq 0$,
  \item $\smash[b]{\sum_j c_j b^j} \leq d_j$, and
  \item $\forall k \geq 1, d_k \cdot \left(a_k - b^h_k - F_k(x_{k^*})\right) \leq
    \sum_k (b_k-c_k) \cdot \min\bigl(d_k \cdot G^j_k, m_k \bigr)$.
 \end{enumerate}

\end{document}

enter image description here