Construction
We work in . For any nice term sequence , define the mapping \alpha_\trmseq{F} recursively as follows.
-
for each constant other than ;
-
if is defined, otherwise;[]{#tr-ex label=“tr-ex”}
-
for each variable ;
-
whenever and ;
-
;
-
whenever and .
It is well known that carries an applicative structure , where . Thus a domain over is essentially a nice term sequence. More exactly, for each nice term sequence there is a domain that assigns to whenever is defined and is undefined otherwise. In view of this correspondence, I notate and speak of domains over as if they were nice term sequences. Of course, nice term sequences that are mutual permutations of one another correspond to the same domain.
We define a typed family of equivalence relations on by setting Intuitively, then, means that and are provably equivalent in H, and remain so under arbitrary translations. It is easy to see that is an applicative congruence of our term applicative structure . We then let be the quotient of through .
To obtain a substitution structure, we can lift the mappings to equivalence classes of terms. Write for the equivalence class of under . A domain over is then the result of lifting a domain over to equivalence classes under . This justifies notating domains in as , once more slightly abusing notation.
To each such domain we assign a substitution by setting It is not difficult to verify that and are identical whenever .
It is then straightforward to check that is a QSS, where with function composition, and is function application.
Limitations
This construction cannot be continued to build a model for a language with domain specifiers, since it is not rich enough to interpret syncategorematic quantification.