\nothing, \varnothing and \emptyset

This is probably a question about TeX's history.

Why there is no command \nothing? If there's no \nothing, why \varnothing is called \varnothing instead of \nothing?

If I try to compile a document with \nothing, I get the error "! Undefined control sequence."

The command \varnothing is defined by the amssymb package, and \emptyset is defined by TeX itself, but neither defines \nothing. Is \nothing defined by something?

I contacted the author of cjw-latex, Colin J. Wynne. He does not remember why he wrote that line, since it was more than 20 years ago. But he said that

my best working hypothesis is that an earlier version of AMS-(La)TeX did, indeed, use the sequence \nothing as an alias or substitute for \emptyset. AMS-(La)TeX did, indeed, come up with their own names for a few things, and quite a few custom symbols. Given that I preferred the \varnothing, I can assume most other folks did, too, and they eventually dropped their \nothing, but left \varnothing because that was the control sequence most people were using.

Currently I'm hoping something can be discovered by perusing ftp://ftp.tug.org/historic/ Unfortunately, the oldest version of AMS-TeX they have is from 1993, so we can't test Colin's theory. They also have a LaTeX from 1983, which defines \emptyset but does not define \nothing.

Since this turned out to be such a hard question, I'm putting a bounty on it.

-
\varnothing is a symbol for an empty set. I guess this could have been called \nothing, but there is probably a good reason that it isn't. –  Peter Grill Sep 15 '11 at 4:19
\varnothing comes from amssym.tex, which was the analog of amssymb for the old amstex package which ran on top of Plain TeX. Maybe @barbara can trace the history better than me, but I presume that at the times there were people who used \nothing for the empty set, maybe in some specialized (and now defunct) format. Or just they didn't want to take over a good name. –  egreg Sep 15 '11 at 9:09
Supporting the historical angle, there is at least one instance of a LaTeX macro set, brought forward from Plain TeX, swapping \nothing and \varnothing, seecjw-latex documentation(no‌​t included in TeX Live): 436 \swapdef{\nothing}{\varnothing}, implying that there was another package at that time that defined \nothing or that it was expected to be defined locally. –  mas Sep 15 '11 at 9:57
@egreg -- actually, since ams-tex predates latex itself by at least a year or two, and ams-latex by several more, amssym.tex was the original and amssymb should be considered the analog. (but i'm being nit-picky.) –  barbara beeton Sep 15 '11 at 18:38
@N.N. -- i've just checked an on-line version of amssym.sty with a datestamp of 28-feb-1990. it has only \varnothing. i have also checked a copy of the second printing of "joy", printed with corrections 1986; it has only \varnothing, and since i also have the original errata/changes list (which i compiled), which shows no evidence of a change to this symbol, i am completely certain that \nothing never existed in an ams package distribution. it may have been used informally by some individuals, but not with "official" ams blessing. –  barbara beeton Sep 24 '11 at 19:09

not a definitive answer, but perhaps a reasonable hypothesis ...

\varnothing is shorter than \varemptyset. mathematicians aren't generally great typists.

although \varempty is even shorter, \empty, while not a primitive, has quite a different meaning, and a "var" of that would only be confusing.

"the joy of tex", while it mentions both, has nothing useful to say on the matter (sorry, must be on auto-pun this morning), and in fact doesn't even point out that they have the same meaning.

the control sequence \nothing does show up in cjwmath.sty, where it is equated to \varnothing, and there is a further alias, \leer, for \nothing. i didn't find this name anywhere else in any package on tex live.

so the reason, to me, is lost in the mists of time.

i suppose i could ask mike spivak.

i have consulted the documentation for the composition system used at ams prior to tex. the name given to the slashed circle is "null set", for which a "short name", empty, was assigned for use by input keyboarders. (the system was highly encoded, and the canonical code was *yo; keyboarders were free to use whichever form they preferred, i.e., more easily remembered.) so the term "nothing" was not in use at ams in any relation to this symbol prior to the creation of the ams symbol fonts.

what would be in those fonts was defined by a committee; i've sent an inquiry to one of the few surviving members of the committee in the hope that he remembers.

i did ask mike spivak, and he doesn't remember, except that he's pretty sure he wasn't responsible.

i have found the definitive release notice of the original ams extra symbol fonts in the july 1985 issue of tugboat. these were the msxm and msym fonts, and initially (and erroneously) referred to as "euler", a lapse corrected in an update later that year. the name \varnothing is used, however without any commentary on choice of names. (and, unfortunately, the page in the scan of the update that would show this symbol is missing; but i've confirmed its presence in the paper copy on my bookshelf. i'll try to get the posted copy on the tugboat web site corrected.)

-
it is shorter by only one character. and it'd be the only example I know of command whose var version has a different name than the normal version. so, I like greg's hypothesis better. –  Mateus Araújo Sep 15 '11 at 15:18
Sorry to be so daft, but I was under the impression that Michael Spivak was the sole author of AMS-TeX; so you're saying that he didn't chose the name \varnothing, nor remembers who chose it or why. –  Mateus Araújo Sep 24 '11 at 17:46
michael spivak is definitely the author of ams-tex, but the content of the ams symbol fonts was determined by a committee that michael wasn't on. michael did include the results of that committee's work in ams-tex as part of a unified package directed toward composition of ams journals. –  barbara beeton Sep 24 '11 at 17:57
the earlier issue of tugboat has \varnothing right there on page 62; you're referring to the later edition, I assume. –  Mateus Araújo Sep 25 '11 at 3:15
yes, i'm referring to the later issue. i've contacted the tug webmaster with an offer to rescan the article, or at least the two missing pages, and am awaiting a response. –  barbara beeton Sep 25 '11 at 12:03

In my comment on Sept 15 I mentioned cjw-latex as part of the historical context and this was developed both by Barbara Beeton in her interesting answer later that day and a subsequent amendment to the question. Despite looking through a heap of dusty old TeX books I have not found other non-local use of \nothing in TeX.

A related question: Nice-looking empty set? discussed the various shapes of the empty set glyph and this led me to consider other options given the history of the symbol in mathematics.

Prior to Bourbaki the empty set was denoted by {} and that is still sometimes used (e.g. see the Wikipedia and Proofwiki articles on the empty set).

The empty set symbol proposed by Bourbaki was the Norwegian capital O with slash (see "The apprenticeship of a mathematician" by André Weil, English translation,p114 on Google Books also cited in the section on "The null set symbol (Ø)" in Earliest Uses of Symbols of Set Theory and Logic. This implies that, for those wanting authentic Bourbaki group notation, the empty set symbol could be \O (see the TeXBook, p52, on accents where the Scandanavian slashed-O is defined as \O but not proposed for the empty set notation). So, whilst I have not yet found an authority for it, it seems reasonable that \O could be considered as \nothing and the later \varnothing its alternative. In practice there would be no reason to formally define \nothing for this purpose as \O is shorter and, arguably, as meaningful, especially for those used to the Bourbaki notation and its origin. (On a lighter note, it could also avoid confusion between \nothing and \notin in casual conversation :-)

For comparison, the four simple candidates for 'nothing' or the 'empty set' (\phi and \Phi are not candidates) are shown below with \not= to ease comparison of the angle of the empty set slash (a concern for some users), where appropriate.

\documentclass[12pt]{article}
\usepackage{amssymb}        % for \varnothing
\begin{document}
\begin{enumerate}
\item $S \not= \{\}$

\item $S \not= \O$

\item $S \not= \varnothing$

\item $S \not= \emptyset$

\end{enumerate}
\end{document}


In practice there has been overlap between the use and definitions of these symbols, in addition to user preferences for what the empty set notation should be.

For example, the definition of \varnothing in msbm.etx

\setslot{emptyset}
\comment{The symbol $\varnothing$'.}
\endsetslot


This has been seen even in "The LaTeX companion". The following extract is a letter to the editor of UK-TUG magazine Baskerville Vol 5 No 2 from David Carlisle:

The comments on the inadvisability of redefining user level commands are valid, but the example in question,\emptyset in the AMS packages, is just due to an error in the first printing of The LaTeX Companion (as noted in compan.err in the LaTeX distribution.) The ‘amssymb’ package does not redefine \emptyset. It still looks like a 0 with a line through it. The same glyph as in plain TEX. \varnothing is a slashed-circle.

Actually this raises an interesting side issue. The error in the Companion printing was due to an error in the styles for Lucida fonts. (The Companion does not use the cm or AMS fonts). As Lucida does provide both glyphs, it was simply an error to have the names interchanged, but consider a hypothetical situation of a math font family that only provides one slashed-closed-curve. How visually dis-similar to ∅ may it be before it becomes unacceptable to assign it to the command \emptyset? For text fonts large differences are acceptable. ‘Q’ does not look much like ‘Q’ [in a different font] but both are accessed by ‘Q’ and any differences are accepted by the reader as differences in font design. In mathematics the situation is not at all clear...

This was in response to an article Maths in LaTeX: Part 3, Different Sorts of Mathematical Object by R A Bailey in the previous issue.

The relevant lines from compan.err are

-* Page 219, 222 (DRo,FMi)
The \varnothing and \emptyset do show the wrong
character, ie need exchanging.


Finally, there are some occurrences of \nothing in TeX Live 2011, connected with Cyrillic fonts:

$grep -r '\\nothing[^a-zA-Z]' * 2011/texmf-dist/doc/fonts/ec/tcstdedt.tex:\def\dofonttest#1[#2]#3\nothing{% 2011/texmf-dist/doc/fonts/ec/tcstdedt.tex:\def\dofont{\doentry\expandafter\dofonttest\fontsize[]\nothing\Dofont} 2011/texmf-dist/doc/fonts/ec/ecstdedt.tex:\def\dofonttest#1[#2]#3\nothing{% 2011/texmf-dist/doc/fonts/ec/ecstdedt.tex:\def\dofont{\doentry\expandafter\dofonttest\fontsize[]\nothing\Dofont} 2011/texmf-dist/source/fonts/lh/tex/cfstdedt.tex:\def\dofonttest#1[#2]#3\nothing{% 2011/texmf-dist/source/fonts/lh/tex/cfstdedt.tex:\def\dofont{\doentry\expandafter\dofonttest\fontsize[]\nothing\Dofont} 2011/texmf-dist/source/fonts/lh/tex/cod-edt.tex:\def\docodetest#1[#2]#3\nothing{%$

-
So that brings us to the second hypothesis of Colin: "The first is that I mistakenly assumed that, since AMS-(La)TeX defined \varnothing, there must have been a \nothing (likely an alias for \emptyset). Given my \swapdef is all done using \let commands, the problem would not be noticed until processing the document, and since I never used my redefined \varnothing it never showed up." –  Mateus Araújo Sep 24 '11 at 17:49
But your answer raises the question: who came first: \0 or \emptyset? –  Mateus Araújo Sep 24 '11 at 17:50
\emptyset was named by knuth and included in the original tex command set. i have verified this in the original (pre addison-wesley) tex manual. knuth never defined a command named with a backslash and a single digit; he left those open for ad hoc use. and he would never have used \O` (the slashed cap O) for the null set, though he also defined that for use in scandinavian names. –  barbara beeton Sep 24 '11 at 18:03