Something really weird is going on when I build a MultiSet in two different ways, using the "+" operation. The two constructions give the same MultiSet (since U=V), but in some mysterious way they are not really equal (since X=Y is false). Does anyone know how to avoid this? Should the "+" operator be avoided altogether?
There is more: I tried saving the values of X and Y using the command: save X, Y, "anomaly.m"
When I tried reading it with the command: read "anomaly.m"
I got the error message: "Error, could not open `anomaly.m` for reading".
Thanks!
> |

|
> |

|

|
(1) |
> |

|

|
(2) |
> |

|

|
(3) |
> |
![X := [2, 7, U]; Y := [2, 7, V]](/view.aspx?sf=228676_question/5911584f9d8414d538b46e115a43e1ed.gif)
|
![[2, 7, module MultiSet () local instance, hash, generalized; option object; end module]](/view.aspx?sf=228676_question/48ad548248debefcc72764e00feeed31.gif)
|
(4) |
> |

|

|
(5) |
> |
![seq(evalb(X[i] = Y[i]), i = 1 .. 3)](/view.aspx?sf=228676_question/e7e123508fb057556ad53b6ef1fc59a7.gif)
|

|
(6) |
> |

|
|
Download Anomaly.mw