Language
A language L is a 4-tuple L=L(C,R,F,n) where:
C is a
set of so-called
constant symbols
F is a
set of so-called
function symbols
R is a
set of so-called
relation symbols
n:R∪F→N is an arity
function
nb. Instead of writing
n(x) we usually write
nx.
The symbols of the language have no intrinsic meaning. A language may better be called a “vocabulary”. No guarantees are made about the cardinalities of these sets.
Ex. The vocabulary of groups is {e,×,⋅−1}. For fields is {0,1,+,×}. For arithmetic is {0,1,+,×,≤}. For set theory is just {∈}.
One could theoretically treat constants as arity-zero functions, and remove the need for constant symbols, and could treat functions as constrained relations, and remove the need for functions. Then a language would consist only of a set of relation symbols with intrinsic arities. We keep these things around for convenience. There’s a bunch of good writing about this on mathematics.stackexchange if you’re curious.
Note: I’m really bothered by this definition. It seems extremely inflexible. Functions, for instance, are treated as second-class (ie, meta-) citizens. Note that for a function symbol f, although f(a) is a term, f is not a term! Of course, if we’re working in a language which itself has functions as citizens, we can have a constant symbol cf representing a function, and cf is a term.
Similarly, it strikes me as strange to have constant symbols at all. May they not be replaced with existence axioms? Instead of having a constant symbol ∅, we could have the axiom (∃z∀x)(¬(x∈z)), right?