Denotational semantics A relatively straightforward semantics for the language is the
Scott model. In this model, • Types are interpreted as certain
domains. • [\![ \textbf{nat} ]\!] := \mathbb{N}_{\bot} (the natural numbers with a bottom element adjoined, with the flat ordering) • [\![ \sigma \to \tau \, ]\!] is interpreted as the domain of
Scott-continuous functions from [\![\sigma]\!] \, to [\![\tau]\!] \,, with the pointwise ordering. • A context x_1 : \sigma_1, \; \dots, \; x_n : \sigma_n is interpreted as the product [\![\sigma_1]\!] \times \; \dots \; \times [\![\sigma_n]\!] • Terms in context \Gamma \; \vdash \; x \; : \; \sigma are interpreted as continuous functions [\![\Gamma]\!] \; \to \; [\![\sigma]\!] • Variable terms are interpreted as projections • Lambda abstraction and application are interpreted by making use of the
cartesian closed structure of the category of domains and continuous functions •
Y is interpreted by taking the
least fixed point of the argument This model is not fully abstract for PCF; but it is fully abstract for the language obtained by adding a
parallel or operator to PCF. == Notes ==