4 ms·
> An analysis is sound if it reports all errors, and complete if it only reports errors. This seems backwards. Soundness and completeness are terms from logic:
by bumbledraven 8y ago
> An analysis is sound if it reports all errors, and complete if it only reports errors.
This seems backwards. Soundness and completeness are terms from logic:
sound = every provable statement is true
complete = every true statement is provable
A statement is provable if and only if it can be derived within the system. For example, the statement "SS0 + SS0 = SSSS0" (i.e. 2+2=4) is provable in Peano Arithmetic (PA) because it can be derived from the axioms of PA.
A statement is true if and only if it is actually true. For example, Goodstein's Theorem (https://en.wikipedia.org/wiki/Goodstein%27s_theorem https://en.wikipedia.org/wiki/Goodstein%27s_theorem) is true. However, Goodstein's Theorem is not provable in PA.
By definition, a logical system that allows you to prove anything, even nonsense, is complete. Also, a logical system that doesn't allow you to prove anything is, by definition, sound.
In a comment at the bottom of the article, the author says:
> Soundness means: passed => not erroneous
> Completeness means: not erroneous => passed
>
> or equivalently, since rejected = (not passed):
>
> Soundness means: not rejected => not erroneous
> Completeness means: not erroneous => not rejected
This seems wrong. For one thing, rejected is not necessarily equivalent to not passed, because there is a third possibility: the algorithm might fail to terminate. This is analogous to a statement which can neither be proved nor disproved in a given logical system.