?prevdifflink? - Blame
values
bag1 = { "chair" |-> 12, "table" |-> 3, "cupboard" |-> 1 };
bag2 = { "bed" |-> 3, "sofa" |-> 6, "cupboard" |-> 10 }
functions
mseCup[@A] : (map @A to nat) * (map @A to nat) -> map @A to nat
mseCup (m, n) == m ++ n ++
{ a |-> m(a) + n(a) | a in set dom n inter dom m };
mseExMul[@A] : map @A to nat * nat -> map @A to nat
mseExMul(m, n) == { a |-> m(a) * n | a in set dom m };
mseDiff[@A] : (map @A to nat) * (map @A to nat) -> map @A to nat
mseDiff( m, n ) ==
{ a |-> m(a) - n(a) | a in set dom m inter dom n & m(a) - n(a) > 0 }
munion
{ a |-> m(a) | a in set dom m inter dom n & m(a) - n(a) < 0 }
munion
{ a |-> m(a) | a in set dom m & a not in set dom n };
mseDiff2[@A] : (map @A to nat) * (map @A to nat) -> map @A to nat
mseDiff2( m, n ) ==
{ a |-> m(a) - n(a) | a in set dom n & m(a) - n(a) > 0 }
munion { a |-> m(a) | a in set dom m & a not in set dom n };
mseCUP[@A] : seq of (map @A to nat) -> map @A to nat
mseCUP (sm) == if sm = [] then { |-> }
else mseCup[@A](hd sm, mseCUP[@A](tl sm))
|