steve@hubcap.clemson.edu ("Steve" Stevenson) (07/12/90)
amull@Morgan.COM (Andrew P. Mullhaupt) writes: >... includes comments by Graph Theory experts ... >suspect a hole in the arguments which reduce the problem.... This kind of >thing goes on all the time in math, and doesn't differentiate the >FCT from most other spectacular conjecture resolutions. True enough, however my interest is in the fact that a computer program is involved. In the philosophical sense, has FCT been `proven' if it has an `unproven' computer program in the middle? -- =============================================================================== Steve (really "D. E.") Stevenson steve@hubcap.clemson.edu Department of Computer Science, (803)656-5880.mabell Clemson University, Clemson, SC 29634-1906
stig@idt.unit.no (Stig Hemmer) (07/13/90)
The story I have heard is that the output from the program is possible to check by hand, and that is was done. The proof consists of finding a unavoidable set of subgraphs, and then showing that each and every one can be reduced. Both parts were done with computer asistance, but both can be done by hand. As far as I remember there were ~1000 subgraphs, so it is quite a big task, but I think they did it. My source is 'Mathematics: The New Golden Age' by Keith Devlin. Stig 'Tortoise' Hemmer aka stig@idt.unit.no aka hemmer@norunit.bitnet
aesop@milton.u.washington.edu (Jeff Boscole) (07/13/90)
In article <9649@hubcap.clemson.edu> steve@hubcap.clemson.edu ("Steve" Stevenson) writes: >... however my interest is in the fact that a computer program is >involved. In the philosophical sense, has FCT been `proven' if it has an Forgive me for being dense.... I've attempted to understand these issues thru Philosophy of Science classes and so forth.... Precisely -where- is the beef with a "proof by an (unverified.by.hand.calculation) computer program?" :=:
aaron@grad2.cis.upenn.edu (Aaron Watters) (07/13/90)
In article <9649@hubcap.clemson.edu> steve@hubcap.clemson.edu ("Steve" Stevenson) writes: > >... my interest is in the fact that a computer program is >involved. In the philosophical sense, has FCT been `proven' if it has an >`unproven' computer program in the middle? What makes you think that the program is any more or less proven than other parts of this or other proofs? The algorithm is certainly not `unproven' by normal standards of mathematical discourse. If your problem is with the possibility of an implementation mistake or a hardware error in the execution, I'd say this is much less likely than the possibility of an ordinary mathematical nonsequitur in the main part of the proof, especially since the algorithm has been reimplemented and rerun. -aaron.
alan@essex.ac.uk [Alan M Stanier] (07/13/90)
In a blatant attempt to disturb the Universe, aesop@milton.u.washington.edu (Jeff Boscole) just said }Forgive me for being dense.... I've attempted to understand these issues }thru Philosophy of Science classes and so forth.... Precisely -where- is ^^^^^^^^^^ }the beef with a "proof by an (unverified.by.hand.calculation) computer ^^^^^^^^ }program?" "where is the beef?" Sorry, I don't understand this colloquialism. [ I can imagine it meaning "Where is the substance to ..." or "What is the objection to ..." ] Could someone translate this question into English English? -- Alan M Stanier | email barefeet@sx.ac.uk | These opinions void where tel +44 206-872153 | fax +44 206-860585 | prohibited by local laws.
amull@Morgan.COM (Andrew P. Mullhaupt) (07/13/90)
In article <9649@hubcap.clemson.edu>, steve@hubcap.clemson.edu ("Steve" Stevenson) writes: > amull@Morgan.COM (Andrew P. Mullhaupt) writes: > > >... includes comments by Graph Theory experts ... > >suspect a hole in the arguments which reduce the problem.... This kind of > >thing goes on all the time in math, and doesn't differentiate the > >FCT from most other spectacular conjecture resolutions. > > > True enough, however my interest is in the fact that a computer program is > involved. In the philosophical sense, has FCT been `proven' if it has an > `unproven' computer program in the middle? I am not aware of any reason that the computer part of the FCT proof should not be proven; what I mean here is that the source for the program can (and should) be equipped with a proof of partial correctness. (Since we know it halts, partial correctness implies total correctness.) Now the only hole in such an approach is faulty execution of the program by the system which processes it. (Likely a compiler or interpreter, an O/S and some hardware.) Now correctness of compilers and operating systems should be a given, but it's not. At present, the communities which produce compilers and operating systems are not sufficiently convinced of the merit and feasability of correct compilers and operating systems to produce them. So we can consider the whole of the proof from the compiler/interpreter, through the operating system and hardware as a single processor and assess the risk of error. The first point is the nature of errors. There are no floating point computations (as far as I know) so that a Lanford style proof by estimates is not necessary. The answer is either that you can successfully dispense with each of the finitely many critical cases or no you can't. Now the likelihood of an error in the hardware over the run in question is (on today's machines) a fixed small number, likewise the operating system and compiler. You can satisfy practical doubts you may have regarding the computation by repeating it more than once with different hardware, compilers and operating systems. (It might be easier to use different flavors or versions of the same operating system so long as they arent the same code.) It now becomes a problem in statistics to compute confidence bands for the hypothesis that the set of computations you have performed has been without error. You can quite reasonably expect to obtain results which are as good as you could obtain for passing manuscripts through referees, etc. So as a practical matter there is not much reason to treat computations as different from proofs. The other issue is that the computer proof of the FCT is not even in principle checkable by humans in reasonable time; whereas other, equally stultifying proofs (e.g. Carleson's pointwise convergence of L2 Fourier series theorem) _can_ be checked by _some_ (very determined) humans, even though most of us mortals take the experts' word on it. Well ok. There it is. You pays your nickel and you takes your choice. Who are you going to believe? This is not an idle issue; the recent proof of the Wagner conjecture (yet another jihad most of us will not experience in our lifetimes) results in a way to show that lots and lots of interesting kinds of graphs have only finitely many minimal cases under minors. I.e. this is a machine for resolving lots of questions in graph theory in the same way as the FCT. Before he got g_19 by hand, Deshouillers was aware that the result could have been had by exhaustion to the then best estimates by the use of a massively parallel computer. We almost went ahead and did it, too. A lot of mathematics is coming in range of cheaper and faster computers as time goes by, and we're going to see more and more cases where results hang by hybrid proofs. My response is twofold. We have to make mathematicians aware of the fact that programming can be done as theorem-proving. We have to institute a standard for quality control in computation. The right people to do it are the mathematicians, because they have the greatest need to understand the reliability of computations, and because they are the best equipped to face the problems involved. Later, Andrew Mullhaupt
jeffr@sco.COM (Jeff Radick) (07/14/90)
In article <4997@milton.u.washington.edu> aesop@milton.u.washington.edu (Jeff Boscole) writes: > ... >Forgive me for being dense.... I've attempted to understand these issues >thru Philosophy of Science classes and so forth.... Precisely -where- is >the beef with a "proof by an (unverified.by.hand.calculation) computer >program?" > ... It seems to me that a Philosophy of Science class should address this issue, but ... well, here's my opinion: Presumably a "proof" of an assertion, in the general sense of the word, is a test of its truth. As used by mathematicians, philosophers, and logicians, a "proof" is an argument which convinces a person knowledgeable in the subject matter of the assertion in question that the assertion follows from some set of hypotheses by a series of steps of reasoning which are generally accepted as valid. This is normally done by stating some series of steps in the chain of reasoning and either directly or indirectly alluding to some rule by which that steph should be considered to be valid; usually many steps or rules are omitted as being "obvious" but which in principle can be provided by those reasonably knowledgeable in the field in question. For example, few proofs will cite "modus ponens" every time it is used (in fact few will cite it at all) but a mathematical proof might well cite the Baire category theorem or Poincare's lemma or Gauss' Theorema Egregium. The point of this is that a "proof" is in principle something to be understood by human beings. If noone understands the chain of reasoning sufficiently well to be convinced that all steps are correct, then in a certain very real sense it is not really a proof. The question for a proof in which the output of a computer program is used as one or more critical steps in the reasoning, is whether or not the output of the program is correct. If the correctness of the program is not "proven", then at least in principle the correctness of the proof citing its output is in doubt. If the output of the program is itself intended to be a "proof", then in principle it can be checked by humans but if it is preposterously long -- say thousands of pages -- then it is unclear that anyone will ever really understand it all, so it is unclear that any human being can really be satisfied that all steps in the proof are "correct", hence it is not certain that the proof can be really accepted as "correct". Thus a practial approach to the problem might be to put the onus of proof back on the program itself. If the program is small enough to be amenable to an acceptably short proof (i.e., short enough to be understood by a human being) then perhaps its output and its proof could be accepted as a valid part of the larger proof. Now it might be that what is actually proven is not the program itself but rather the algorithm used. Then the question is whether the program actually used is a valid implementation of the algorithm. This can be addressed in an experimental sort of way by having different researchers independently implement the algorithm, then compare results. However, the results may still be in doubt since conceivably the independent researchers may still have a common error. Whether these issues have been adequately addressed in a way acceptable to the mathematical community in the case of the Four-Color problem is beyond my realm of expertise; however I believe this to be a valid statement of the issues involved. Jeff Radick software engineer and math student jeffr@sco.com or uunet!sco!jeffr or radick@ucscb.ucsc.edu
yodaiken@chelm.cs.umass.edu (victor yodaiken) (07/15/90)
In article <1233@s8.Morgan.COM> amull@Morgan.COM (Andrew P. Mullhaupt) writes: >In article <9649@hubcap.clemson.edu>, steve@hubcap.clemson.edu ("Steve" Stevenson) writes: >> amull@Morgan.COM (Andrew P. Mullhaupt) writes: >> > >I am not aware of any reason that the computer part of the FCT proof >should not be proven; what I mean here is that the source for the >program can (and should) be equipped with a proof of partial correctness. The reason appears to be that any such "proof", using current techniques, would be less obviously correct than the program itself. Are there examples of partial correctness proofs of substantive programs?
amull@Morgan.COM (Andrew P. Mullhaupt) (07/16/90)
In article <16930@dime.cs.umass.edu>, yodaiken@chelm.cs.umass.edu (victor yodaiken) writes: > In article <1233@s8.Morgan.COM> amull@Morgan.COM (Andrew P. Mullhaupt) writes: > >In article <9649@hubcap.clemson.edu>, steve@hubcap.clemson.edu ("Steve" Stevenson) writes: > >> amull@Morgan.COM (Andrew P. Mullhaupt) writes: > >> > > > >I am not aware of any reason that the computer part of the FCT proof > >should not be proven; what I mean here is that the source for the > >program can (and should) be equipped with a proof of partial correctness. > > The reason appears to be that any such "proof", using current techniques, > would be less obviously correct than the program itself. I cannot possibly see how. You cannot generally say in mathematics that a result is obvious, and then expect a referee (who might not see it as being so obvious) to let you off the hook for the proof. Thus, if the proof of correctness can be had, what reason (which would be accepted by a referee) can be given for its omission? If the proof _can_ be given, why should it not? And how could a proof of a result make the truth of that result less obvious? > ... Are there examples > of partial correctness proofs of substantive programs? I'm sure there are many, but this is irrelevant. Is the fact that the classification of finite simple groups has a proof which spans thousands of pages any reason to take that result on faith? One might argue on the basis of a number of errors per journal page statistic, that the proof is undoubtedly invalid, but is this any reason not to attempt it? Mathematics may very well ponder the acceptability of proofs which require computers, but there is not much doubt about results which can be proven conventionally - they should be. Later, Andrew Mullhaupt
rozin@unix.cis.pitt.edu (R Rozin) (07/27/90)
In article <1236@s8.Morgan.COM> amull@Morgan.COM (Andrew P. Mullhaupt) writes: >In article <16930@dime.cs.umass.edu>, yodaiken@chelm.cs.umass.edu (victor yodaiken) writes: [ ... ] >> The reason appears to be that any such "proof", using current techniques, >> would be less obviously correct than the program itself. >I cannot possibly see how. There is an interesting paper by Knuth, "A simple program, whose proof isn't". The program is about five lines long, and Knuth says that its correctness was pretty obvious to him, but when he tried to prove it, it was extremely difficult. The proof he gives is several pages long. Roman Rozin