The Formal Verification Triangle
The Scalability, Automation, Precision Trilemma
This post is a quick introduction to a concept that I have been using in talks since 2015, to help explain the landscape of formal verification methods to verification outsiders. I don’t claim it as a unique invention; however I’ve not seen it documented elsewhere.
Methods for verifying software in particular are myriad, and the landscape can be confusing to non-verification folks. We have model checking, abstract interpretation, symbolic execution, auto-active verification, static analyses (including type systems), as well as interactive proof.
[Read More]