I'm reading The Rust Programming Language and found the following passage:
Remember that writing to a struct is not an atomic operation, and many functions like
vec.push()can reallocate internally and cause unsafe behavior, so even monotonicity may not be enough to justifyUnsafeCell
It just popped out of nowhere in the book and I've had a hard time online trying to find what it exactly means in this context. Too much information is about the concept of "monotonicity" of mathematical functions, which I already knew but is apparently not very helpful.
I only seemed to find this article that talks about it.
Now, in addition to respecting equality in the obvious way, I also include the stipulation that a functional program must respect the monotonicity of observations. What do I mean by this? It must be that once you have observed something at a point in time, then that will not cease to be evident in the future. This is analogous to the monotonicity property in Kripke or Beth semantics.
However this is also quite abstract and I'm not sure it talks about the same thing either.