\documentclass{book}
%\newcommand{\VolumeName}{Volume 2: Axiom Users Guide}
%\input{bookheader.tex}
\pagenumbering{arabic}
\mainmatter
\setcounter{chapter}{0} % Chapter 1

\usepackage{makeidx}
\makeindex
\begin{document}
\begin{verbatim}
\start
From: daly <daly@axiom-developer.org>
To: axiom-developer@nongnu.org
Date: Sat, 19 Mar 2016 03:53:30 -0400 (EDT)
Subject: [Axiom-developer] Axiom mathematical algorithms... Notation matters

I've been thinking about the best method of presenting mathematical
algorithms. There is a gap between equations that represent the
mathematics and the actual code that represents the algorithm.

The actual code has loops and does low-level data manipulation
that has been optimized away from the formula definition. This
is especially true of numerics, where I've been doing a lot of
recent work.

The form of presentation in this paper seems to be the perfect
combination of formula and algorithm. See, for example, p14:
http://slicot.org/objects/software/reports/SLWN2014_1.pdf

It would be ideal if this was the Axiom algebra language (Spad2?).
Constructing a parser/compiler for such input is easily a PhD thesis.
It would represent a major step forward in computational mathematics.

That said, I think we should adopt this style for documentation.

Tim

\start
To: axiom-developer@nongnu.org
From: Eugene Surowtz <surow@verizon.net>
Date: Sun, 20 Mar 2016 14:05:30 -0400
Subject: Re: [Axiom-developer] Axiom mathematical algorithms... Notation
	matters

How do you see this with respect the literate programming model?

Gene

On 3/19/2016 3:53 AM, daly wrote:
> I've been thinking about the best method of presenting mathematical
> algorithms. There is a gap between equations that represent the
> mathematics and the actual code that represents the algorithm.
>
> The actual code has loops and does low-level data manipulation
> that has been optimized away from the formula definition. This
> is especially true of numerics, where I've been doing a lot of
> recent work.
>
> The form of presentation in this paper seems to be the perfect
> combination of formula and algorithm. See, for example, p14:
> http://slicot.org/objects/software/reports/SLWN2014_1.pdf
>
> It would be ideal if this was the Axiom algebra language (Spad2?).
> Constructing a parser/compiler for such input is easily a PhD thesis.
> It would represent a major step forward in computational mathematics.
>
> That said, I think we should adopt this style for documentation.
>
> Tim
>

\start
Date: Sun, 20 Mar 2016 15:26:16 -0400
From: daly <daly@axiom-developer.com>
To: surow@verizon.net
Subject: Re: [Axiom-developer] Axiom mathematical algorithms...
	Notation	matters

> How do you see this with respect the literate programming model?
> 
> Gene

I am deep in the Numerics at the moment and a lot of it involves
matrix manipulation. The notation in the referenced paper is a
lot clearer than the linear notation, making it clear which
array access corresponds to which matrix element. If you know
the algorithm this isn't a problem but if you don't know the
algorithm the usual linear notation for programs is opaque.

In addition, it shows local variables in traditional math style
as opposed to "programmer style" things like
   t1 := something
   t2 := something else
where t1 and t2 are poorly chosen names unrelated to the math.
It gets even more cluttered when the necessary coercions are added.

As for the literate programming model the Axiom textbook-style follows
the usual "explain the concepts" (with literature references), explain
the algorithm, (using the pseudocode), show the "formula" (in this case,
the Spad code), and show the proof. Axiom now automatically runs ACL2
(for the lisp code) and COQ (for the spad code) at build time. So far
there is one ACL2 proof. A COQ proof is in the works.

This "notation" fits best in the "explain the algorithm" step.
Latex makes it possible to do inline. The notation is intermediate
between the formula and the implementation.

Tim

> 
> On 3/19/2016 3:53 AM, daly wrote:
> > I've been thinking about the best method of presenting mathematical
> > algorithms. There is a gap between equations that represent the
> > mathematics and the actual code that represents the algorithm.
> >
> > The actual code has loops and does low-level data manipulation
> > that has been optimized away from the formula definition. This
> > is especially true of numerics, where I've been doing a lot of
> > recent work.
> >
> > The form of presentation in this paper seems to be the perfect
> > combination of formula and algorithm. See, for example, p14:
> > http://slicot.org/objects/software/reports/SLWN2014_1.pdf
> >
> > It would be ideal if this was the Axiom algebra language (Spad2?).
> > Constructing a parser/compiler for such input is easily a PhD thesis.
> > It would represent a major step forward in computational mathematics.
> >
> > That said, I think we should adopt this style for documentation.

