Correctness_proof Correctness_proof

Correctness proof - Definition and Overview

In theoretical computer science, correctness of an algorithm is asserted when it is said that the algorithm is correct with respect to a specification. Functional correctness refers to the input-output behaviour of the algorithm (i.e., for each input it produces the correct output). See also program verification.

A distinction is made between total correctness, where it is additionally required that the algorithm terminates, and partial correctness, which simply requires that if an answer is returned it will be correct. Since there is no general solution to the halting problem, a total correctness assertion may lie much deeper.

For example if we are successively searching though integers 1, 2, 3, ... to see if we can find an example of some phenomenon — say an odd perfect number — it is quite easy to write a partially correct program (use integer factorization to check n as perfect or not). But to say this program is totally correct would be to assert something currently not known in number theory.

A proof would have to be a mathematical proof, assuming both the algorithm and specification are given formally. In particular it is not expected to be a correctness assertion for a given program implementing the algorithm on a given machine. That would involve such considerations as limitations on memory.

A deep result in proof theory, the Curry-Howard correspondence, states that a proof of functional correctness in constructive logic corresponds to a certain program in the lambda calculus. Converting a proof in this way is called program extraction.

See also


Example Usage of Correctness

Cat_92uk: Is political Correctness to blame for lack of coverage over : http://digg.com/d317MQl?t
kennbell: @jenmovies No, that would be Sharia Law. I'm not much for political Correctness.
iThumbmynose: @Yourfaceismolly Hey Molly. Always nice to see you on here. All the political Correctness got rid of the flour power, I guess:))
Copyright 2009 WordIQ.com - Privacy Policy  :: Terms of Use  :: Contact Us  :: About Us
This article is licensed under the GNU Free Documentation License. It uses material from the this Wikipedia article.