--- Bob McElrath <firstname.lastname@example.org> wrote:
> Stavros Macrakis [email@example.com] wrote:
> > > We need to keep the theory and the code together and have
> > > each one explain the other. How else can you show that the
> > > code does what it is intended to do?
> > That is a very hard problem in general.
> Test cases.
I think he's refering to the difficulties of defining a protocal to use
when performing this task. Clearly test cases are needed, but they
don't address the issue of how to document a complex algorithm being
reworked into complex code in general. Proving the correctness of the
translation is beyond the scope of literate programming, and probably
beyond the ability of any software in existance right now. There are
techniques like the B method to prove that what the code gives you is
what you designed, and help you create a design that does precisely
what you want, but I rather doubt such tools are practical for this
level of mathematical work.
> While this does not *prove* the correctness of the code in a
> mathematical sense, it does in a monte-carlo sense. I note that both
> maxima and axiom have test suites.
What the test suites do is prove that the program is function as it
should in the environment and that changes to other parts of the
codebase haven't caused changes, not that the mathematics are correct.
In a test suite, you must tell the program what the answer is and then
the program attempts to reach the answer. The variables are whether
the algorithm is correct, whether a change elsewhere breaks the code in
question, and whether the supporting OS/environment is functioning
correctly. But the first case is not specific to a test suite - it is
used when writing the algorithm and/or debugging it for math errors.
The second case is useful when checking a bugfix or change hasn't
caused larger changes, but again does not ensure that the mathematics
are correct. The third use is strictly for installation.
> I do not think new mathematical code or subsystems should be accepted
> unless they are accompanied by a thorough test suite.
Do you Yahoo!?
Yahoo! Domains – Claim yours for only $14.70/year
This archive was generated by hypermail 2b29 : 04/22/18-06:40:03 AM Z CEST