🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.ai
Article #1134

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

#1134
From: Arshad Mahmood
Date: Sat, 13 Jan 1990 13:42
50 lines
3044 bytes
In article <1990Jan12.030424.1397@world.std.com> bzs@world.std.com (Barry Shein) writes:
>
>The halting problem states (very roughly) "There exists at least one
>program who's halting conditions cannot be determined".
>
>People don't often write that program*, the fact that there was one
>(or a few) theoretically possible counter-example would hardly be
>sufficient to invalidate the concept of automatic program
>verification.

No there are uncountably many of them.

The undecidability of most of these problems is certainly a theoretical
block, which in practice means that if you write a theorem prover
to make sure that all your verifications conditions are satisfied it may
loop forever. It is rarely the case that one would attack such a problem
in such a naive way and usually relies on heuristics (examples
include the very successfull Boyer-Moore heuristics for proving
theorems about inductive LISP programs), which set of heuristics is
most suitable is still undecided (surprise, surprise!) however in recent
years people have developed tools for specifying and reasoning about them
an example of which is Alan Bundy's "Proof Plans", however the area
is still it's infancy.

In practice one would not use theorem provers, and would rely instead
on proof checkers. The latter rely on the user to supply the proof, but
can construct skeleton proofs, maintain libraries, provide tactics
and generally try and make the job simpler. This goes well with our
intuition that proofs provide confidence in our programs rather than any last
say about their absolute correctness (even if one had a measure for it),
proofs can highlight hidden assumptions, contradictory statements in
specifications, etc.

I did not wish to get involved with this discussion since I found those
people who objected to it not even very aware of what was happening
in the field, and to say that it is largely dead is inaccurate, examples
of groups working here in Britain alone are Don Sannella, Mike Fourman, 
Rod Burstall et al here in LFCS,
Bernard Sufrin, Mike Spivey, Joseph Goguen et al in Oxford, PRG, 
Mike Gordon et al in Cambridge, John Darlington, 
Robert Kowalski et al Imperial College,
there are also people in Manchester,Glasgow,London, etc. 

The tools developed so far are naturally somewhat basic, but 'Z' has been
 and continues to be used in industry.

A. Mahmood
Laboraory for the Foundations of Computer Science
Edinburgh University
Scotland
Technical Details
Message-ID: <1596@castle.ed.ac.uk>
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!mcsun!ukc!edcastle!lfcs!arshad
References: <25711@cup.portal.com> <1449@krafla.rhi.hi.is> <1990Jan11.015531.20996@world.std.com> <9220@medusa.cs.purdue.edu> <4784@itivax.iti.org>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!mcsun!ukc!edcastle!lfcs!arshad
From: arshad@lfcs.ed.ac.uk (Arshad Mahmood)
Newsgroups: comp.ai
Subject: Re: Reasons why you don't prove your programs are correct
Message-ID: <1596@castle.ed.ac.uk>
Date: 13 Jan 90 13:42:38 GMT
References: <25711@cup.portal.com> <1449@krafla.rhi.hi.is> <1990Jan11.015531.20996@world.std.com> <9220@medusa.cs.purdue.edu> <4784@itivax.iti.org>
Reply-To: arshad@lfcs.ed.ac.uk (Arshad Mahmood)
Organization: Laboratory for the Foundations of Computer Science, Edinburgh U
Lines: 50