Bunch theory: working notes on applications, axioms and models
Bill Stoddart, Frank Zeyda, Steve Dunne

TL;DR
Bunch Theory introduces a radical reformulation of set theory that separates collection and packaging, enabling reasoning about non-determinism, the empty entity, and complex program semantics with enhanced expressivity.
Contribution
It extends set theory with bunches, allowing reasoning about non-determinism and the empty entity, and demonstrates their application in program semantics and model validation.
Findings
Bunches enable reasoning about non-determinism and the empty entity.
The theory is extended and validated within an axiomatisation of set theory.
Application to program semantics demonstrates increased expressivity.
Abstract
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Advanced Software Engineering Methodologies · Logic, Reasoning, and Knowledge
