To properly ask my question, I need to set up some definitions of whose I don't know, if I use the words in the usual sense:
Let $\mathcal{L}$ be a formal language of first-order predicate logic with equality. With the word theory, I mean a collection of formulas in that language, that is
- closed under the usual rules of inference, so every formula, that can be derived from the theory is already a member of it.
- consistent, so the formula $\top \leftrightarrow \bot$ is no member of it.
I will call a theory $T$ in the language $\mathcal{L}$ complete iff for any sentence $A$, that can be formed in the language $\mathcal{L}$, one of the two sentences $$ A \leftrightarrow \top \qquad \text{or} \qquad A\leftrightarrow \bot$$ is a member of $T$.
Note that a complete theory contains a formula like $\exists x : A(x)$, if and only if there is a term $t$, such that it contains the formula $A(t)$ (so the $\exists$-quanitifier has its intended "meaning").
For some theory $T$ in the language $\mathcal{L}$, a syntactic model for $T$ consists of
- a language $\mathcal{L}'$, that contains the same function symbols, relation symbols and variables as the language $\mathcal{L}$, contains every constant symbol of $\mathcal{L}$ but may contain even more constant symbols.
- and a complete theory $T'$ in the language $\mathcal{L}$', that contains every sentence of $T$, when interpreted as a sentence in the language $\mathcal{L}'$.
For some theory $T$ in the languahe $\mathcal{L}$, a set model for $T$ is an $\mathcal{L}$-structure, satisfying each formula of $T$, interpreted in standard semantics (just the usual definition of a model here).
I observe now, that there is an "almost-bijection" between syntactic models and set models for a theory:
- Let $M$ be a set model for the theory $T$. For any member $x \in M$, add a constant symbol $\mathsf{c}_x$ to the language of $T$ and let $T'$ be the collection of all sentences in the enhanced language, that are true in $M$ (interpreted via standard semantics).
- Let $(\mathcal{L}',T')$ be a syntactic model for the theory $T$ in the language $\mathcal{L}$. Define an $\mathcal{L}$-structure $M$ by building equivalence classes of $\mathcal{L}'$-terms containing no variables, where two terms $t,s$ are equivalent, if the equation $s=t$ is a member of $T'$. Interpret the function symbols in the obvious way. Now for every $n$-ary relation symbol $R$, define the coresponding set theoretical relation as $$ \{ (t_1, \dots , t_n) \in M^n \mid ( R(t_1, \dots ,t_n) \leftrightarrow \top) \in T' \} $$ Thus, we get a set model for $T$.
These two operations are almost inverse, but the operation $\{\text{syntactic models}\} \to \{\text{set models}\} \to \{\text{syntactic models}\}$ adds a constant symbol for each equivalence class of constant terms.
It seems to me that the notion of syntactic model can fully replace set models. Also every prove of Gödel's completeness theorem, that I have seen, goes on to construct a syntactic model first and then transform it into the set model. It follows that the completeness theorem still holds, if we replace set models by syntactic models.
Now comes my question: Why do we even go that detour around set theory, when defining semantics? Why don't we only work with syntactic models?
The advantage of syntactic models is, that they don't stress the ontology more than necessary. If you believe in strings and the notion of formal derivability, it's not hard for you to belive in syntactic models as well. You don't need to belive in or even think of general power sets, functions being defined as sets of Kuratowski pairs, uncountable infinities or the notion of cardinality at all.