We are! We very recently announced some results on formally proving the correctness of programs: https://harmonic.fun/news#blog-post-verina-bench-sota
Formal methods are cool because, by contrast to tools like the borrow checker, you can prove some very "nonlocal" properties: this system does not deadlock, or it makes progress at least every N steps, etc.
How is “this system doesn’t deadlock” not the same as the halting problem?
Does Aristotle produce TLA+ output?
For example can it read rust async code and prove that there are no deadlocks in TLA+, or some equivalent in Lean?