To which atoms correspond \left and \right in \showlists?

You wrote,

[The status of \left|] cannot be Open ..., because according to the table on p.170 of TeXbook Open cannot be followed by Bin (the table entry is *)

This interpretation of the table on p. 170 of the TeXbook is not entirely correct. See, e.g., @egreg's [who else?!] follow-up comment to me below his answer to the question What's the right space to right the alignment of a right aligned align environment?.

The better way to interpret the meaning of * in the table on p. 170 of the TeXbook is this: If TeX encounters an "impossible combination" -- such as open followed by bin -- then the status of the bin atom is changed to ord.

Let's apply this to \left|-\infty\right|:

  • \left| has status mathopen.

  • - has status mathbin by default. However, because open/bin is an "impossible" combination, the status of - is changed to ord. Observe that the end result is exactly as it should be, since - is a unary operator, not a binary operator, in the formula at hand.

  • \infty has status ord. No problem either, since no extra space is inserted between - and \infty -- as is appropriate for a unary operator.

  • \right| has status mathclose; still no problem.


If you modify your example into

\tracingonline=1 \showboxdepth=\maxdimen \showboxbreadth=\maxdimen

$\mathopen|-\infty\mathclose| \left|-\infty\right|\showlists$\showlists
\end

you get on the terminal

### math mode entered at line 3
\mathopen
.\fam2 j
\mathbin
.\fam2 ^^@
\mathord
.\fam2 1
\mathclose
.\fam2 j
\mathinner
.\left"26A30C
.\mathbin
..\fam2 ^^@
.\mathord
..\fam2 1
.\right"26A30C

which should answer your question: the “change” of the \mathbin atom happens later, when spaces are being inserted during the conversion of the math list to a horizontal list. Indeed, the second \showlists yields

### horizontal mode entered at line 3
\hbox(0.0+0.0)x20.0
\mathon
\tensy j
\tensy ^^@
\tensy 1
\tensy j
\glue(\thinmuskip) 1.66663
\hbox(7.5+2.5)x23.33339
.\hbox(7.5+2.5)x2.77779
..\tensy j
.\tensy ^^@
.\tensy 1
.\hbox(7.5+2.5)x2.77779
..\tensy j
\mathoff

Note that the ASCII code of j is "6A, so in all cases the same glyph is used to realize the vertical bar.