\start
Date: Tue, 29 Mar 2016 11:35:10 -0400 (EDT)
From: daly <daly@axiom-developer.com>
To: axiom-developer@nongnu.org
Subject: [Axiom-developer] Axiom now runs on your cell phone

Axiom now runs on your cell phone, actually on any android device.

Tim

\start
Date: Tue, 29 Mar 2016 13:35:53 -0400
From: daly <daly@axiom-developer.com>
To: surow@verizon.net
Subject: Re: [Axiom-developer] Axiom mathematical algorithms... Notation
	matters

> Now that "Einstein's Apple" is in World Scientific's catalog,
> I'm waking up my interest things algebraic and AI-ish.
> 
> I seem to recall that you had some ideas for the help
> capabilities of AXIOM and have started burrowing through
> old notes to find what has been said.
> 
> Any comment on what you've had in mind?

Congrats on the new book. Books take a huge amount of work.

There are new additions and changes to Axiom's help.

For the )describe command, as in

)d op pop!

there are command line examples for using the function from each domain.
These are slowly being added to all of the functions.

Help pages for all categories, domains, packages, and numerics are now
automatically extracted and available to the )help command. Detailed
examples of function use is slowly being added to each one.

All of the algebra and, so far, most of the interpreter and compiler
are PDFs. The actual source code is extracted from the latex source
files. Bibliographic references are being added. A complete table of
contents volume now exists and will shortly have hyperlinks to the
referenced volume and section.

Each category, domain, package, and numerics will have an overview
and each function will have an explanation, examples, and a proof.

Axiom now automatically runs ACL2 (for lisp code) and COQ (for
algebra code) at build time to automate the proofs. A lisp function
has been proven and a COQ algebra function proof is "in-process".

Additional examples are being added to the src/input directory. These
will eventually be collapsed into a new volume showing Axiom use.

Axiom videos are "in plan". I have been experimenting with tools to
make videos. I have experimented with inlining videos and gifs into
the PDFs. So far, nothing has been pushed to the repositories.

================================================================


On the AI front I have sent the following proposal to several people.
I would work on it but I don't have access to the computer resources
necessary to train the deep neural net. But I think that we are
on the edge of solving hand-written input of mathematics.


Machine learning of labeled data can change mathematics.

Hand-written input to mathematics programs is a long-standing problem
in the mathematics community that gets unsuccessfully attacked every
few years. Many have tried, all have failed.

Hand-written mathematical input would open the world of symbolic
mathematics to researchers and students at all levels.

With machine learning and big data we can incrementally approach
a solution. The task breaks down into several steps, each of which
can be automated and can build on prior steps. 

Step 0 would be to build a labeled dataset of latex-typeset images.

These already exist. Axiom has a huge test suite at
http://axiom-developer.org/axiom-website/CATS
which include, for example, the Schaums Integration equations,
the Kamke ordinary differential equations, and the Rich integration
dataset. Many other such datasets exist or can easily be automated.
Indeed, the CRC publishes huge typeset math books from latex. This
would be a collection of data with labels.

These existing datasets group the latex input. the typeset equations,
and, in some cases, the Axiom input command lines. See page 4 of
http://axiom-developer.org/axiom-website/CATS/schaum1.input.pdf

What is missing is a way to extract the semantics of the image so
we can go from typeset equations to command lines.

Step 1 would be to recognize the typeset symbols like x, a, pi, theta
and categorize the input based on symbol set. Now we can recognize
the small set of mathematical symbols.

Step 2 would be to recognize symbol groupings such as fractions,
roots, integral signs, absolute values, and functions with arguments.

At this point we can recognize and generate the input that would
generate the output image. Now we can point a camera at an equation
in a textbook and generate the semantics. Knowing the semantics allows
automated input to symbolic mathematics.

There are two interesting "Step 3" paths.

Step 3 Path 1 automates integration, differential equations, and other
mathematics by using machine learning to associate the input equation
and the solution. Given an integral, a wave equation, or a
differential equation, we can recognize that it is as, say, a
"Bernoulli equation" (in one of many forms) with a known solution.

Step 3 Path 2 would explore recognizing handwritten symbols such as
x, a, pi, theta and categorize the input based on the symbol set.
Recognizing handwritten symbols is similar to the MNIST problem.
Then the symbol groupings would need to be recognized as above.

Success in either path would allow mathematicians and students to 
write equations on a tablet and use it as input to a symbolic
algebra system or as input to an "equation pattern matcher" to
suggest solutions.

