See the images below, from Model theory: An Introduction, by David Marker: In the proof of Lemma 2.1.7 the canonical model is defined using equivalence classes of constant symbols of $\mathcal{L}$, where the relation $\sim$ is defined by $c\sim d$ iff $T\vDash (c=d)$.
I am trying to understand why on page 36, the witness property is actually needed to demonstrate that $f^{\mathcal{M}}$ is well defined (and similarly a paragraph below regarding terms).
Focusing on functions, I wonder why he does not define $f^{\mathcal{M}}(c_{1}^{*},\ldots,c_{n}^{*})=(f(c_{1},\ldots,c_{n}))^{*}$, as it is clear this would be well definied because if $(c_{1}=d_{1}),\ldots,(c_{n}=d_{n})\in T$ then $(f(c_{1},\ldots,c_{n})=f(d_{1},\ldots,d_{n}))\in T$. (A similar argument can be made for the paragraph below regarding terms)
I have two questions:
- Am I missing something? I.e. is the witness property really needed?
- If instead of using the constants symbols of $\mathcal{L}$ to define the canonical model we use the variable-free terms of $\mathcal{L}$ (the relation $\sim$ being defined the same as above, but for variable-free terms), is there any advantage? In An Introduction to mathematical Logic, by R. Hodel, the canonical model is defined this way.


For question 1: $f(c_1,\dots,c_n)$ is not a constant symbol, so $(f(c_1,\dots,c_n))^*$ is meaningless.
As you suggest in question 2, you could instead define an equivalence relation on the set of all terms with no free variables and define the elements of the model to be equivalence classes of terms. Then you would not need to use the witnessing property to define the interpretations of the function symbols: $f(t_1^*,\dots,t_n^*) = (f(t_1,\dots,t_n))^*$ works just fine.
Is there any other advantage? Not really: the point is that the witnessing property ensures that every equivalence class of terms contains a constant symbol. Indeed, the model built on constants is isomorphic to the model built on terms. It's really a matter of taste whether you find it conceptually simpler to work with constants or arbitrary terms.