In his book A Practical Theory of Programming, Eric Hehner proposes and applies a remarkably radical reformulation of set theory, in which the collection and packaging of elements are seen as separate activities. This provides for unpackaged collections, referred to as bunches. Bunches allow us to reason about non-determinism at the level of terms, and, very remarkably, allow us to reason about the conceptual entity nothing, which is just an empty bunch (and very different from an empty set). This eliminates mathematical gaps caused by undefined terms. We compare the use of bunches with other approaches to this problem, and we illustrate the use of Bunch Theory in formulating program semantics combining non-deterministic, preferential, and probabilistic choice to provide a guarded command language whose exceptional expressivity we illustrate with a short case study. We show how an existing axiomatisation of set theory can be extended to incorporate bunches, and we provide and validate a model.
翻译:Eric Hahner在他的著作《编程实用理论》中提出并应用了一套非常彻底的重塑理论,其中将元素的收集和包装视为单独的活动。它提供了无包装的收藏,被称为群。 集体让我们在术语上有理由解释非确定主义,非常明显地让我们能够解释概念实体,这仅仅是一帮空的(与一组空的差别很大),这消除了由未定义的术语造成的数学差距。我们比较了组群的使用和其他方法来解决这个问题,我们用邦奇理论来说明如何使用编程语义,将非非非确定性、优惠性和概率性结合起来,提供一种受保护的指令语言,我们用一个简短的案例研究来说明这种语言的特殊表达性。我们展示了如何扩大现有的设定理论的分解式以包含群,我们提供并验证一个模型。