We give extensional and intensional characterizations of nondeterministic functional programs: as structure preserving functions between biorders, and as nondeterministic sequential algorithms on ordered concrete data structures which compute them. A fundamental result establishes that the extensional and intensional representations of non-deterministic programs are equivalent, by showing how to construct a unique sequential algorithm which computes a given monotone and stable function, and describing the conditions on sequential algorithms which correspond to continuity with respect to each order. We illustrate by defining may and must-testing denotational semantics for a sequential functional language with bounded and unbounded choice operators. We prove that these are computationally adequate, despite the non-continuity of the must-testing semantics of unbounded nondeterminism. In the bounded case, we prove that our continuous models are fully abstract with respect to may and must-testing by identifying a simple universal type, which may also form the basis for models of the untyped lambda-calculus. In the unbounded case we observe that our model contains computable functions which are not denoted by terms, by identifying a further "weak continuity" property of the definable elements, and use this to establish that it is not fully abstract.
翻译:我们给出了非确定性功能程序的延伸和强化定性:作为保持两极之间功能的结构,以及作为测算这些功能的定单具体数据结构的非确定性顺序算法,我们给出了非确定性功能程序的扩展和强化性描述。一个基本结果证明,非确定性程序表态的扩展和强化等同,展示了如何构建一种计算给定单体和稳定功能的独特序列算法,并描述了符合每个顺序连续性的顺序算法条件。我们通过界定与受约束和不受约束的选择操作者相接续功能语言的可能和必须测试的注释性语义来加以说明。我们证明,尽管非连续性非连续性地检验非确定非确定性非确定性程序,但这些算法是计算性功能的完全性。在受约束的案例中,我们证明我们连续的模型与可能完全抽象地有关,并且必须通过确定一个简单的普遍性类型来验证。这也可能构成非类型羊羔定量计算模型模型的模型的基础。在未受约束的情况下,我们发现这些参数是计算不连续性的,我们用模型来确定“完全的”的“确定性要素。