Prof Eric Hehner's <theory of bunches> (think of t...
# thinking-together
n
Prof Eric Hehner's

theory of bunches

(think of the comma in
x,y,z
as a binary operator on bunches) seems very foundational and delightfully elegant. Once you see it, you can't see but think that the way we have handled collections of various kinds (sets, strings, tuples) is ad-hoc and not systematic. What if we had notation that supported all these structures? 🤔
🍰 5
❤️ 1
a
Added to my reading bag! I loved The Hunt for the Missing Data Type and this seems like it’s in a similar vein? Data structures that are surprisingly distant in implementation space given how near they are in conceptual space?
k
n
@Kartik Agaram It's in this book (chapter 2): http://www.cs.toronto.edu/~hehner/aPToP/
k
Yes! I read parts of that book a couple of years ago. But didn't have the link handy on my phone earlier.
g
Watched the one presentation. He starts with apparently reinventing Simple Set Theory: set theory where sets can’t contain sets as elements. To be fair, I’ve only ever seen SST discussed among database theorists. He says that Bunches can contain anything, but then gives axioms for operations on bunches of numbers. I guess there will be separate axioms for bunches of characters and strings, but this is all starting to seem like it’s rather messy and not at all a simplification of set theory. Or am I missing something?
k
@Guyren Howe Do you mean this slide? What are you seeing here that is specific to numbers? The slide with bin, nat, etc. is just giving names to some bunches, those aren't axioms.
g
Image from iOS.jpg
n
Yeah, a "bunch" is just a set without packaging or nesting. I had never thought of this as a structure on its own. He doesn't explore it further but it helped me draw the diagram where a sequence is to a bunch what a tuple is to a set, or a list is to a tuple what a string is to a sequence etc. The names in red color (for eg: a "pack" could be a mutable bag/multiset) are simply some names I made up - wishing that these were standardized in all CS / programming literature. We can perhaps add another dimension for homogenious types v/s mixed types: for eg: a "multivector" could be a tuple of mixed types:
{scalar, vector, bivector}
etc.
image.png
🤣 1
❤️ 1