🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.ai
Article #8742

Re: Reasons why you don't prove your programs are correct

#8742
From: Brian L. Stuart
Date: Fri, 12 Jan 1990 21:32
38 lines
2309 bytes
In article <6158@internal.Apple.COM> desnoyer@apple.com (Peter Desnoyers) writes:
>In article <9220@medusa.cs.purdue.edu> bls@cs.purdue.EDU (Brian L. Stuart) 
>writes:
>>[flawed proof that program verification is impossible.]
>
>Try this one instead. Given a program V that will verify whether or not 
>program P run on input I will produce output O. We can transform P by 
>deleting all output statements and having it output a single value O' 
>before it halts. [ie. transform P() to P'(),print(O') where P'() is P() 
>with all print statements deleted.] V(P',I,O') will then determine whether 
>or not the output of P'(I) is O', which is equivalent to determining 
>whether P(I) halts.
>
>Therefore V cannot exist. 

This appears to me to also be a valid proof from the case of verifiers
with the specified form.

>However, this result isn't as useful as it 
>seems. First, there are important classes of programs where V is 
>computable, even if it is not computable on all programs. Second, program 
>verification often means proving whether or not P (the program) is 
>equivalent to P' (the specification), which is a different problem 
>entirely. (although probably not computable in the general case.)

Not entirely.  Anytime a program is verified, the correctness of its
output is verified either implicitly or explicitly.  That is why I
was careful to phrase my proof in a form that did not say that verification
took place by verifying output, but instead took the general case
of a verifier.  I said that a by-product of the verification process
was the verification of output and used that.

Why do you feel that my proof was flawed?  I know its not as rigorous
as it could be, but I don't thing its wrong.

Brian L. Stuart
Department of Computer Science
Purdue University
Technical Details
Message-ID: <9237@medusa.cs.purdue.edu>
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!aplcen!haven!purdue!bls
References: <6158@internal.Apple.COM>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!aplcen!haven!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: <9237@medusa.cs.purdue.edu>
Date: 12 Jan 90 21:32:05 GMT
References: <6158@internal.Apple.COM>
Reply-To: bls@cs.purdue.edu (Brian L. Stuart)
Followup-To: comp.ai
Organization: Department of Computer Science, Purdue University
Lines: 38