If I can autoport my C++ to Rust, and the port is confirmed identical, and the Rust is confirmed safe, can't I use that to reason about the safety of my C++? Is safe C++ just a matter of proving it has a safe Rust equivalent?
keep in mind that rust:
- does not prevent logic errors
- does not prevent stack overflows
- does not prevent out of memory errors
- does not prevent bitflips caused by faulty hardware or cosmic rays
- does not prevent memory leaks
- does not prevent unrecoverable errors (panics)
- does not prevent memory safety related issues in an unsafe context
Granted the premise is rather brittle, since all Cpp2Rust does is to convert UB to runtime crashes, which can be undecidable, and cannot be used to prove anything about the original C++ code.