Hacker News new | ask | show | jobs
by mbonnet 28 days ago
A decent amount of mission-critical software undergoes formal verification, like spacecraft flight software (my area of expertise). SparkADA lives on because of not just its safety, but formal verifiability.
1 comments

Interesting, how common is this vs just unit testing? How do you avoid formally verifying something against a spec that could subtly fail in production?
Make sure the specifications can’t fail by verifying them for correctness.

Something like TLA+[1] and Quint[2] specifications can be verified for correctness using Apalache[3]. Then test the Rust code against the specifications using quint_connect.[4]

[1] https://www.learntla.com/

[2] https://quint.sh/

[3] https://apalache-mc.org/

[4] https://docs.rs/quint-connect/latest/quint_connect/

it's generally another layer on top of things like unit testing, MC/DC coverage, etc. not all programs use formal verification though.