NAME

mse.cam - a CAMILA library for multisets


SYNOPSYS

 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 


DESCRIPTION

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:A->NAT,n:A->NAT):A->NAT

mseMax(m,n) is the monoidal extension of NAT max to multisets.

mseCup(m:A->NAT,n:A->NAT):A->NAT

mseCup(m,n) is the multiset union of two multisets (cf. vector addition).

mseDiff(m:A->NAT,n:A->NAT):A->NAT

mseDiff(m,n) yields the multiset difference between two multisets.

mseExMul(m:A->NAT,n:NAT):A->NAT

mseExMul(m,n) is the multiset external multiplication operation (cf. vector spaces).

mseCUP(l:(A->NAT)-seq):A->NAT

mseCUP(l) extends mseCup to sequences of multisets.

mseMul(m:A->NAT,n:A->NAT):A->Nat

mseMul(m,n):A->Nat is the monoidal extension of NAT product to multisets.

mseSumRan(f:A->NAT):NAT

mseSumRan(f) computes de ``cardinal'' of a multiset f.

mseWam(ms:NAT->NAT,p:NAT):NAT

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

msePerc(ms:A->NAT):A->NAT

mseUnif(ms:A->NAT,ff:A->A):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:(A->NAT)-seq,n:(A->NAT)-seq):(A->NAT)-seq

mseCupSeq(l,n) computes ``seq-functorial'' mseCup on pairs of lists of msets.

mseCUPSEQ(l:((A->NAT)-seq)-seq):(A->NAT)-seq

mseCUPSEQ(l) extends mseCupSeq to sequences of multiset sequences.

mse2TeXbarenv(ms:A->NAT):TeX

mse2TeXbarenv(ms) builds a LaTeX barenv environment based picture of a multiset ms.


SEE ALSO

Manual(s) of mon.cam int.cam ff.cam tex.cam.


AUTHOR

J.N. Oliveira (jno@di.uminho.pt)