In the "Non-logical symbols" section of Wikipedia, it states:

A predicate symbol (or relation symbol) with some valence (or arity, number of arguments) greater than or equal to 0. These are often denoted by uppercase letters P, Q, R,...

I believe I understand why predicate symbols, in general, are "non-logical", but correct me if I'm wrong:

A predicate symbol with arity N is also known as a relation symbol and as such, it denotes a non-logical mathematical object -- a class of relationships each between N objects. This class is devoid of any "logical" interpretation, i.e. any notion of truth, prior to a model theoretic interpretation.

That being the case, it would seem that the most parsimonious denotation of a predicate with arity N=0 would also be a non-logical object -- that is it would denote a constant of the language, rather than denoting logical meaning, i.e. truth (again, as it is prior to a model).

However, continuing the quotation:

Relations of valence 0 can be identified with propositional variables. For example, P, which can stand for any statement.

While I understand that function symbols of 0-arity serve as constant symbols in FOL, function symbols seem superfluous, a mere convenience, since their purpose is to denote structured objects and structure obtains through relationships between objects and such relationships are denoted by predicates.

Moreover, Quine goes so far as to render superfluous even the necessity of named constants by appropriately quantifying 1-arity predicates standing in for such names, such as the object denoted by 'a' with the 1-arity predicate 'A':

(∃x)A(x) & ~ (∃x,y)(A(x) & A(y) & ~(x=y) )

...(This identity sign “=” here would either count as one of the simple predicates of the language or be paraphrased in terms of them.)]2

Indeed, Quine goes on to make the point:

The functors, again, are just convenient redundancy; they can all be dropped in favor of appropriate predicates, by an extension of the method by which we dropped names.

  • 2
    I do not follow. A predicate/relation symbol is a function with T/F as values, a 0-arity one is a function with no arguments, i.e. a constant. If you also vary interpretation it becomes a variable (over them).
    – Conifold
    Jun 5, 2019 at 21:16
  • 1
    Yes, in principle function symbols are dispensable. Only predicate symbols are needed. But the practice of using function symbol is very very useful, because it match the usual practice of mathematics : +, x, etc. Jun 6, 2019 at 6:04
  • Aside: while historic focus was on the notions of predicate and relation, there's a really significant modern trend to be interested in calculation, computation, transformations, and similar; where functions and types (or similar) play the central role. And since you get traditional logical notions "for free", the parsimonious thing to do is to take function as the primitive notion rather than relation.
    – user6559
    Jun 7, 2019 at 23:25
  • Hurkyl, one would presume, then, that the notion that functions are degenerate relations has a dual that somehow asserts "relations are degenerate functions". Moreover, one would presume that comparison of the two in terms of parsimony would be concisely and emphatically pointed out in virtually all "modern" texts. Cite? Jun 10, 2019 at 21:57

3 Answers 3


A 0-place predicate does not denote logical truth in the sense of a priori to a model-theoretic interpretation.
For a 2-place predicate like P(x,y), we need an interpretation of the individuals x and y to determine the truth of P(x,y) in the given model. For a 1-place predicate P(x), we need an interpretation of the individual x to determine the truth of P(x) in the model. For a 0-place predicate P(), we don't need to consider interpretation of individuals to determine the truth of P() in the model. But still, we determine the truth of P() relative to a given model. A zero-place predicate P will be evaluated by the model's interpretation function just like predicates of arity n >= 1 are. The interpretation of such a 0-place predicate will, unlike that of properties (n=1) or relations (n>1), not be a subset of the Cartesian product over individuals in the model, but still, it will be non-logical in the sense that its interpretation depends on the model's interpretation function, other than e.g. the interpretation of the logical symbols ⊤ or ⊥ which is constant across interpretations.

Consider the interpretation of P() to be the statement "It is raining" or "It is three o'clock": Clearly, while this statement is either true or false without depending on the denotation of some individual names, it is clearly a situation (~ =model) dependent truth and not an a prio logically true statement - in contrast to logical truths like p -> p or &bot which are true independent of a specific model-theoretic interpretation. A 0-place predicate is not a logical variable just because it is propositional. The fact that we have to interpret it against a model makes it a non-logical symbol.

  • Why would the sentence "It is raining." not be predicated as the arity-1 predicate raining(it), with the arity-0 predicateit denoting the proposition ∃it which, under the appropriate interpretation, is rendered true if it does indeed exist? As Quine seems to point out, the existential quantifier does have a rather singular role to play in reification of names. Jun 5, 2019 at 23:53
  • 1
    Because the "it" in "It is raining" does not really refer to any individual, but is merely inserted as a dummy-subject because in English it happens to be ungrammatical to have sentences consisting of only a verb. In Spanish, the same would be expressed as "Llueve ("Rains"). Rain(x) would be possible, but would rather mean "This is rain". In "It is raining", however, there is no semantic subject, similarly to "It is three o'clock": it's not like there exists someone who is raining; the "it" does not have any denotation in the model, so we would treat the predicate "Rain" as subject-less. Jun 6, 2019 at 8:24

0-place predicates are not logical symbols, their meaning is specified by an interpretation. For any such 0-place predicate, in some interpretations it will come out true, and in other interpretations it will come out false. You called them logical variables, so I'm not sure if this is what you meant.

By the way, since you mentioned the equivalence between 0-place function symbols and constants, there's a really neat trick (in my opinion) that you may be interested in. It may help with your question too, since it removes some of the "ad hoc-ness" to viewing 0-place predicates as propositional variables/sentence letters.

In the same way that constants are unnecessary, and 0-place function symbols will do the job just fine, propositional variables are entirely unnecessary and 0-place predicates will do. Using a very neat little trick, you don't even need the clause that makes 0-place predicates seem like a "special" case by interpreting them as TRUE and FALSE, while predicates of arity n greater than 0 are interpreted as sets of n-tuples. You can interpret 0-place predicates in the same way (as sets of 0-tuples). Here's how:

