# Bug in arrays within display-math mode

In this recent answer, I needed to define a set with several defining conditions, as follows:

$$G(p)=\left\{f:S\to S\left|\, \begin{array}[l]\bullet f\circ p=p\circ f=f\\ f\mid_{\operatorname{Im}p}:\operatorname{Im}p\to \operatorname{Im}p\text{ is bijective}\end{array}\right\}\right.$$

The code includes

\begin{array}\bullet f...\end{array}

As you can see, the $\bullet$ isn't displayed. But if you remove it, then the next object (the f) is swallowed: $$G(p)=\left\{f:S\to S\left| \, \begin{array} f\circ p=p\circ f=f\\ f\mid_{\operatorname{Im}p}:\operatorname{Im}p\to \operatorname{Im}p\text{ is bijective}\end{array}\right\}\right.$$

It is a minor detail, but it could be an indicator of a problem at a larger scale. Or am I doing things wrong?

• It's the first thing after \begin{array} that gets removed, so put anything after it and then the rest should be fine. One may also opt to use align instead of array: \begin{align}&f\circ p=p\circ f=f\\&f\mid_{\operatorname{Im}p}:\operatorname{Im}p\to \operatorname{Im}p\text{ is bijective}\end{align} works fine. – Simply Beautiful Art Aug 14 '18 at 17:22
• The first thing after \begin{array} is supposed to be a template for the array (see here), and is supposed to give the alignment and vertical line styles for the array. This is not a bug, it is you not giving the proper parameter to the environment, so it takes the next thing and tried to interpret that as a template. It ignores anything but c, l, r, |, and :. Since you had two l in \bullet, that says to use two left-justified columns. – Davide Cervone Aug 14 '18 at 21:43
• @Davide Oh I see. Thanks. Actually I first had included alignment styles, but using brackets [...] which resulted in them not working properly - so I just removed them. Thanks again. – Arnaud Mortier Aug 14 '18 at 22:12