-
Coreless, Jeffrey, Watt, Bradford, Davenport:
Reasoning about the elementary functions of complex analysis.
There are many problems with the simplification of elementary functions,
particularly over the complex plane. Systems tend to make "howlers" or
not to simplify enough. In this paper we outline the "unwinding number"
approach to such problems, and show how it can be used to prevent errors
and to systematise such simplifications, even though we have not yet
reduced the simplification process to a complete algorithm. The unsolved
problems are probably more amenable to the techniques of artificial
intelligence and theorems proving than the original problem of
complex-variable analysis.
-
Emmanuel Touratier:
Etude du typage dans le syteme de calcul scientifique Aldor
(Study of types in the Aldor scientific computation system)
-
W. M. Seiler: Applying AXIOM to Partial Differential Equations
We present an AXIOM environment called JET for geometric computations
with partial differential equations within the framework of the jet
bundle formalism. This comprises especially the completion of a given
differential equation to an involutive one according to the
Cartan-Kuranishi Theorem and the setting up of the determining system
for the generators of classical and non-classical Lie symmetries.
Details of the implementation are described and examples of
applications are given. An appendix contains tables of all
exported functions.
-
S. Boulme, T. Hardin, D. Hirschko V. Menissier-Morain, and R. Rioboo:
On the way to certify Computer Algebra Systems
The Foc project aims at supporting, within a coherent software system,
the entire process of mathematical computation, starting with proved
theories, ending with certified implementations of algorithms. In this
paper, we explain our design requirements for the implementation, using
polynomials as a running example. Indeed, proving correctness of
implementations depends heavily on the way this design allows due
mathematical properties to be truly handled at the programming level.
-
J. H. Davenport: A New Algebra System
The thesis of this note is that, in order to achieve uniform semantics
between compiled and interpreted code, and to avoid exposing all sorts
of internal hacks to the user, we require a model for the semantics
of the new algebra system. Among the requirements of this model are
that it be: 1. Simple 2. Powerful 3. Related to a user's perception of
the system. It is not necessary that it be efficient. I propose, as
I believe others have done, the Alist model for computer algebra
systems, in which a domain is conceived of as a set of values (about
which little more will be said), a set of attributes (I do not
fully understand these, but believe that they will follow much the
same lines as operations) and a set of operations. The set of operations
lists all the operations that can be performed on elements of the
domain, and the user is invited to view the system as searching
this list for an operation of the appropriate signature, and then
applying it.
-
Marc Conrad, Tim French, Carsten Maple, and Sandra Pott:
Approaching Inheritance from a "Natural" Mathematical Perspective and
from a Java Driven Viewpoint
It is well-known that few object-oriented programming languages allow
objects to change their nature at run-time. There have been a number
of reasons presented for this, but it appears that their is a real
need for matters to change. In this paper we discuss the need for
object-oriented programming languages to reflect the dynamic nature
of problems, particularly those arising in a mathematical context.
It is from this context that we present a framework that
realistically represents the dynamic and evolving characteristic
of problems and algorithms.
-
Erik Meijer, Maarten Fokkinga, Ross Paterson:
Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire
We develop a calculus for lazy functional programming based on
recursion operators associated with data type deffinitions.
For these operators we derive various algebraic laws that are
useful in deriving and manipulating programs. We shall show that
all example functions in Bird and Wadler's "Introduction to
Functional Programming" can be expressed using these operators.
-
Nicolas Robidoux: Does Axiom Solve Systems of O.D.E.'s Like Mathematica?
If I were demonstrating Axiom and were asked this question my reply
would be "No, but I am not sure that this is a bad thing", and I
would illustrate this with the following example.
-
James Davenport, Christle Faure: The "Unknown" in Computer Algebra
Computer algebra systems have to deal with the confusion between
"programming variables" and "mathematical symbols". We claim that
they should also deal with "unknowns", i.e. elements whose values
are unknown, but whose type is known. For example $x^p \ne x$ if
$x$ is a symbol but $x^p=x$ if $x\in \mathrm{GF}(p)$. We show how
we have extended Axiom do deal with this concept.
-
Saul Youssef: Prospects for Category Theory in Aldor
Ways of encorporating category theory constructions and results into
the Aldor language are discussed. The main features of Aldor which
make this possible are identified, examples of categorical
construtions are provided and a suggestion is made for a foundation
for rigorous results.
-
Utilisation de logiciels libres pour la realization do TP MT26
- akman-vicious.pdf (Book Review - Vicious Circles: On the Mathematics of Non-Wellfounded Phenomena by Jon Barwise and Lawrence Moss)
-
Simon Thompson:
Logic and Dependent Types in the Aldor Computer Algebra System
We show how the Aldor type system can represent propositions of
first-order logic, by means of the `propositions as types'
correspondence. The representation relies on type casts (using
pretend) but can be viewed as a prototype implementation of a
modified type system with type evaluation reported elsewhere.
The logic is used to provide an axiomatisation of a number of
familiar Aldor categories as well as a type of vectors.
-
William Naylor, Julian Padget:
From Untyped to Polymorphically Typed Objects in Mathematical Web Services
OpenMath is a widely recognised approach to the semantic markup
of mathematics that is often used for communication between OpenMath
compliant systems. The Aldor language has a sophisticated
category-based type system that was specifically developed for
the purpose of modelling mathematical structures, while the system
itself supports the creation of small-footprint applications
suitable for deployment as web services. In this paper we present
our first results of how one may perform translations from generic
OpenMath objects into values in specific Aldor domains, describing
how the Aldor interface domain ExpressionTree is used to achieve this.
We outline our Aldor implementation of an OpenMath translator,
and describe an efficient extension of this to the Parser category.
In addition, the Aldor service creation and invocation mechanism
are explained. Thus we are in a position to develop and deploy
mathematical web services whose descriptions may be directly
derived from Aldor's rich type language.
-
Balint Joo, Tony Kennedy: Possible Enhancements for Aldordoc
Aldordoc is an application, that extracts documentation from Aldor
programs -- in particular .asy files. It produces XML output which
can then be converted to various display formats, one of the current
supported being HTML. The appearance of the HTML output however is
quite basic, and it is to be embedded into Aldor documentation
comments. This document investigates some of these issues.
-
Larry Lambe: Next Generation Computer Algebra Systems
-
Werner M. Seiler:
Pseudo Differential Operators and Integrable Systems in AXIOM
An implementation of the algebra of pseudo differential operators in
the computer algebra system AXIOM is described. In several examples
the application of the package to typical computations in the theory
of integrable systems is demonstrated.
-
Stephen M. Watt, Peter A. Broadbery, Samuel S. Dooley, Pietro Iglio,
Scott C. Morrison, Jonathan M. Steinbach, Robert S. Sutor:
A First Report on the A# Compiler
-
Erik Poll, Simon Thompson:
Adding the axioms to Axiom - Towards a system of automated reasoning in Aldor
A number of combinations of theorem proving and computer algebra
systems have been proposed; in this paper we describe another namely
a way to incorporate a logic in the computer algebra system Axiom.
We examine the type system of Aldor - the Axiom Library Compiler - and
show that with some modifications we can use the dependent types of
the system to model a logic using the Curry-Howard isomorphism. We
give a number of example applications of the logic we construct.
-
Larry Lambe and Richard Luczak:
Object-Oriented Mathematical Programming and Symbolic/Numeric Interface
-
Renaud Rioboo:
Real Algebraic Closure of an Ordered Field, Implementation in Axiom
Real algebraic numbers appear in many Computer Algebra problems.
For instance the determination of a cylindrical algebraic
decomposition for an euclidian space requires computing with
real algebraic numbers. This paper describes an implementation
for computations with the real roots of a polynomial. This
process is designed to be recursively used, so the resulting
domain of computation is the set of all real algebraic numbers.
An implementation for the real algebraic closure has been done
in Axiom (previously called Scratchpad).
-
J. H. Griesmer, R. D. Jenks:
SCRATCHPAD/1 AN INTERACTIVE FACILITY FOR SYMBOLIC MATHEMATICS
The SCRATCHPAD/1 system is designed to provide an interactive
symbolic computational facility for the mathematician user. The
system features a user language designed to capture the style and
succinctness of mathematical notation, together with a facility
for conveniently introducing new notations into the language.
A comprehensive system library incorporates symbolic capabilities
provided by such systems as SIN, MATHLAB, and REDUCE.
-
W. M. Seiler and J. Calmet:
JET - An AXIOM Environment for Geometric Computations with
Differential Equations
Geometric methods play an important role in the analysis of
nonlinear differential equations. For example, symmetry methods
provide the more or less only systematic approach to the
construction of solutions. However, most geometric computations
tend to be very tedious. Thus the use of computer algebra systems
considerably helps in the application of these methods. JET is an
environment within the computer algebra system AXIOM to perform
such computations. The current implementation emphasizes the two
key concepts involution and symmetry. It provides some packages
for the completion of a given system of differential equations
to an equivalent involutive one based on the Cartan- Kuranishi
theorem and for setting up the determining equations for classical
and non-classical point symmetries.
-
Jean-Louis Boulanger:
Object Oriented Method for Axiom.
Axiom is a very powerful computer algebra system which combines
two languages paradigms (functional and OOP). Mathematical world
is complex and mathematician use abstraction to design it. This
paper presents some aspects of the object oriented development
in Axiom. The Axiom programming is based on several new tools for
object oriented development, it uses two levels of class and some
operations such that coerce, retract or convert which permit the
type evolution. These notions introduce the concept of multi-view.
-
Cezar Dominguez, Julio Rubio:
Modeling Inheritance as Coercion in a Symbolic Computation System
In this paper the analysis of the data structures used in a symbolic
computation system, called Kenzo, is undertaken. We deal with the
specification of the inheritance relationship since Kenzo is an
object-oriented system, written in CLOS, the Common Lisp Object
System. We focus on a particular case, namely the relationship
between simplicial sets and chain complexes, showing how the
order-sorted algebraic specifications formalisms can be adapted,
through the "inheritance as coercion" metaphor, in order to model
this Kenzo fragment.
-
Andreas Weber:
Algorithms for Type Inference with Coercions
This paper presents algorithms that perform a type inference for
a type system occurring in the context of computer algebra. The
type system permits various classes of coercions between types
and the algorithms are complete for the precisely defined system,
which can be seen as a formal description of an important subset
of the type system supported by the computer algebra program AXIOM.
Previously only algorithms for much more restricted cases of coercions
have been described or the frameworks used have been so general
that the corresponding type inference problems were known to be
undecidable.
-
Robert S. Sutor, Richard D. Jenks:
The Type Inference and Coercion Facilities in the Scratchpad II Interpreter
The Scratchpad II system is an abstract datatype programming language,
a compiler for the language, a library of packages of polymorphic
functions and parametrized abstract datatypes, and an interpreter
that provides sophisticated type inference and coercion facilities.
Although originally designed for the implementation of symbolic
mathematical algorithms, Scratchpad II is a general purpose programming
language . This paper discusses aspects of the implementation of
the interpreter and how it attempts to provide a user friendly
and relatively weakly typed front end for the strongly typed
programming language.
-
Martin Dunstan, Tom Kelsey, Steve Linton, Ursula Martin:
Lightweight Formal Methods For Computer Algebra Systems
In this paper we demonstrate the use of formal methods tools to
provide a semantics for the type hierarchy of the AXIOM computer
algebra system, and a methodology for Aldor program analysis and
verification. We give examples of abstract specifications of AXIOM
primitives, and provide an interface between these abstractions
and Aldor code.
-
Hans-Gert Graebe:
About the Polynomial System Solve Facility of Axiom, Macsyma,
Maple, Mathematica, MuPAD, and Reduce
We report on some experiences with the general purpose Computer
Algebra Systems (CAS) Axiom, Macsyma, Maple, Mathematica, MuPAD,
and Reduce solving systems of polynomial equations and the way
they present their solutions. This snapshot (taken in the spring
1996) of the current power of the different systems in a special
area concentrates both on CPU-times and the quality of the output.
-
Andre M.A. van Leeuwen:
Representation of mathematical objects in interactive books
We present a model for the representation of mathematical objects
in structured electronic documents, in a way that allows for
interaction with applications such as computer algebra systems
and proof checkers. Using a representation that reflects only
the intrinsic information of an object, and storing
application-dependent information in so-called application
descriptions, it is shown how the translation from the internal
to an external representation and vice versa can be achieved.
Hereby a formalisation of the concept of context is introduced.
The proposed scheme allows for a high degree of application
integration, e.g., parallel evaluation of subexpressions (by
different computer algebra systems), or a proof checker using
a computer algebra system to verify an equation involving
a symbolic computation.
-
Richard D. Jenks, Barry M. Trager:
How to Make AXIOM Into a Scratchpad)
Scratchpad was a computer algebra system developed in the early
1970s. Like M&M (Maple and Mathematica) and other systems today,
Scratchpad had one principal representation for mathematical
formulae based on "expression trees". Its user interface design
was based on a pattern-matching paradigm with infinite rewrite
rule semantics, providing what we believe to be the most natural
paradigm for interactive symbolic problem solving. Like M&M, however,
user programs were interpreted, often resulting in poor performance
relative to similar facilities coded in standard programming
languages such as FORTRAN and C. Scratchpad development stopped
in 1976 giving way to a new system design that evolved into
AXIOM. AXIOM has a strongly-typed programming language for building
a library of parameterized types and algorithms, and a
type-inferencing interpreter that accesses the library and can
build any of an infinite number of types for interactive use.
-
Erik Poll and Simon Thompson:
The Type System of Aldor
This paper gives a formal description of - at least a part of - the
type system of Aldor, the extension language of the computer
algebra system AXIOM. In the process of doing this a critique of
the design of the system emerges.
-
Jean Louis Boulanger:
Object Oriented Method for Axiom
Jean Louis Boulanger:
Object Oriented Method for Axiom
Axiom is a very powerful computer algebra system which combines two languages paradigms (functional and OOP). Mathematical world is complex and mathematicien use abstraction to design it. This paper presents some aspects of the object oriented development in Axiom. The axiom programming is based on several new tools for object oriented development, it uses two levels of class and some operations such that coerce: retract or convert which permit the type evolution. These notions introduce the concept of multi-view.
-
Jean Louis Boulanger:
AXIOM, A Functional Language with Object Oriented Development
We present in this paper, a study about the computer algebra system
Axiom, which gives up many very interesting Software engineering
concepts. This language is a functional language with an Object
Oriented Development. This feature is very important for modelling
the mathematical sens (All objects are functions). We present many
problems of running and development in Axiom. We can note that
Axiom is the only system of this category.
-
Jean Louis Boulanger:
AXIOM, Langage fonctionnel a developpement objet.
-
Ronald Brown, Winfried Dreckmann:
Domains of data and domains of terms in AXIOM
This paper discusses the advantages of the AXIOM symbolic computation
system, and illustrates them with some AXIOM 2.0 code for directed
graphs and free categories and groupoids on directed graphs.
In order to implement the latter, we have to make a distinction
between domains of data and domains of terms, where, for example,
the first gives the data for a finite directed graph, whereas the
latter converts this data into an object of Axiom category
DirectedGraphCategory, where the terms range over the objects and
arrows of the directed graph. --- The symbolic computation package
AXIOM provides a high level programming language with several
advantages for the coding of new mathematical structures and for
manipulating with them. In this sense it could be said to make
a contribution to "structural computation". This term reflects how
the development of computation has paralleled that of mathematics,
with, in turn, numbers, symbols, and now structures. Structures
in AXIOM are formed using what AXIOM calls "categories" and
"domains". It is in the construction of domains that the real
work of programming AXIOM takes place. A domain is a type which
defines a collection of exported symbols, which may denote types,
constants and functions.
-
Nils Anders Danielsson, John Hughes, Patrik Jansson, Jeremy Gibbons:
Fast and Loose Reasoning is Morally Correct
Functional programmers often reason about programs as if they were
written in a total language, expecting the results to carry over
to non-total (partial) languages. We justify such reasoning.
Two languages are defined, one total and one partial, with
identical syntax. The semantics of the partial language includes
partial and infinite values, and all types are lifted, including
the function spaces. A partial equivalence relation (PER) is then
defined, the domain of which is the total subset of the partial
language. For types not containing function spaces the PER relates
equal values, and functions are related if they map related values
to related values. It is proved that if two closed terms have the
same semantics in the total language, then they have related
semantics in the partial language. It is also shown that the PER
gives rise to a bicartesian closed category which can be used to
reason about values in the domain of the relation.
-
J.H. Davenport:
How does one program in the AXIOM System
AXIOM is a computer algebra system superficially like many others,
but fundamentally different in its internal construction, and
therefore in the possibilities it offers to users and programmers.
In these lecture notes we will explain, by example, the methodology
that the author uses to programming substantial bits of mathematics
in AXIOM.
-
A. D. Kennedy:
Semantics of Categories in Aldor
We consider some questions about the semantics of Aldor regarding
the way that types can be considered on an equal footing with any
other objects in the language. After a digression into the
relationship between Aldor categories and mathematical categories,
we shall discuss the more practical issue of the limitations of the
define keyword and what the compiler should do about them.
-
Nicolas James Doye:
Order Sorted Computer Algebra and Coercions
Computer algebra systems are large collections of routines for
solving mathematical problems algorithmically, efficiently and
above all, symbolically. The more advanced and rigorous computer
algebra systems, for example Axiom, use the concept of strong types
based on order-sorted algebra and category theory to ensure that
operations are only applied to expressions when they "make sense".
In cases where Axiom uses notions which are not covered by current
mathematics we shall present new mathematics which will allow us to
prove that all such cases are reducible to cases covered by the
current theory. On the other hand, we shall also point out all
the cases where Axiom deviates undesirably from the mathematical
ideal. Furthermore we shall propose solutions to these deviations.
Strongly typed systems, especially of mathematics, become unusable
unless the system can change the type in a way a user expects.
We wish any type change expected by a user to be automated,
"natural" and unique. "Coercions" are normally viewed as
"natural type changing maps" -- this thesis shall rigorously
define the word "coercion" in the context of computer algebra
systems. We shall list some assumptions so that we may prove
new results so that all coercions are unique -- this concept
is called "coherence". We shall give an algorithm for automatically
creating all coercions in type system which adheres to a set of
assumptions. We shall prove that this is an algorithm and that
it always returns a coercion when one exists. Finally, we
present a demonstration implementation of this automated
coercion algorithm in Axiom.
-
Martin Dunstan, Tom Kelsey, Ursula Martin, Steve Linton:
Formal Methods for Extensions to CAS
-
Hans-J. Boehm, Robert Cartwright, Mark Riggle:
Exact Real Arithmetic: A Case Study in Higher Order Programming
Two methods for implementing exact real arithmetic are explored.
One method is based on formulating real numbers as functions that
map rational tolerances to rational approximations. This approach,
which was developed by constructive mathematicians as a concrete
formalization of the real numbers, has lead to a surprisingly
successful implementation. The second method formulates real
numbers as potentially infinite sequences of digits, evaluated
on demand. This approach has frequently been advocated by proponents
of lazy functional languages in the computer science community.
Ironically, it leads to much less satisfactory implementations.
We discuss the theoretical problems involved in both methods,
give algorithms for the basic arithmetic operations, and give
an empirical comparison of the two techniques. We conclude with
some general observations about the lazy evaluation paradigm
and its implementation.
-
Stephen M. Watt, Peter A. Broadbery, Pietro Iglio,
Scott C. Morrison, Jonathan M. Steinbach:
FOAM: A First Order Abstract Machine (Version 0.35)
- foamManual.pdf
Pete Huerter, Stephen M. Watt: New FOAM documentation
-
Martin Dunstan, Tom Kelsey, Steve Linton, Ursula Martin:
Lightweight Formal Methods For Computer Algebra Systems
In this paper we demonstrate the use of formal methods tools
to provide a semantics for the type hierarchy of the AXIOM
computer algebra system, and a methodology for Aldor program
analysis and veri^Lcation. We give examples of abstract
specifications of AXIOM primitives, and provide an interface
between these abstractions and Aldor code.
-
Erik Poll, Simon Thompson:
Integrating Computer Algebra and Reasoning through the Type System of Aldor
A number of combinations of reasoning and computer algebra systems
have been proposed; in this paper we describe another, namely a way
to incorporate a logic in the computer algebra system Axiom.
We examine the type system of Aldor - the Axiom Library Compiler - and
show that with some modifications we can use the dependent types
of the system to model a logic, under the Curry-Howard isomorphism.
We give a number of example applications of the logic we construct
and explain a prototype implementation of a modified type-checking
system written in Haskell.
-
Dominik Gruntz:
On Computing Limits in a Symbolic Manipulation System
This thesis presents an algorithm for computing (one-sided) limits
within a symbolic manipulation system. Computing limits is an
important facility as limits are used both by other functions
such as the definite integrator and to get directly some
qualitative information about a given function. The algorithm
we present is very compact, easy to understand and easy to
implement. It also overcomes the cancellation problem other
algorithms suffer from. These goals were achieved using a uniform
method, namely by expanding the whole function into a series in
terms of its most rapidly varying subexpression instead of a
recursive bottom up expansion of the function. In the latter
approach exact error terms have to be kept with each approximation
in order to resolve the cancellation problem, and this may lead
to an intermediate expression swell. Our algorithm avoids this
problem and is thus suited to be implemented in a symbolic
manipulation system. After discussing older approaches which
are still prevalent in current computer algebra systems we
present our algorithm in the context of exp-log functions.
The algorithm is then compared with other approaches to compute
limits of exp-log functions. We show then how the algorithm can
be extended to larger classes of functions. This extension has
been designed in the spirit of symbolic manipulation systems,
i.e. we have tried to find an algorithm which can easily be
implemented in today's computer algebra systems.
Although a very pragmatic approach is used for this extension,
it turns out that many functions can be covered. Furthermore
we present an algorithm for computing hierarchical asymptotic
series, which is based on our limit computation algorithm. This
algorithm is discussed and results are presented. In a final
chapter we focus on some particular problems which appear
during an actual implementation in a symbolic manipulation
system. We show an implementation of the algorithm in Maple
and compare it on a set of examples with other implementations
of limit algorithms in other symbolic manipulation systems.
-
S. Boulme, T. Hardin, R. Rioboo:
Polymorphic Data Types, Objects, Modules and Functors, : is it too much?
Abstraction is a powerful tool for developers and it is offered
by numerous features such as polymorphism, classes, modules and
functors, ... A working programmer may be confused with this
abundance. We develop a computer algebra library which is being
certified. Reporting this experience made with a language (Ocaml)
offering all these features, we argue that they are all needed
together. We compare several ways of using classes to represent
algebraic concepts, trying to follow as close as possible
mathematical specification. Then we show how to combine classes
and modules to produce code having very strong typing properties.
Currently, this library is made of one hundred units of functional
code and behaves faster than analogous ones such as Axiom.
-
Marc Conrada, Tim French, Carsten Maple, Sandra Pott:
Mathematical Use Cases lead naturally to non-standard
Inheritance Relationships: How to make them accessible in
a mainstream language?
Conceptually there is a strong correspondence between Mathematical
Reasoning and Object-Oriented techniques. We investigate how the
ideas of Method Renaming, Dynamic Inheritance and Interclassing
can be used to strengthen this relationship. A discussion is
initiated concerning the feasibility of each of these features.
-
A. D. Kennedy:
Memory Allocation in Aldor
We propose that the mod of memory allocation in Aldor should be
another "orthogonal" property to be associated with objects.
We discuss the reasons for this in the context of large-scale
numerical computations using Aldor (the Paraldor project),
and we consider what changes might be required in the compiler.
-
Martin N. Dunstan:
Larch/Aldor---A Larch BISL For AXIOM and Aldor
PhD thesis.
-
Martin N. Dunstan:
Adding Larch/Aldor Specifications to Aldor
We describe a proposal to add Larch-style annotations to the Aldor
programming language, based on our PhD research. The annotations
are intended to be machine-chackable and may be used for a variety
of purposes ranging from compiler optimisations to verification
condition (VC) generation. In this report we higlight the options
available and describe the changes which would need to be made
to the compiler to make use of this technology.
-
Erik Poll:
The type system of Axiom
-
Simon Thompson and Leonid Timochouk:
The Aldor-- language
This paper introduces the Aldor-- language, which is a functional
programming language with dependent types and a powerful, type-based,
overloading mechanism. The language is built on a subset of Aldor,
the 'library compiler' language for the Axiom computer algebra
system. Aldor-- is designed with the intention of incorporating
logical reasoning into computer algebra computations. The paper
contains a formal account of the semantics and type system of
Aldor--; a general discussion of overloading and how the overloading
in Aldor fits into the general scheme; examples of logic within
Aldor-- and notes on the implementation of the system.