Recursively defined semantic domains [dt-0007]

Suppose we extend our notion of expressions in the \mathcal {C} language with parameterless higher-order procedures: \begin {array}{l} \mathcal {E}\; \Coloneqq \; \cdots \mid \mathsf {proc}\ \mathcal {C}\\ \mathcal {C}\; \Coloneqq \; \cdots \mid x \end {array}

For our denotational semantics, our domains now take this form (\textcolor {blue}{\text {blue}} parts are new vs. Example [dt-0004]), where \uplus denotes disjoint union: \begin {array}{lcl} \mathbf {E} & \triangleq & \Sigma \rightarrow \mathbb {Z}\textcolor {blue}{\ \uplus \ \mathbf {C}}\\ \mathbf {B} & \triangleq & \Sigma \rightarrow \mathbb {B} \\ \mathbf {C} & \triangleq & \Sigma \rightarrow \Sigma \\[0.2em] \Sigma & \triangleq & \mathcal {V} \rightarrow \mathbb {Z}\textcolor {blue}{\ \uplus \ \mathbf {C}} \end {array}

Unfolding the definition of \Sigma , we end up with a recursive equation for the definition of \mathbf {C}: \mathbf {C} \; = \; (\mathcal {V} \rightarrow (\mathbb {Z} \uplus \mathbf {C})) \rightarrow (\mathcal {V} \rightarrow (\mathbb {Z} \uplus \mathbf {C})) Such equations have no set-theoretic solution, even if we weaken equality to mere set isomorphism (here notated \simeq ).

Any kind of higher-order construct leads to such recursive domain equations.

Context

Recursion [dt-000L]

Backlinks

Theorem. Soundness and adequacy of finite completed trace semantics for CCS [pa-0008]

Why we need recursively defined domains [dt-004J]

Related

Definition. Denotational semantics [dt-0001]

Example. Denotational semantics for the \mathcal {C} language (without loops) [dt-0004]

Definition. Power set [dm-0006]

Definition. Set isomorphism [dm-000B]

Definition. The \mathcal {C} Language (without loops) [dt-0000]