**Next message:**root: "Re: [Axiom-developer] FeynCalc -> MAXIMA"**Previous message:**C Y: "Re: [Axiom-developer] Re: FeynCalc -> MAXIMA"**In reply to:**Bob McElrath: "Re: [Maxima] Re: [Axiom-developer] Re: FeynCalc -> MAXIMA"**Next in thread:**root: "Re: [Maxima] Re: [Axiom-developer] Re: FeynCalc -> MAXIMA"**Messages sorted by:**[ date ] [ thread ] [ subject ] [ author ]**Mail actions:**[ respond to this message ] [ mail a new topic ]

--- Bob McElrath <bob+axiom@mcelrath.org> wrote:

*> Stavros Macrakis [stavros.macrakis@verizon.net] 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.
*

Definitely.

CY

__________________________________

Do you Yahoo!?

Yahoo! Domains – Claim yours for only $14.70/year

http://smallbusiness.promotions.yahoo.com/offer

**Next message:**root: "Re: [Axiom-developer] FeynCalc -> MAXIMA"**Previous message:**C Y: "Re: [Axiom-developer] Re: FeynCalc -> MAXIMA"**In reply to:**Bob McElrath: "Re: [Maxima] Re: [Axiom-developer] Re: FeynCalc -> MAXIMA"**Next in thread:**root: "Re: [Maxima] Re: [Axiom-developer] Re: FeynCalc -> MAXIMA"**Messages sorted by:**[ date ] [ thread ] [ subject ] [ author ]**Mail actions:**[ respond to this message ] [ mail a new topic ]

*
This archive was generated by hypermail 2b29
: 02/25/17-12:20:01 PM Z CET
*