A multiset can be viewed as type of set, or even as a proto-set.
The only difference between a set and a multiset can be seen when considering multiplicity.
In the case of a set multiplicity has no meaning, i.e
`{a,a}={a}`

, but in the case of a multiset it does.

A multiset over `S`

is a function `f:S→N`

where `f(x)`

is called the multiplicity, i.e. how many times the element `x`

occurs in the multiset.
If `f(x)=i`

then each of the `i`

`x`

elements is called an occurrence.
The elements of `f`

are given by `D(f)`

which is defined as

` ````
D(f) = {s∈S|f(s)≠0}
```

The multiset `f`

is called finite if `D(f)`

is finite.
The number of elements of a finite multiset is given by

` ````
|f| = Σ
```_{x∈D(f)}f(x)

Sometimes multisets are written in a set-like notation as shown below:

` ````
{{1,1,0,99,99,99}}
```

The usual set operations (union, intersection, and difference) can be used:

` ````
{{1,1,0,99,99,99}} ∪ {{0,3,3}} = {{1,1,0,0,3,3,99,99,99}}
```

Doets, Kees. *From Logic to Logic Programming.* MIT Press, 1994.

Copyright © 2014 Barry Watson. All rights reserved.