\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
Date: Wed, 5 Aug 2020 08:54:54 -0400
From: Tim Daly <axiomcas@gmail.com>
To: Simon Thompson <S.J.Thompson@kent.ac.uk>, axiom-developer@nongnu.org
Subject: Re: Permission to quote
Cc: J.H.Davenport@bath.ac.uk

I did a survey of a couple hundred papers from the computer
algebra and proof camps. The only person mentioned in both
bibliographies on a regular basis seems to be James Davenport.

All attempts at combining the systems seems to be either a
simple cover (e.g. a simple front-end on Mathematica) or a
single proof (e.g. Buchberger's Groebner Basis algorithm).

The other approach is "arms length", either by directly sending
results or creating an "island" of "math facts" that translates
from one area to another.

Your effort was one of the very few that tried a direct embedding.

My approach is to create extensions for specification (e.g.
ensures, requires, forall, given-when-then, etc.), and know
how to propagate definitions and axioms in the categories.

The domains also have their specific axioms. The representation
has its own axioms. All of which form an environment for a
function specification and proof.

Proofs are their own "first-class" objects that can be passed,
constructed dynamically, and, hopefully able to re-generate
code. The ideal is that code A is used to construct proof B
which can be used to re-generate code A, ,showing "round
trip" behavior.

The same environment will be available to the user in the
interpreter.

At the moment I'm collecting "background" research in volume
13 on the specific case of the GCD algorithm (of which Axiom
seems to have 22 (e.g. NNI, poly GCD, etc.). There is a lot to
know.

The SANE compiler is in volume 15. (The bibliography volume
will give you some idea of the extent of the research so far.)

Both are "a work in progress" and active research. The fact that
I'm doing it all "in the open" makes it seem chaotic and confused.
But if I knew how to solve the problems it wouldn't be research.

There is no such thing as a simple job.

Hope you and your family are healthy.

Tim

PS. This research is the most fun I've ever had.
It has become my "iron rice bowl"
https://en.wikipedia.org/wiki/Iron_rice_bowl

\start
Date: Fri, 7 Aug 2020 13:15:44 -0400
From: Tim Daly <axiomcas@gmail.com>
To: Simon Thompson <S.J.Thompson@kent.ac.uk>, axiom-developer@nongnu.org,
 axiomcas@gmail.com
Subject: Provisos

Part of the result of this research is expected to be
'provisos', that is, statements under which a result
is valid, e.g.

  f(x) provided x>0

and 'assume', e.g.

  assume x>0 then integrate f(x)

Since every function knows its specification, pre- and
post-conditions, this can be computed. And since every
end-user result has that information it can be propagated
for further calculations.

My previous research on provisos used cylindrical
algebraic decomposition (CAD) which tries to derive
provisos "after the fact". CAD no longer seems necessary.

Anyway, that's the plan.

Tim

\start
Date: Sat, 8 Aug 2020 07:52:30 -0400
From: Tim Daly <axiomcas@gmail.com>
To: axiom-developer@nongnu.org, axiomcas@gmail.com
Subject: Re: Axiom musings...

Mark,

You're right, of course. The problem is too large.
So what. is the plan to achieve a research result?

There are 3 major restrictions on the effort (so far).

First, the focus is on the GCD in NonNegativeInteger.
Volume 13 is basically a collection of published thoughts
by various authors on the GCD, a background literature
search. Build a limited system with essentially one user
visible function (the NNI GCD) and implement all of the
ideas there. This demonstrates inheritance of axioms,
specification of functions, pre- and post-conditions,
proof integration, provisos, the new compiler, etc.

Second, make the SANE GCD work in the current Axiom
system by generating compatible code. This gives a
stepping-stone approach where things can be grounded.
Obviously none of the new proof ideas will be expected
to work in the current system but it "gives a place to stand".

Third, develop a lattice of functions. The idea is to attack the
functions that  depend on almost nothing, prove them correct,
and use them to prove functions that only depend on the
prior layer. I did this with the category structure when I first
got the system since it was necessary to bootstrap Axiom
without a running system (something that was not possible
with the IBM/NAG version). That effort took several months
so I expect that function-lattice to take about the same time.

This makes the research "incremental" so that a result can
be achieved in one lifetime. Like a PhD thesis, it is initially
intended as a small step forward but still be a valid instance
of "computational mathematics", deeply combining proof and
computer algebra.

Tim

\start
Date: Fri, 21 Aug 2020 06:15:37 -0400
From: Tim Daly <axiomcas@gmail.com>
To: axiom-developer@nongnu.org, axiomcas@gmail.com
Subject: Re: Axiom musings...

A briliant essay:

In exactly the same way a small change in axioms
(of which we cannot be completely sure) is capable,
generally speaking, of leading to completely different
conclusions than those that are obtained from theorems
which have been deduced from the accepted axioms.
The longer and fancier is the chain of deductions
("proofs"), the less reliable is the final result.

https://www.uni-muenster.de/Physik.TP/~munsteg/arnold.html


On 8/8/20, Tim Daly <axiomcas@gmail.com> wrote:
> Mark,
>
> You're right, of course. The problem is too large.
> So what. is the plan to achieve a research result?
>
> There are 3 major restrictions on the effort (so far).
>
> First, the focus is on the GCD in NonNegativeInteger.
> Volume 13 is basically a collection of published thoughts
> by various authors on the GCD, a background literature
> search. Build a limited system with essentially one user
> visible function (the NNI GCD) and implement all of the
> ideas there. This demonstrates inheritance of axioms,
> specification of functions, pre- and post-conditions,
> proof integration, provisos, the new compiler, etc.
>
> Second, make the SANE GCD work in the current Axiom
> system by generating compatible code. This gives a
> stepping-stone approach where things can be grounded.
> Obviously none of the new proof ideas will be expected
> to work in the current system but it "gives a place to stand".
>
> Third, develop a lattice of functions. The idea is to attack the
> functions that  depend on almost nothing, prove them correct,
> and use them to prove functions that only depend on the
> prior layer. I did this with the category structure when I first
> got the system since it was necessary to bootstrap Axiom
> without a running system (something that was not possible
> with the IBM/NAG version). That effort took several months
> so I expect that function-lattice to take about the same time.
>
> This makes the research "incremental" so that a result can
> be achieved in one lifetime. Like a PhD thesis, it is initially
> intended as a small step forward but still be a valid instance
> of "computational mathematics", deeply combining proof and
> computer algebra.
>
> Tim
>


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