Summary: Soundness and its Role in Bug Detection Systems
Yichen Xie Mayur Naik Brian Hackett Alex Aiken
Computer Science Department
Stanford, CA 94305
The term soundness originated in mathematical logic: a
deductive system is sound with respect to a semantics if it
only proves valid arguments. This concept naturally extends
to the context of optimizing compilers, where static analysis
techniques were first employed. There, soundness means the
preservation of program semantics, which is the principal
requirement of a correct compiler.
In bug detection systems, soundness means the ability to
detect all possible errors of a certain class. Soundness is
a primary focus of many proposals for bug detection tools.
Tools that do not offer such guarantees are sometimes sum-
marily dismissed as being, well, unsound, without regard to
the tool's effectiveness.
However, soundness has costs. Beyond the simplest prop-
erties, analysis problems are often statically undecidable and