Article View: comp.ai
Article #8723Re: Reasons why you don't prove your programs are correct
From: Brian L. Stuart
Date: Thu, 11 Jan 1990 20:19
Date: Thu, 11 Jan 1990 20:19
33 lines
2306 bytes
2306 bytes
In article <1990Jan11.015531.20996@world.std.com> bzs@world.std.com (Barry Shein) writes:
>
>The automatic program verification proponents lost. Perlis gave a good
>talk on why, it went something like:
>
His arguments are significant and important practical considerations, but
there is a more fundamental theoretical issue here.
1) No program can be verfied to be correct unless it is verified that it
produces the correct output.
2) In verifying the correctness of the output, one verifies the existence
of the output.
3) Assume that a program exists that can verify the existence of output.
Now create a pre-processor that takes as input a program and produces
as output the same program except that it halts after every output.
(The construction of such a program is left as a excercize for the
reader :-) Now the combination of this pre-processor with the assumed
verifier is a program which will detect whether or not a program halts.
Hopefully, everyone recognizes that this is impossible according to the
halting theorem, so our assumption of a program that can verify the
existence of output must be false and by 1) and 2) we cannot have
a program that verifies the correctness of programs in general.
The upshot of this is that for any language or programming methodology
which is verifiable, there will be some programs that can be expressed
on a Turing Machine which cannot be expressed in this language or
methodology. When you ask for verifibility, you ask to sacrifice
Turing-compatability. Be careful what you ask for, you may get it.
Brian L. Stuart
Department of Computer Science
Purdue University
Technical Details
Message-ID:
<9220@medusa.cs.purdue.edu>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!samsung!sol.ctr.columbia.edu!cica!iuvax!purdue!blsReferences:
<25711@cup.portal.com> <1449@krafla.rhi.hi.is> <1990Jan11.015531.20996@world.std.com>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!samsung!sol.ctr.columbia.edu!cica!iuvax!purdue!bls From: bls@cs.purdue.EDU (Brian L. Stuart) Newsgroups: comp.ai,comp.arch,comp.databases,comp.edu,comp.object Subject: Re: Reasons why you don't prove your programs are correct Message-ID: <9220@medusa.cs.purdue.edu> Date: 11 Jan 90 20:19:21 GMT References: <25711@cup.portal.com> <1449@krafla.rhi.hi.is> <1990Jan11.015531.20996@world.std.com> Reply-To: bls@cs.purdue.edu (Brian L. Stuart) Followup-To: comp.ai Organization: Department of Computer Science, Purdue University Lines: 33