On 2 December 2010 18:20, Robert Bradshaw <rober...@math.washington.edu> wrote:

> On the topic of verifying tests, I think internal consistency checks
> are much better, both pedagogically and for verifiability, than
> external checks against other (perhaps inaccessible) systems. For
> example, the statement above that checks a power series against its
> definition and properties, or (since you brought up the idea of
> factorial) factorial(10) == prod([1..10]), or taking the derivative to
> verify an integral.

Of course I can  see  logic in this, especially when the software may
not be available. Even though it has limitations, and those
limitations might increase with time, Wolfram Alpha is currently
available to everyone. (It helps if you know Mathematica, as you can
input Mathematica syntax directly).

 * The person writing the mathematical code is usually the same person
who writes the test for that code. Any assumptions they make which are
incorrect  may exist in both the algorithm and the test code. Of
course one hopes the referee picks this up, but the referee process,
while useful, is not perfect.

 * The example you give with 10 factorial and prod([1..10], would
probably use a fair amount of common code - such as MPIR.

* Differentiate(Integrate(f)) = f, in practice for many functions
doing this in Sage does not lead back to the same expression, although
they are mathematically equivalent. Converting to a numerical form
can sometimes be used to show results are equal, but even two
equivalent, but non-identical numerical results often exist.

 (I wrote some Sage code which generated "random" functions and
applied the integrate/differentiate method.  If you get a complex
result back after the differentiation step, it is not easy to
determine if it's the same as you started with.).

Some, though not all of the above can be eliminated by using software
that is developed totally independently.. Of course, even using
Wolfram Alpha will use some code common to Sage since:

a) Wolfram Alpha uses Mathematica
b) Mathematica uses GMP & ATLAS
c) Sage uses MPIR (derrived from GMP) and ATLAS.

I suspect there is other common code too, but they are two I'm aware of.

> Especially in more advanced math there are so many
> wonderful connections, both theorems and conjectures, that can be
> verified with a good test. For example, computing all the BSD
> invariants of an elliptic curve and verifying that the BSD formula
> holds is a strong indicator that the invariants were computed
> correctly via their various algorithms.

I'll accept what you say!

It's clear you have the ability to write decent tests, but I think its
fair to say there are a lot of Sage developers who have less knowledge
of this subject than you.

As such, I believe independant verification using other software is
useful. Someone remarked earlier it is common in the commercial world
to compare your results to that of competitive products.

> - Robert

Dave

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to