Formal specification and verification techniques for mutable references and advanced aliasing in Rust