Sound Borrow-Checking for Rust via Symbolic Semantics | Synapse