# [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:

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.

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}