The argument (specious, probably) is that if the compiler is open- source as well as the library, the operating system code etc, then an industrious person could try to verify all this.
It is often said that "Testing can only demonstrate the presence of a bug, not its absence". BUT I think it is clear that code examination (by humans), regardless of how many times it "helps" is fundamentally prone to its own kind of errors. There are lists of errors (I've published some) that are committed by several computer algebra systems. Typically these have to do with bad decisions in choosing branch cuts, dividing by zero, etc. Often these cases are not specifically considered but fall out of the "usual" program decisions and fall out the wrong way. There are also extensive discussions of the role of proofs in mathematics; see especially a paper in Comm. ACM by Demillo Lipton Perlis and reactions to it. On May 1, 3:40 am, Jason Grout <jason-s...@creativetrax.com> wrote: > Marshall Hampton wrote: > >> I too have founds bugs by reading code that I've written - usually, > >> very > >> early on in the development process. Note that I'm talking in the > >> context > >> of result verification, however. That is, when I publish a paper > >> that > >> depends on computations, it is incumbent upon me to verify those > >> computations. I'm saying that I don't think that reading source code > >> at that point is particularly necessary or useful. > > >> Mark > > > Really? I find that very surprising. While it was not the primary > > reason that I became interested in Sage, the ability to examine the > > source code for verification purposes was a major attraction. > > But reading the source still doesn't get around bugs in a compiler, bugs > in supporting libraries, etc. Mark, if I understand you correctly, you > are saying that a person: > > 1. uses software to generate a list of results, and then > 2. checks these results by hand or in some way that doesn't use a computer. > > Step 2 is to avoid (or at least drastically cut down the chance of) > errors due to any issues with a particular computation system. I agree > that this should be done for published results to the extent possible > (or reasonable), and that results that only rely on computational > results (without independent verification) should be flagged as such. I > also agree that being able to read the source code for doing step 2 is > not necessary, *unless* your method of verification is to trace through > the program by hand. > > Of course, I'm sure there are many results in many fields that would be > practically impossible to independently verify in any reasonable amount > of time. I suppose those people at least verify that they get the same > results with completely different systems (e.g., Sage and Mathematica > and Magma). Of course, since Sage interfaces with a number of different > systems, it can help with this. > > Jason --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to sage-devel-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---