Solution (source code)

= Solution

The <set> of closed-term values is nonempty because the <first-order language> has a constant. It contains the value of every constant. If $f$ is an $r$-ary <function symbol> and $t_1,\ldots,t_r$ are <closed terms>, then
$$
f^{\mathcal A}(t_1^{\mathcal A},\ldots,t_r^{\mathcal A})
=(f(t_1,\ldots,t_r))^{\mathcal A},
$$
which is another closed-term value. Hence the <set> is closed under every operation. Restrict the operations and relations of $\mathcal A$ to it; this defines a <substructure> $\mathcal B$ whose carrier is exactly the specified <set>.

Part (i) now applies to the universal <first-order theory>, giving
$$
\boxed{\mathcal B\subseteq\mathcal A,\qquad\mathcal B\models T.}
$$
It is the <substructure> generated by the <first-order language>'s constants, often called the <ground-term substructure>. The source's constant-symbol assumption ensures its nonemptiness, even when no other elements can be generated.