Currently we expect people to use calculators so they can handle
larger problems while automating the rote tasks. We are at the
threshold of making equation handling into another rote task. This
will affect the teaching of mathematics worldwide.

\start
Date: Tue, 29 Mar 2016 13:39:31 -0400
From: daly <daly@axiom-developer.com>
To: Verizon <surow@verizon.net>
Subject: Re: [Axiom-developer] Axiom now runs on your cell phone

Nope. I did some Apple development under a consulting contract.
The result would have to go through the Apple store process
which is really painful.

> Any hope for iPad users?
> Gene
> 
> > On Mar 29, 2016, at 11:35 AM, daly <daly@axiom-developer.com> wrote:
> > 
> > Axiom now runs on your cell phone, actually on any android device.
> 

\start
Date: Tue, 29 Mar 2016 13:07:00 -0400
From: Verizon <surow@verizon.net>
To: daly <daly@axiom-developer.com>
Subject: Re: [Axiom-developer] Axiom now runs on your cell phone

Any hope for iPad users?
Gene

> On Mar 29, 2016, at 11:35 AM, daly <daly@axiom-developer.com> wrote:
> 
> Axiom now runs on your cell phone, actually on any android device.
> 
> Tim

\start
Date: Tue, 29 Mar 2016 14:28:44 -0400
From: daly <daly@axiom-developer.com>
To: surow@verizon.net
Subject: Re: [Axiom-developer] Axiom now runs on your cell phone

That's true for Android I know. For an online school consulting
contract I wrote an android game which I can distribute without
going through the Google Play Store. Versions of Mahjong:
http://daly.axiom-developer.org/apps/MahLetters-release.apk (alphabet match)
http://daly.axiom-developer.org/apps/MahEyes-release.apk (eye match)
http://daly.axiom-developer.org/apps/MahMusic-release.apk (guitar chord match)

But I know of no way to distribute Apple apps without a developers
license and going through the Apple store. That consulting contract
ended before it became an issue. An Apple Axiom app would be nice but it
is not on my todo list.

> I am under the impression that is true only if
> you want to distribute via the Apple store.
> Somewhere I've seen that apps can be distributed
> and installed independently.
> 
> What you get might be hazardous to your device's health.
> (Just like IOS 9.3!)
> 
> Gene
> 
> On 3/29/2016 1:39 PM, daly wrote:
> > Nope. I did some Apple development under a consulting contract.
> > The result would have to go through the Apple store process
> > which is really painful.
> >
> >> Any hope for iPad users?
> >> Gene
> >>
> >>> On Mar 29, 2016, at 11:35 AM, daly <daly@axiom-developer.com> wrote:
> >>>
> >>> Axiom now runs on your cell phone, actually on any android device.

\start
Date: Tue, 29 Mar 2016 14:21:54 -0400
From: Eugene Surowtz <surow@verizon.net>
To: daly <daly@axiom-developer.com>
Subject: Re: [Axiom-developer] Axiom now runs on your cell phone

I am under the impression that is true only if
you want to distribute via the Apple store.
Somewhere I've seen that apps can be distributed
and installed independently.

What you get might be hazardous to your device's health.
(Just like IOS 9.3!)

Gene

On 3/29/2016 1:39 PM, daly wrote:
> Nope. I did some Apple development under a consulting contract.
> The result would have to go through the Apple store process
> which is really painful.
>
>> Any hope for iPad users?
>> Gene
>>
>>> On Mar 29, 2016, at 11:35 AM, daly <daly@axiom-developer.com> wrote:
>>>
>>> Axiom now runs on your cell phone, actually on any android device.

\start
Date: Wed, 30 Mar 2016 23:52:37 -0400 (EDT)
From: daly <daly@axiom-developer.com>
To: axiom-developer@nongnu.org
Subject: [Axiom-developer] Documentation

I am working with the BLAS and LAPACK software, used extensively
for many areas of science and engineering.

The level of documentation is impressive. The arguments are well
specified, the algorithm and its limitations are noted in the
documentation. The documentation contains references to the
literature as well as notes of caution based on published results.
There are published test cases along with the code.

This is well engineered scientific software.

Axiom needs at least this level of documentation.

Tim


\end{verbatim}
\eject
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\cleardoublepage
%\phantomsection
\addcontentsline{toc}{chapter}{Bibliography}
\bibliographystyle{axiom}
\bibliography{axiom}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\cleardoublepage
%\phantomsection
\addcontentsline{toc}{chapter}{Index}
\printindex
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\end{document}
