I will try to put together the answers/comments so far, and explain my own source of confusion. I am a novice, so please feel free to correct my mistakes, I shall be grateful for the education :)
First, I should more clearly state my "alternate" definition of a relation:
- $\emptyset$ is a relation with arity 0
- Every element of
$\mathcal{P}(D^n) \setminus \emptyset$
is a relation of arity n
The point was to clearly specify the arity of $\emptyset$. This definition exchanges convenience for that extra "clarity". Note: It still allows two 0-ary sets:
$\emptyset$ by definition, and
$\mathcal{P}(D^0)\setminus \emptyset = \{ \emptyset \}$.
This was what @David was saying. This was just a technical exercise, not worth it in practice I realized.
Second, I was sloppy in reading this answer. It says $S^0$ is $\{ \emptyset \}$, but a 0-ary operator maps $S^0$ to an element in $S$, so a 0-ary operator is $\{ (\emptyset, a) \}$ where $a \in S$. This is what @mrp was saying. I suppose this can be extended to define a general 0-ary function on into any non-empty set $A$ as $\{ (\emptyset,a) \}$ for $a \in A$.
Third, because of my sloppiness, I assumed a 0-ary function is $\{ \emptyset \}$ rather than $\{ (\emptyset,a) \}$, equating a 0-ary relation to a 0-ary function.
Fourth, I considered the definition of a 0-ary relation outside the context of model theory, leading to above definition. Inside model theory of course, we separate syntax and semantics. I think what @NoahSchweber is saying is that if we call some symbol a 0-ary function, it is mapped to an object in the domain (hence, 0-ary function symbols are called constant symbols too), while if we call the same symbol a 0-ary relation it should be mapped to $\{ \emptyset \}$ or $ \emptyset$, rather than an object in the domain.
Fifth, I think that calling a 0-ary function a constant symbol is strictly incorrect. When we talk of a constant symbol, we usually have in mind something that maps to an object in the domain, let's say $a$ maps to $a^\mathfrak{M}$. But as we found above, a 0-ary function $a$ should actually map to $\{ (\emptyset, a^\mathfrak{M}) \}$, not $a^\mathfrak{M}$. So perhaps, Wilfrid Hodges' definition is right in this sense (pg. 2 of his big book "Model Theory"). He restricts function and relation symbols to arity $\geq$ 1, and defines constant symbols as a different entity.
Sixth, we could perhaps "simulate" sentential logic in first order logic using 0-ary relations. Namely, having symbols $\{ P_1, P_2, \ldots \}$ be 0-ary relation symbols, mapped to $\emptyset$ if we want them to be false, and to $\{ \emptyset \}$ if we want them to be true, based on @MauroAllegranza's answer. The language would consist of no other symbols. The reason is: $R(a_1, \ldots, a_n)$ is true if the n-tuple $(a_1^\mathfrak{M}, \ldots, a_n^\mathfrak{M}) \in R^\mathfrak{M}$. So, for a 0-ary relation symbol $P_1$, $P_1$ is true if the 0-tuple $\emptyset \in P_1^\mathfrak{M}$ which is true if $P_1$ maps to $\{ \emptyset \}$ and false otherwise. Wikipedia says this too:
Relations of valence 0 can be identified with propositional variables. For example, P, which can stand for any statement.
David yes so it seems like a 0-ary relation would be a constant too right? It's just never mentioned that way.
– NotGauss Jan 13 '16 at 08:29