mse.cam - a CAMILA library for multisets
mseMax(m:A->NAT,n:A->NAT):A->NAT
mseCup(m:A->NAT,n:A->NAT):A->NAT
mseDiff(m:A->NAT,n:A->NAT):A->NAT
mseExMul(m:A->NAT,n:NAT):A->NAT
mseCUP(l:(A->NAT)-seq):A->NAT
mseMul(m:A->NAT,n:A->NAT):A->Nat
mseSumRan(f:A->NAT):NAT
mseWam(ms:NAT->NAT,p:NAT):NAT
msePerc(ms:A->NAT):A->NAT
mseUnif(ms:A->NAT,ff:A->A):A->NAT
mseCupSeq(l:(A->NAT)-seq,n:(A->NAT)-seq):(A->NAT)-seq
mseCUPSEQ(l:((A->NAT)-seq)-seq):(A->NAT)-seq
mse2TeXbarenv(ms:A->NAT):TeX
This library provides an algebra of multisets, that is, of
the F(X)=X->NAT
data type functor,
which can be regarded as an X-dimensional semi-vectorial space.
Multisets are very useful devices in formal specification
which stand half-way in between the X-set and X-seq abstractions.
The informal semantics of the operators are as follows:
mseMax(m,n)
is the monoidal extension of NAT max to multisets.
mseCup(m,n)
is the multiset union of two multisets (cf. vector
addition).
mseDiff(m,n)
yields the multiset difference between two
multisets.
mseExMul(m,n)
is the multiset external multiplication
operation (cf. vector spaces).
mseCUP(l)
extends mseCup to sequences of multisets.
mseMul(m,n):A->Nat
is the monoidal extension of NAT product
to multisets.
mseSumRan(f)
computes de ``cardinal'' of a multiset f.
mseWam(ms,p)
computes a NAT-multiset weighted average, where p
may add precision to the computation (see int.cam about the limited scope
of NAT or INT in CAMILA).
msePerc(ms:A->NAT):A->NAT
mseUnif(ms,ff)
provides for multiset consolidation in which ms
is the target multiset and ff acts as a classification device.
mseCupSeq(l,n)
computes ``seq-functorial'' mseCup on pairs of
lists of msets.
mseCUPSEQ(l)
extends mseCupSeq to sequences of multiset
sequences.
mse2TeXbarenv(ms)
builds a LaTeX barenv environment based
picture of a multiset ms.
Manual(s)
of mon.cam int.cam ff.cam tex.cam.
J.N. Oliveira (jno@di.uminho.pt)