Subversion

2lt

?curdirlinks? - Rev 1

?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))


Theme by Vikram Singh | Powered by WebSVN v2.3.3