## A new look at multimaps

I've just finished a small article on multimaps which (among other things) defines an interesting recursive definition of numerals. Here is the abstract:

Ordinary maps must contain only single occurrences of their domain values, while multimaps may contain multiple occurrences of both domain and range values.
In this short article we relax the occurrence type to be of any type - if such type obeys some kind of number law. Because of this relaxation and because multimaps behave like numbers, multimaps can be the occurrence type of other multimaps.
We explore this idea with some sketchy code snippets and finish with a recursive multiple of nothing.

## Comment viewing options

### Why generalize multiplicity here?

Hmm. What's your goal with generalizing the multiplicity of a multimap entry? Your multimaps used to be sets of entries, and now they're not just generalized to multisets or weighted sets, but to sets whose weights can even be more multimaps. Where is this journey going?

In my own pursuits, I tend to reach for multisets for one of two reasons: Either I can't find a good notion of equality to use for sets, or I want the multiple occurrences to apply independently in some aggregate computation. You don't lack an equality operator; in fact, your approach presumably relies on equality in order to find matching occurrences and combine their multiplicity objects. So do you have some particular kind of weighted aggregation in mind instead?

### Abstract Chemical Machine

Indeed, I'm reaching for weighted aggregation with a hint towards biological computing. For instance, the abstract chemical machine (CHAM) relies on (non-deterministic) multiset rewriting, which can be easily extended to multimap rewriting.
I'm not sure where my journey will lead me to next, but I do like to think about this kind of generalisations. At least it has given me a nice notation for every conceivable type of container.

### Look at hybrid sets too

They have a rather interesting mathematics; my colleagues and I have used them for symbolic domain decompositions.

### binary relations?

I can follow your paper to some extend. There are claims that some operations are improved from exponential to linear complexity. Is that because of using hybrid sets, or are hybrid sets just a convenient abstraction?
Also, how easy is it to extend the definition of piecewise-defined functions to piecewise-defined binary relations?

### Relations

Regarding extending to relations, I have no idea, I never thought about it until now. I think the answer is 'it depends'; it would depend on what kind of operations you are doing to those relations. Note that the same was already true of functions: some operators (like +) work smoothly, while others (like *) required use to work considerably harder.

The exponential improvement is in terms of representation size: basically we can represent an exponential number of cases with a linear number of 'pieces'. To have this make sense, tracking multiplicity is crucial. I don't think that integers are necessarily the only way to track multiplicity, but they are definitely the most obvious way.

### Wheels of multimaps

Regarding integers, I've just finished a post that introduces wheels as a multiplicity type. Wheels are like rational numbers but allow the denominator to be zero. This means that all multimap operations (including inverse) can be made total.