axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Axiom-developer] SAGE, Axiom, and usage


From: Page, Bill
Subject: RE: [Axiom-developer] SAGE, Axiom, and usage
Date: Tue, 22 Aug 2006 20:21:48 -0400

On Tuesday, August 22, 2006 5:25 PM Gabriel Dos Reis wrote:
> ... 
> For my own courses, I've been preparing materials for using
> Axiom as my main vehicle for introducing students to symbolic
> computation.

I am sure that you do not doubt that I am a strong supporter
of Axiom, but I must say that if I were you I probably would
*not* use Axiom to introduce students to symbolic computation.

There is of course the question of what you mean by
"introduce" and about the level of sophistication (or not)
of the students. If my intention was to demonstrate
(truthfully) just how hard using a computer to do mathematics
really is, then I think Axiom might be good place to start.
But if your purpose is to give (a mostly false) impression
of how easy it is, then the Maple and Mathematica sales
literature would probably make a good handout for your first
seminar. ;)

I think that at the root of this problem is really an issue
recently addressed by Steven Watt.

Gaby would like to introduce his students to "symbolic
computation", but really Axiom (and Aldor) are not very
good at this -- by design. Axiom however does excel at
"computer algebra".

In the paper:

http://www.csd.uwo.ca/~watt/pub/reprints/2006-tc-sympoly.pdf

Making Computer Algebra More Symbolic (Invited), Stephen M. Watt,
pp. 43-49, Proc. Transgressive Computing 2006: A conference
in honor or Jean Della Dora , (TC 2006), April 24-26 2006,
Granada Spain.

and his talk

http://math.unm.edu/~aca/ACA/2006/Proceedings/Nonstandard/Watt_abstract.
txt

Symbolic Computation versus Computer Algebra, Stephen M. Watt,
Proc. 2006 Conference on the Applications of Computer Algebra,
(ACA 2006), June 26-29 2006, Varna, Bulgaria.

Steven presented this distinction:

"We observe that ``symbolic computation'' and ``computer algebra''
are really two different things and that neither one sufficiently
addresses the problems that arise in applications.  Symbolic
computation may be seen as working with expression trees
representing mathematical formulae and applying various rules 
to transform them.  Computer algebra may be seen as developing
constructive algorithms to compute quantities in various
arithmetic domains, possibly involving indeterminates.  

Symbolic computation allows a wider range of expression, but
lacks efficient algorithms.  It is often unclear what is the
algebraic structure of a domain defined by rewrite rules.
Computer algebra admits greater algorithmic precision, but is
limited in the problems that it can model.

We argue that considerable work is still required to make
symbolic computation more effective and computer algebra
more expressive.  We use polynomials with symbolic exponents,
e.g. $x^{n^2 + n} - y^{2m}$, as an example that lies in
the middle ground and we present algorithms for their
factorization and gcd."

-------------

I think Steven's thesis is a philosophically hard one for
mathematicians to accept but computer scientists in general
have developed a much more refined, and at the same time more
concrete, notion of "type" and "structure" as fundamental to
computer programming. So they have an easier time to accept
this view.

Under this distinction, Mathematica, Maple, Maxima, Reduce
are *symbolic* computation systems. They are designed to
manipulate expressions in a primarily linguistic and pragmatic
manner as dictated by the underlying mathematics.

A computer algebra system on the other hand, emphasizes
structure over language. For example a polynomial in Axiom
is a specific (abstract) data structure object with certain
very specific designed-in properties and operations. It only
has a symbolic representation during input and output. It
is this metaphysical view of mathematics as dealing with
concretely realized abstract objects (as implemented in a
computer) instead of merely manipulating formal systems of
symbols, that is at the root of this debate.

As we have discussed in several different contexts, Axiom's
"Expression" domain constructor is an attempt to provide Axiom
with some (limited) symbolic computational ability. Unfortunately
it is also one of the most complex and problematic domains in
Axiom. I think the reason that this is true is directly related
to the difficulty of merging these two points of view about
computation.

So presenting students with Axiom ends up confronting them
almost immediately with this difficult and largely unresolved
problem.

> Yesterday, I had to reconsider that decision given the many
> whoops to jump through and unfavorable impression when compared
> to recent versions of Maple or Mathematica.  Now, I'm thinking
> about switching to Maple alright for this fall.

Although I am also a supporter of Maple and (at least in years
past was) quite active as a beta test volunteer during Maplesoft's
annual beta test cycles, I think choosing Maple (or Mathematica)
to introduce students to symbolic computation is also a mistake
since as commercial products they both try hard to give the
impression that this problem is solved.

> 
> [...]
> 
> | > I am tempted to suggest that hooking Axiom to the Sage
> ! > bandwagon as soon as possible might be the best idea.
> 
> I would resist the temptation to jump on the many bandwagons
> du jour without more data...
>

Your prudence is justified, but since you must teach students
symbolic computation this fall, what should you do?
 
> [...]
> 
> | > But that makes Axiom seem subordinate
> 
> or uncertain and unfocused project.
> 

I think the truth hurts. :) And that is why one is sometimes
forced to teach in a somewhat less than optimal ways.

I have been trying to understand the reasons for the apparently
phenomenal success of the Sage project. Certainly the enthusiastic
personalities of some of the principle developers such as William
Stein and David Joyner is one factor, but more importantly perhaps
is the fact that Sage seems to take a sort of "middle ground" in
this "symbolic versus algebra" debate. By choosing a dynamic
strongly typed interpreted language like Python as the underlying
glue, it can in fact straddle these two worlds. Although there
remains considerable skepticism over whether it can do so in a
sufficiently efficient manner. Certainly only a few years ago
this approach would not have been technically viable due to the
lack of sufficient computer resources to waste. But the days of
Tim Daly's "peta-computer" are fast approaching and as Axiom
developers we need to take a close look at the consequences.
I think one of the consequences is Sage.

On the other hand, I think one might reasonably characterize
the design of the programming language Aldor as an earlier
and more formally correct approach to solve the same problem.
Unfortunately for completely non-technical reasons Aldor seems
to have lost at least the first round of this fight.

Regards,
Bill Page.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]