Provenance In C and Rust, essentially mean that each object, lives in its own memory space, and you cant travel between them. You cant use a pointer to one object, add an offset and get a valid pointer to another object.<p>This is key to a lot of compiler optimizations. It is de facto in C compilers, and therefor in a lot of compiler infrastructure used by other languages. There is an attempt to make it more clearly defined in the C standard:<p><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3005.pdf" rel="nofollow">https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3005.pdf</a>
> The pointer's "provenance" says where in memory the pointer is allowed to access when.<p>Is that the definition of provenance or is there a wider definition that we should know?