# REDUCE 3.7 Documentation

REDUCE 3.7 includes considerable documentation, not only for the core system, but also for the many application packages included in the release. Except where noted, the documentation is available in PDF format, which requires the free Acrobat reader for viewing.

One key document is the REDUCE User's Manual, version 3.7. This provides a comprehensive guide to the REDUCE language and the supported packages. A Postscript version of this and a Japanese version in HTML are also available. A primer for the symbolic mode of REDUCE and the Standard Lisp Report are also online.

The particular packages with their own documentation are as follows:

• applysym This package provides three programs APPLYSYM, QUASILINPDE and DETRAFO for computing with infinitesimal symmetries of differential equations.
• arnum This package provides facilities for handling algebraic numbers as polynomial coefficients in REDUCE calculations. It includes facilities for introducing indeterminates to represent algebraic numbers, for calculating splitting fields, for factoring and for finding greatest common divisors in such domains.
• assist ASSIST contains a large number of additional general purpose functions that allow a user to better adapt REDUCE to various calculational strategies and to make the programming task more straightforward and more efficient.
• avector This package performs vector algebra using the same notation as scalar algebra. The basic algebraic operations are supported, as are differentiation and integration of vectors with respect to scalar variables, cross product and dot product, component manipulation and application of scalar functions (e.g. cosine) to a vector to yield a vector result.
• boolean This package supports computation with boolean expressions in the propositional calculus. The data objects are composed from algebraic expressions connected by the infix boolean operators and, or, implies, equiv, and the unary prefix operator not. BOOLEAN allows you to simplify expressions built from these operators, and to test properties like equivalence, subset property etc.
• cali CALI contains algorithms for computations in commutative algebra closely related to the Groebner algorithm for ideals and modules. Its heart is a new implementation of the Groebner algorithm that also allows for the computation of syzygies. This implementation is also applicable to submodules of free modules with generators represented as rows of a matrix.
• camal  This package implements in REDUCE the Fourier transform procedures of the CAMAL package for celestial mechanics.
• cantens  CANTENS is a package that creates an environment inside REDUCE which allows the user to manipulate and simplify expressions containing various indexed objects such as tensors, spinors, and quantum fields.
• cgb  The CGB package provides functions for computing both Comprehensive Groebner Bases (CGB's) and conventional Groebner systems, and for turning Groebner systems into CGB's.
• changevr  This package provides facilities for changing the independent variables in a differential equation. It is basically the application of the chain rule.
• compact  COMPACT is a package of functions for the reduction of a polynomial in the presence of side relations. COMPACT applies the side relations to the polynomial so that an equivalent expression results with as few terms as possible.
• conlaw  This package presents three different approaches for the determination of conservation laws of differential equations. A paper describing these approaches is also available.
• crack  CRACK is a package for solving overdetermined systems of partial or ordinary differential equations (PDEs, ODEs). Examples of programs which make use of CRACK for investigating ODEs (finding symmetries, first integrals, an equivalent Lagrangian or a "differential factorization") are included.
• cvit  This package provides an alternative method for computing traces of Dirac gamma matrices, based on an algorithm by Cvitanovich that treats gamma matrices as 3-j symbols.
• defint  DEFINT finds the definite integral of an expression in a stated interval. It uses several techniques, including an innovative approach based on the Meijer G-function, and contour integration.
• desir  This package enables the basis of formal solutions to be computed for an ordinary homogeneous differential equation with polynomial coefficients over Q of any order, in the neighborhood of zero (regular or irregular singular point, or ordinary point).
• dfpart  This package supports computations with total and partial derivatives of formal function objects. Such computations can be useful in the context of differential equations or power series expansions.
• dummy  This package allows a user to find the canonical form of expressions involving dummy variables. In that way, the simplification of polynomial expressions can be fully achieved. The indeterminates are general operator objects endowed with as few properties as possible.
• eds   EDS provides a number of tools for setting up and manipulating exterior differential systems and implements many features of the theory. Its main strengths are the ability to use anholonomic or moving frames and the care taken with nonlinear problems.
• excalc  The EXCALC package is designed for easy use by all who are familiar with the calculus of Modern Differential Geometry. The program is currently able to handle scalar-valued exterior forms, vectors and operations between them, as well as non-scalar valued forms (indexed forms).
• fide  This package uses computer algebra to automate the process of numerically solving systems of partial differential equations (PDES). For PDE solving, the finite difference method is applied. (Note: the documentation for this package is in text format.)
• fps  This package can expand a specific class of functions into their corresponding Laurent-Puiseux series.
• gentran  This package is an automatic code GENerator and TRANslator. It constructs complete numerical programs based on sets of algorithmic specifications and symbolic expressions. Formatted FORTRAN, RATFOR or C code can be generated through a series of interactive commands or under the control of a template processing routine.
• geometry  This package provides tools for the formulation and mechanized proofs of geometry statements in the spirit of the "Chinese Prover" of W.-T. Wu and the fundamental book of S.-C. Chou who proved 512 geometry theorems with this mechanized method.
• ghyper  The GHYPER package simplifies several cases of generalized hypergeometric functions. The simplifications are performed in terms of polynomials, elementary or special functions, or simpler hypergeometric functions.
• gnuplot  The GNUPLOT package lets one use the GNUPLOT graphical system directly from inside REDUCE, either for the interactive display of curves/surfaces or for the production of pictures on paper.
• groebner  The GROEBNER package calculates Groebner bases using the Buchberger algorithm and provides related algorithms for arithmetic with ideal bases, such as ideal quotients and Hilbert polynomials.
• ideals  This package implements the basic arithmetic for polynomial ideals by using the REDUCE Groebner bases package.
• ineq  This package supports the ineq_solve operator that attempts to solve single inequalities and sets of coupled inequalities.
• invbase  Involutive bases are a new tool for solving multivariate polynomial problems, such as solving systems of polynomial equations and analyzing polynomial ideals. An involutive basis of a polynomial ideal is nothing more than a special form of a redundant Groebner basis. The construction of involutive bases reduces the problem of solving polynomial systems to simple linear algebra.
• laplace  This package can calculate ordinary and inverse Laplace transforms of expressions.
• lie  LIE is a package of functions for the classification of real n-dimensional Lie algebras.
• liepde  LIEPDE computes infinitesimal symmetries for a given single system of differential equation(s) (ODEs or PDEs).
• limits  LIMITS is a fast limit package for REDUCE for functions which are continuous except for computable poles and singularities.
• linalg  This package provides a selection of functions that are useful in the world of linear algebra.
• mathml  The MathML interface for REDUCE provides an easy to use series of commands, allowing it to evaluate and output MathML.
• meijerg  The MEIJERG package simplifies several forms of Meijer's G function. The simplifications are performed in terms of polynomials, elementary or special functions, or (generalized) hypergeometric functions.
• mrvlimit  This package extends the range of problems that can be solved by the LIMITS package.
• ncpoly  This package allows the user to set up automatically a consistent environment for computing in an algebra where non-commutativity is defined by Lie-bracket commutators.
• normform  This package defines an operator smithex that computes the Smith normal form of a matrix.
• numeric  The numeric package supplies procedures based on the approximation techniques of numerical mathematics. The procedures use the rounded mode arithmetic of REDUCE, including the variable precision feature which is exploited in some algorithms in an adaptive manner to reach the desired accuracy.
• odesolve  The ODESOLVE package is a solver for ordinary differential equations. At the present time it can handle only a single scalar equation presented as an algebraic expression or equation, and it can solve only first-order equations of simple types, linear equations with constant coefficients and Euler equations.
• orthovec  ORTHOVEC is a collection of REDUCE procedures and operations which provide a simple-to-use environment for the manipulation of scalars and vectors.
• physop  This package provides a tool for theoretical physicists wishing to perform calculations in quantum theory with expressions containing operators. These operations consist mainly of the calculation of commutators between operator expressions, and in the evaluation of operator matrix elements in some abstract space.
• pm  PM is a general pattern matcher similar in style to those found in systems such as Mathematica.
• polydiv  This package provides better access to the standard internal polynomial division facilities of REDUCE and implements polynomial pseudo-division. It provides optional local control over the main variable used for division.
• qsum  This package is an implementation of the q-analogues of Gosper's and Zeilberger's algorithm for indefinite and definite summation of q-hypergeometric terms. A Postscript version is also available.
• randpoly  This package is based on a port of the Maple random polynomial generator together with some support facilities for the generation of random numbers and anonymous procedures.
• rataprx This package provides functions to convert rational numbers into their periodic representation and vice versa, to compute continued fractions and to compute the Padé approximant of a function.
• ratint This package implements the Horowitz/Rothstein/Trager algorithms for the integration of rational functions.
• reacteqn  This package transforms chemical reaction systems into ordinary differential equation systems corresponding to the laws of pure mass action.
• redlog  REDLOG extends REDUCE to a computer logic system implementing symbolic algorithms on first-order formulas with respect to temporarily fixed first-order languages and theories.
• residue  This package supports the calculation of residues.
• rlfi  The RLFI package provides the printing of REDUCE expressions in LaTeX format, so it can be used directly for document production.
• roots  The root finding package finds some or all of the roots of univariate polynomials with real or complex coefficients, to the accuracy specified by the user.
• rsolve  The r_solve operator computes all exact rational zeros of a single univariate polynomial using fast modular methods. A companion operator i_solve computes only integer zeros by a more efficient method than extracting them from the rational zeros.
• rtrace  This package provides tracing and debugging facilities for REDUCE programming. It is a portable version of the PSL-based rdebug package.
• scope  SCOPE is a package for producing an optimized form for a set of expressions. It applies a heuristic search for common (sub)expressions in a set of REDUCE assignment statements. The output is a sequence of assignment statements.
• sets  The SETS package provides algebraic-mode support for set operations on lists regarded as sets (or representing explicit sets) and on implicit sets represented by identifiers.
• sparse  This package extends the available matrix feature to enable calculations with sparse matrices. It also provides a selection of functions that are useful in the world of linear algebra with respect to sparse matrices.
• spde  The SPDE package provides functions for determining the symmetry group of Lie- or point-symmetries of a given set of partial differential equations. In many cases the determining system is solved automatically. In other cases the user has to provide additional information for the solution algorithm to succeed.
• specfn  This package supplies extended algebraic and numeric support for a wide class of special functions.
• sum  The sum operator returns the indefinite or definite summation of a given expression.
• susy2  This package deals with supersymmetric functions and with the algebra of supersymmetric operators in the extended N=2 as well as in the nonextended N=1 supersymmetry.
• symmetry  The SYMMETRY package computes symmetry-adapted bases and block diagonal forms of matrices that have the symmetry of a group. The package implements the theory of linear representations for small finite groups such as the dihedral groups.
• taylor  This package defines procedures that compute Taylor expansions in one or more variables and efficient manipulation of the resulting series.
• tps  This package implements formal Laurent series expansions in one variable using the domain mechanism of REDUCE, so that power series objects can be added, multiplied, differentiated etc., like other first class objects in the system.
• tri  This package provides facilities written in Rlisp for typesetting REDUCE formulas using TEX. Examples of using this program are also available.
• trigint  This package is an implementation of a new algorithm proposed by D.J. Jeffrey and A.D. Rich that removes "spurious" discontinuities from integrals.
• trigsimp  TRIGSIMP is a useful tool for all kinds of trigonometric and hyperbolic simplification and factorization.
• turtle  A simple implementation of the "Turtle Graphics" style drawing graphs in REDUCE. The background and ideas for "Turtle Graphics" are also outlined.
• wu  This is a simple implementation of the Wu algorithm taken directly from A Zero Structure Theorem for Polynomial-Equations-Solving, Wu Wen-tsun, Institute of Systems Science, Academia Sinica, Beijing.
• xcolor  This package calculates the color factor in non-abelian gauge field theories using an algorithm due to Cvitanovich.
• xideal  XIDEAL constructs Groebner bases for solving the left ideal membership problem: Groebner left ideal bases or GLIBs.
• zeilberg  This package implements the Gosper and Zeilberger algorithms for indefinite and definite summation of hypergeometric terms, respectively.
• ztrans  This package is an implementation of the Z-transform of a sequence, which is the discrete analogue of the Laplace Transform.

## Lisp System-specific Documentation

A REDUCE implementation is built at the present time on one of two Lisp systems; Codemist Standard Lisp (CSL) or Portable Standard Lisp (PSL). The following documents are specific to the PSL version:
• pc-install  Installation guide for the PC version of PSL REDUCE. A Postscript version is also available.
• pc-oper  User's guide for the PC version of PSL REDUCE. A Postscript version is also available.
• pslman  The PSL Users Manual, Version 4.2. A Postscript version is also available.
• rdebug  This package supports the use of the tracing and debugging facilities of PSL for REDUCE programming. A Postscript version is also available.
• unix-inst  Installation guide for the Unix version of PSL REDUCE. A Postscript version is also available.
• unix-oper  User's guide for the Unix version of PSL REDUCE. A Postscript version is also available.