As you know, we interpret n-place predicates as subsets of the n-ary Cartesian power of the domain of discourse. Therefore, 0-place predicates are subsets of the 0-ary Cartesian power of the domain. For any set, its 0-ary product is the set containing the null set, {Ø}. There are exactly two subsets of this 0-ary power, Ø and {Ø}. So, for any 0-place predicate we have exactly two possible interpretations, the two possible subsets of the domain to the power of zero. How convenient... So when we specify an interpretation for 0-place predicates, we can either interpret it as Ø or {Ø}, and the empty set just is the empty 0-tuple so Ø = <> and {Ø} = {<>}.

We pick the one {<>} one as meaning true, and {} as meaning false. And we interpret a 0-place predicate as {<>} when we want to say it's true in an interpretation, and {} when we want to say it's false in that interpretation.

Here's a quote that may explain it better, from Intermediate Logic by David Bostock, reprinted 2002, the footnotes 11 and 12 on page 83 (he uses Ф to represent predicates, and vertical bars, |...| to represent interpretation):

11 We could avoid a special clause for for zero-place predicates in this way. We may suppose that D0 is the set of 0-tuples that can be formed from the members of D, and that there is just one such 0-tuple, namely 'the empty tuple' (i.e. the empty sequence) which is represented by < >. Then D0 = {< >}, and if |Ф|D0 then either |Ф| = {< >} or |Ф| = { } (i.e. the empty set). For a continuation of this approach, see n. 12.

12 If this clause is intended to include 0-place predicate-letters (cf. n. 11), then in their case it is interpreted as meaning

|Ф|0 = T if and only if < > ∈ |Ф|0

Thus a sentence-letter is true if its value is {< >}, and false if its value is { }. (I am indebted to Dana Scott for this ingenious suggestion.)

  • "You called them logical variables..." Actually, Wikipedia called them "propositional variables" and I took the liberty of saying "logical variables" based on the idea that "Unlike first-order logic, propositional logic does not deal with non-logical objects..." (quoting another Wikipedia article -- this one on "propositional calculus). en.wikipedia.org/wiki/Propositional_calculus Jun 6, 2019 at 4:31
  • "...predicates of arity greater than 0 are interpreted as sets of n-tuples..." I chose the word "class" rather than "set" so as to avoid any interpretation. To quote a paper on Quinian interpretation "So the Tarskian, model-theoretic concepts of logical truth and consequence are intimately bound up with set theory, a fact that Quine finds spurious. According to Quine, in defining such a basic concept as logical truth, we should try to get along without sets as far as possible." homepage.univie.ac.at/guenther.eder/Boolos%20vs%20Quine.pdf Jun 6, 2019 at 4:42
  • @JamesBowery (Just to make sure we're on the same page, logical variables = propositional variables = sentence symbols, right?) In first-order logic, when interpreting closed formulas, logical symbols (connectives, quantifiers, variables, and optionally identity and punctuation) are symbols whose meaning remain the same across all interpretations. Non-logical symbols (predicates, functions) are symbols that require an interpretation to determine the meaning. Truth values are neither logical or non-logical in the sense describes above, since they are not symbols of the language. Jun 6, 2019 at 16:20
  • @JamesBowery Propositional variables are non-logical as much as predicates, since they need to be "manually" specified (by an interpretation) whether they are true or false; their meaning isn't fixed as true or false by the logic. Truth and falsehood are just part of the machinery we use to do the specifying, just like with relations/tuples/functions, etc. They are what the non-logical symbols name. It's like in propositional logic, where there are no predicates. Propositional variables are non-logical because the actual truth value they denote changes from interpretation to interpretation. Jun 6, 2019 at 16:25
  • @JamesBowery I hope I'm understanding your question correctly, so please do let me know if I'm not! Jun 6, 2019 at 16:44

The OP notes that Wikipedia's description of the non-logical symbols of first-order logic include 0-arity predicates and functions. The 0-arity predicates are used for propositional variables while the 0-arity functions are used for constants.

It is worth nothing Wikipedia's view of what non-logical symbols are:

The non-logical symbols represent predicates (relations), functions and constants on the domain of discourse.

The constants would represent individuals from the domain of discourse, so having constants as non-logical symbols makes sense. However, it is hard to see how propositional variables relate to the the domain of discourse. They would more likely be logical symbols rather than non-logical symbols.

Not all presentations of the language of first-order logic use 0-arity predicates and functions. The definition of a first-order language at the Open Logic Project does not use them. The set of non-logical symbols contain the following: (page 145-6)

a) A denumerable set of n-place predicate symbols for each n > 0

b) A denumerable set of constant symbols

c) A denumerable set of n-place function symbols for each n > 0

The constant symbols are specified separately and there are no 0-arity predicates. They also mention that first-order languages only "sometimes" have function symbols.

The OP writes,

Moreover, Quine goes so far as to render superfluous even the necessity of named constants by appropriately quantifying 1-arity predicates standing in for such names, such as the object denoted by 'a' with the 1-arity predicate 'A':

The constants in this list may be "convenient redundancy".

The question in the title involves more than redundancy. It may be that 0-arity predicates or propositional variables do not belong in the non-logical symbols list.

Open Logic Project https://openlogicproject.org/ Retrieved on June 6, 2019 at http://builds.openlogicproject.org/open-logic-complete.pdf

Wikipedia contributors. (2019, May 23). First-order logic. In Wikipedia, The Free Encyclopedia. Retrieved 19:34, June 6, 2019, from https://en.wikipedia.org/w/index.php?title=First-order_logic&oldid=898492463

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .