(* This is the old readme file from 1998. Needs to be updated! *)

(* Read the instructions in Diffdens--Documentation.nb *)

(* New code diffdens2007.m replaces diffdens2002.m *)

(* ************************************************************************* *)
(*                                                                           *)
(*                     Documentation file DD_READM.TXT                       *)
(*                                                                           *)
(* ************************************************************************* *)
(*                                                                           *)
(*     Documentation for installing and using diffdens.m                     *)
(*     Updated: May 5, 1998 at 23:50                                         *)
(*                                                                           *)
(*****************************************************************************)
(*                                                                           *)
(*          *** M A T H E M A T I C A   P R O G R A M ***                    *)
(*                                                                           *)
(*      SYMBOLIC COMPUTATION of CONSERVED DENSITIES for SYSTEMS of           *)
(*         EVOLUTIONARY TYPE DIFFERENTIAL DIFFERENCE EQUATIONS               *)
(*                                                                           *)
(* program name: diffdens.m                                                  *)
(*                                                                           *)
(* purpose: computation of the conserved densities with possible             *)
(*          compatibility conditions                                         *)
(*                                                                           *)
(* input to diffdens.m: system of evolution type differential difference     *)
(*                      equations of any order, any degree, polynomial       *)
(*                      type, only constant parameters, variable             *)
(*                      coefficients are NOT allowed as parameters           *)
(*                                                                           *)
(* output: density and flux of desired rank (if it exists)                   *)
(*                                                                           *)
(* tested on: IBM RISC 6000, IBM Compatible PC 486, SGI Indigo2 XL           *)
(*                                                                           *)
(* language: Mathematica 3.0 (compatible with 2.2 and 2.0)                   *)
(*                                                                           *)
(* authors: Unal Goktas and Willy Hereman                                    *)
(*          Department of Mathematical and Computer Sciences                 *)
(*          Colorado School of Mines                                         *)
(*          Golden, CO 80401-1887, USA                                       *)
(*                                                                           *)
(* Version 2.0: May 4, 1998                                                  *)
(*                                                                           *)
(* Copyright 1998                                                            *)
(*                                                                           *)
(*****************************************************************************)

Copyright by Unal Goktas and Willy Hereman (1998): 
No part of the conserved density program diffdens.m may be 
reproduced or sold without written consent of the authors.

MATHEMATICA copyright and trademark of Wolfram Research, Inc., 
Urbana-Champaign, Illinois, USA.

We are glad to offer you the possibility to carry out the tedious calculations
of conserved densities for systems of differential-difference equations 
by computer.
 
                --------------------------------------

                 The main sources of information are:

1) The research paper PHYSD98.TEX: 

   Unal Goktas and Willy Hereman (1998),
   ``Computation of Conservation Laws for Nonlinear Lattices,
   Physica D (1998) in press.

   Describes the algorithm, the code, scope, limitations, usage, etc.
   Has several worked examples of DDE systems with and without parameters.
   Serves as manual for the program diffdens.m.

2) The research paper PHLETA97.TEX: 
   Unal Goktas, Willy Hereman and Grant Erdmann (1997),
   ``Computation of Conserved Densities for Systems of Nonlinear
   Differential-difference Equations, 
   Physics Letters A, vol. 236, pp. 30-38 (1997).

   Gives the algorithm and several other examples. Does not talk much 
   about the implementation, although the examples given in the text were
   obtained with diffdens.m

3) Other related papers:  

* The research paper CPC1998.TEX: 
  W. Hereman, U. Goktas, M. Colagrosso, and A. Miller 
  ``Algorithmic integrability tests for nonlinear differential and
  lattice equations", Special Issue on `Computer Algebra in Physics Research,'
  Computer Physics Communications, vol. 101 (1998) submitted.

* The research paper WESTER98.TEX: 
  Unal Goktas and W. Hereman,
  ``Symbolic algorithms to investigate nonlinear differential and 
  lattice equations", in: Comparative Computer Algebra, Ed.: M. Wester, 
  Wiley, New York (1998) submitted.

* The proceedings paper WP1998.TEX: 
  Unal Goktas and W. Hereman,
  ``Invariants and symmetries for partial differential equations and 
  lattices", Proc. Fourth International Conference on Mathematical 
  and Numerical Aspects of Wave Propagation, Ed.: J. A. DeSanto,
  Colorado School of Mines, Golden, Colorado, June 1-5, 1998, 
  SIAM, Philadelphia (1998) pp 403-407.

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

                           Related Software

A comprehensive package, called InvariantsSymmetries.m, for the computation 
of invariants (conservation laws) and higher-order symmetries has been added 
to MathSource, the program data base of Wolfram Research, Inc.

The computation of conservation laws and higher-order symmetries for 
evolution equations is also possible via the code InvariantsSymmetries.m.
The code be obtained free of cost from: 

U. Goktas and W. Hereman, 
InvariantsSymmetries.m: A Mathematica Integrability Package for the 
Computation of Invariants and Symmetries (1997). 
Available from MathSource (Item: 0208-932, Applications/Mathematics) via FTP: 
mathsource.wolfram.com or via Internet
URL: http://www.mathsource.com/cgi-bin/MathSource/Applications/0208-932.

The computation of conservation laws and higher-order symmetries for 
evolution equations (PDEs) is also possible via the code diffdens.m.  
See URL: Internet URL: http://www.mines.edu/fs_home/whereman/
or FTP to CARTAN.MINES.EDU, login with anonymous, use your email address 
or name as password. 
Then change to the directory pub/software/mathematica/condens.

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

                        Theoretical Background

The strategy of computing conserved densities for semi-discrete systems or
differential-difference equations, DDEs for short, is patterned after that 
for the continuous case of nonlinear systems of evolution equations. 

A discussion of the computation of conserved densities for the CONTINUOUS
case and some examples may be found in the papers:

(a) The research paper JSC1997.TEX (needs the jsc.sty file to be printed): 

   Unal Goktas and Willy Hereman,
   ``Symbolic Computation of Conserved Densities for Systems of Nonlinear
   Evolution Equations", Journal of Symbolic Computation, vol. 24, 
   pp. 591-621 (1997).

   Describes the algorithm, the code, scope, limitations, usage, etc.
   Has many worked examples of systems with and without parameters.
   Has two major applications. Serves as manual for the program condens.m
   Reviews other software packages, and work in progress.   

(b) The Master's thesis of Unal Goktas (not on the floppy)

   Unal Goktas (1996),
   ``Symbolic Computation of Conserved Densities for Systems of Nonlinear 
   Evolution Equations". Master of Science Thesis, Colorado School of Mines, 
   Golden, CO, U.S.A. (1996).
   Available in PostScript form as file condens.ps at FTP site given below.

   Has much more details.  

(c) File KDV95.TEX  (on the floppy in the subdirectory condens\document):

    W. Hereman and W. Zhuang,
    ``Symbolic software for soliton theory",
    Proceedings of Conference KdV '95, April 1995, Amsterdam, The Netherlands, 
    Eds.: M. Hazewinkel, H. W. Capel and E. M. de Jager, 
    Kluwer Academic Publishers, pp. 361-378 (1995).
    Also: Acta Applicandae Mathematicae, vol 39, pp. 361-378 (1995)

(d) File SCHAMEL.TEX (on the floppy in the subdirectory condens\document):

    F. Verheest and W. Hereman,
    ``Conservation laws and solitary wave solutions for generalized 
    Schamel equations", Physica Scripta, vol. 50, pp. 611-614 (1994)

(e) File MVDNLS.TEX (on the floppy in the subdirectory condens\document):

    R. Willox, W. Hereman and F. Verheest,
    ``Complete integrability of a modified vector derivative nonlinear 
    Schrodinger equation", Physica Scripta, vol. 51, pp. 21-26 (1995)

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

                         Where to get the Code

The software is also available via anonymous FTP from our two FTP sites:

CARTAN.MINES.EDU and FTP.MINES.EDU (or MINES.EDU for short)

(1)  FTP to CARTAN.MINES.EDU, login with anonymous, use your email address 
     or name as password. 
     Then change to the directory pub/software/mathematica/diffdens.

or

(2) FTP to FTP.MINES.EDU (MINES.EDU for short), login with anonymous, 
    use your email address or name as password. 
    Then change to the directory pub/papers/math_cs_dept/software/diffdens.

Alternatively, go to the World Wide Web home page of Willy Hereman

  Internet URL: http://www.mines.edu/fs_home/whereman/
  There is a hot link to the FTP site. 

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

                       What you Should Have 

In the directory DIFFDENS on this floppy, you should have the following files:

In the subdirectory PROGRAM you will find

- diffdens.m: the Mathematica source code for the program

In the subdirectory DOCUMENT you will find

- dd_readm.txt: the file you are reading now
- PHYSD98.TEX, PHLETA.TEX, CPC1998, WESTER98.TEX, and WP1998.TEX:
  papers listed above
- JSC1997.TEX, KDV95.TEX, SCHAMEL.TEX, and MVDNLS.TEX: 
  these are the other four papers listed above

In the subdirectory TESTDECK you will find, for example:

- d_toda.m:   the data file to run the Toda equation,
- d_todar5.o: the output for the Toda equation (density of rank 5).

and about a dozen other d_xxx.m files corresponding to other examples, 
all for use with diffdens.m. The data files contain either one DDE or
a system of two DDEs (usually simple equations, but there are more 
elaborate examples, such as d_herbst.m). 

Examples of data files with simple differential-difference equations 
contain the data for the Toda equation (and some of its generalizations), 
the Kac-Van Moerbeke or Volterra equation, a self-dual network equation, 
discretizations of the KdV and modified KdV, and nonlinear Schrodinger 
equations. For some of them the output files are also available, some
have the format xxx.o, others have the name xxx.txt.

The file d_ptoda.m show how to test a conserved density (known from the 
literature). It is intended to demonstrate how to enter a given form of 
the density for the Toda equation (with parameters).
That data file also shows how to enter the rank of rho, the name of
the output file, and if so desired, the weights for the dependent variables.
Entering the extra information in the data file allows the user to use our 
code less interactively. 

The various data files (d_xxx.m) and the program file (diffdens.m) need to be 
in the same directory on your mainframe or PC, where Mathematica can find them.

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

                       Installing the Program

How to install and use the program. Also, how to run examples:

After the files are in place on your system (that should have Mathematica, 
version 2.0 or higher, we used versions 2.2 and 3.0), you should try to
compute a set of conserved densities for a simple DDEs first,
for example, for the Toda or Volterra equation.
The data files are available in the menu. For comparison the output files 
are also given. 

Our program diffdens.m is a MENU DRIVEN program, which makes its use very
easy and transparent. 

Once Mathematica comes up, just read in the file diffdens.m as follows:

In[1]:= <<diffdens.m

The program will prompt the user for answers. 

New in Version 3.2: 
The program will first compute the weights of the dependent variables
(and parameters) in the system. For instance, for the Toda lattice 
weightu[1] = 1 and weightu[2] = 2.

The rank of a density should be an integer multiple of the lowest
weight of the dependent variables (and parameters, if present). 
Fractional ranks are allowed. 

If you like to compute the conserved density that is cubic in u[1] for the 
Toda lattice, you should realize that this density is of rank 3, since 
weightu[1] = 1, which means that u[1] corresponds to two derivatives with 
respect to t (for an explanation look in the above mentioned research papers).

New in Version 3.2: 
If the final density still has free coefficients c[i], then the density
will be further split into independent pieces. 

New in Version 3.2: 
We fixed a bug in the analysis of systems corresponding to lattices with 
weighted parameters. Version 3.0 reported densities as only valid if 
certain conditions for the parameters were satisfied, whereas these densities 
were valid irrespective of these conditions.  

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

                      Preparing Data Files

Example 1.  For the Toda case we have prepared the data file d_toda.m with 
the following lines:

(* d_toda.m *)

(* Toda Lattice *)

u[1][n_]'[t]:= u[2][n-1][t]-u[2][n][t];
u[2][n_]'[t]:= u[2][n][t]*(u[1][n][t]-u[1][n+1][t]);

noeqs = 2;
name = "Toda Lattice";
parameters = {};
weightpars = {};

formrho = 0; (* formrho = {} is also allowed *)

(* d_toda.m *)

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

Example 2.  For the Toda with parameters we have prepared the data file 
d_ptoda.m with the following lines:

(* start of data file d_ptoda.m *)

(* Toda Lattice with parameters *)

u[1][n_]'[t]:= aa*u[2][n-1][t]-u[2][n][t];
u[2][n_]'[t]:= u[2][n][t]*(bb*u[1][n][t]-u[1][n+1][t]);

noeqs = 2;
name = "Toda Lattice (parameterized)";
parameters = {aa,bb};
weightpars = {};

(* user can supply the rank of rho and a name for the output file *)
(* rhorank = 3; *)
(* myfile = "ptodar3.o"; *)

(* user can give the weights of u[1], u[2] *)
(* weightu[1] = 1; weightu[2] = 2; *)

formrho = 0; (* or alternatively formrho = {} *)

(* user can give the form of rho. Here, for density of rank 3: *)
(* formrho = c[1]*u[1][n][t]^3+c[2]*u[1][n][t]*u[2][n-1][t]+
             c[3]*u[1][n][t]*u[2][n][t]; *)

(* end of data file d_ptoda.m *)

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

                    Explanation of the Data File

Let us explain what the various lines in the data file d_ptoda.m. 

u[1][n_]'[t]:= aa*u[2][n-1][t]-u[2][n][t];
u[2][n_]'[t]:= u[2][n][t]*(bb*u[1][n][t]-u[1][n+1][t]);

---> u[i][n_]'[t] = ... 

     Give the i-th equation of the system in Mathematica notation. 
     Note that there is no  `== 0' at the end.
     Constant parameters (like aa and bb) in the equation are allowed.
     Note that if you request to compute a conservation law of certain rank
     which will only exist if parameters in the equation satisfy certain 
     constraints, then the program will compute these constraints.
     Run the d_ptoda.m case to see what happens!

noeqs = 2;

---> Specify the number of equations in the system.

parameters = {aa,bb};

---> Give the list of the parameters in the system.
     If there are none, set parameters = {}.

weightpars = {};

---> Give the list of the parameters that are assumed to have weights. 
     Note that weighted parameters are not listed in parameters, 
     which is the list of parameters without weight.

(* user can supply the rank of rho and a name for the output file *)

(* rhorank = 3; *)

---> Optional, give the desired rank of the density. Useful if you want 
     to work with the program less interactively (in batch mode).

name = "Toda Lattice (parameterized)";

---> Pick a short name for the system. The quotes are essential.

(* myfile = "ptodar3.o"; *)

---> Optional, give a name of the output file. Useful for less 
     interactive use of the program.

(* user can give the weights of u[1], u[2] *)

(* weightu[1] = 1; weightu[2] = 2; *)

---> Optional, specify a choice for some or all of the weights.
     The program then skips the computation of the weights, but
     still checks for consistency. Particularly useful if there are 
     several free weights and non-interactive use is preferred.

formrho = 0;  (* or alternatively formrho = {} *)

---> Since the form of the density rho is set to zero, 
     the program will automatically compute it. 

(* user can give the form of rho. Here, for density of rank 3: *)

(* formrho = c[1]*u[1][n][t]^3+c[2]*u[1][n][t]*u[2][n-1][t]+
             c[3]*u[1][n][t]*u[2][n][t]; *)

---> Alternatively, one could give a form of the density.
     The density must be given in expanded form and with coefficients c[i]. 
     If rho is given, the program skips both the computation of the weights 
     and the form of the density. 
     Instead, the code uses what is given and computes the coefficients c[i].  
     This option allows one, for example, to test densities from the 
     literature.

(* bla bla bla ..... *)

---> Anything within (* and *) are comments, they are ignored by Mathematica.

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

                      Running your own Examples

If you want to run your own example you will have to prepare a data file 
and give its name when prompted in the program menu.

The form of the density is computed based on the choice of the rank, rather 
than on the degree of rho. During the execution of the program, the user
must enter the desired rank of rho. 
The rank of rho should be an integer
multiple of the lowest weight of the dependent variables (and parameters).
However, a fractional rank are allowed (if the lowest weights is fractional).

After the computation is finished, the density rho is available. 
Type rho to see the explicit form. The density can also be displayed 
in a nicer subscript notation via subscriptform[rho]. 

The `system' for the unknown coefficients c[i] is also available. 
The flux j_n is NOT (automatically) available since it is usually not needed.
If the system for the c[i] is free of parameters and more than
50 equations it is also suppressed.

If rho depends on arbitrary coefficients c[i], it can be further
split into independent pieces via the function split. Type either
split[rho] or split[subscriptform[rho]. 

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

                            Free Weights 

(i) If there is one free weight, the program will automatically pick a
    positive (most likely integer) weight. 

(ii) If for some reason that free weight could not be determined 
     automatically, the program would still prompt you for a value. 

  Once you know what the missing information is, it can be added to the 
  data file, like this:

  weightu[1] = 1;  (* determination of a free weight *)

  Make sure that for the given equation or system all the weights can be 
  determined automatically if you want to use the program in batch mode. 

(ii) If there two or more free weights, the program will ask for information.

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

                      Another Interesting Example

Run the file d_herbst.m for to learn how to break up densities in 
independent pieces. See the paper ghlatex.tex for some of the results.

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

               Extra Information: Scope and Limitations

Our program can handle systems of first order DDEs that are
polynomial in the dependent variables.
Only one independent variable (t) is allowed.
No terms in the DDEs should have coefficients that explicitly
depend on t or n.
The program only computes polynomial conserved densities in the
dependent variables and their shifts, without explicit dependencies
on t or n.

Theoretically, there is no limit on the number of DDEs.
In practice, for large systems, the computations may take a long time or
require a lot of memory.
The computational speed depends primarily on the amount of memory.

By design, the program constructs only densities that are uniform in rank.
The uniform rank assumption for the monomials in rho_n allows one to
compute independent conserved densities piece by piece,
without having to split linear combinations of conserved densities.
Due to the superposition principle, a linear combination of conserved
densities of unequal rank is still a conserved density.
This situation arises frequently when parameters with weight are
introduced in the DDEs.

The input systems may have one or more parameters, which are assumed to
be nonzero. If a system has parameters, the program will attempt to
compute the compatibility conditions for these parameters such that
densities (of a given rank) exist.
The assumption that all parameters in the given DDE must
be nonzero is necessary.
As a result of setting parameters to zero in a given system of evolution
equations, the weights and the rank of rho_n might change.

In general, the compatibility conditions for the parameters could be
highly nonlinear, and there is no general algorithm to solve them.
The program automatically generates the compatibility conditions,
and solves them for parameters that occur linearly.
Gr\"obner basis techniques could be used to reduce complicated
nonlinear systems into equivalent, yet simpler, non-linear systems.
For DDEs with parameters and when the system for the coefficients c_i
is complicated, the program saves that system and its coefficient matrix,
etc., in the file worklog.m.
Independent from the program, the worklog files can later be analyzed 
with Mathematica functions.

The assumption that the DDEs are uniform in rank is not
very restrictive. If the uniform rank condition is violated, the user
can introduce one or more parameters with weights.
This also allows for some flexibility in the form of the densities.
Although built up with terms that are uniform in rank, the densities do not
have to be uniform in rank with respect to the dependent variables
alone.
Conversely, when the uniform rank condition is fulfilled, the
introduction of extra parameters (with weights) in the given DDE
leads to a linear combination of conservation laws, not to new ones.

In cases where it is not clear whether or not parameters with weight
should be introduced, one should start with parameters without weight.
If this causes incompatibilities in the assignment of weights (due to
non-uniformity), the program may provide a suggestion. Quite often,
it recommends that one or more parameters be moved from the list
`parameters' into the list `weightpars' of weighted parameters.

For systems with two or more free weights, the user will
be prompted to enter values for the free weights. If only one
weight is free, the program will automatically compute some choices for
the free weight, and eventually continue with the lowest integer or
fractional value.
The program selects this value for the free weight; it is just one choice
out of possibly infinitely many.
If the algorithm fails to determine a suitable value, the user will be
prompted to enter a value for the free weight.

Negative weights are not allowed.
Zero weights are allowed, but at least one of the dependent variables
must have positive weight. The code checks this condition, and if it
is violated the computations are aborted.
Note that fractional weights and densities of fractional rank are permitted.

Our program is a tool in the search of the first half-dozen
conservation laws. An existence proof (showing that there are
indeed infinitely many conservation laws) must be done analytically.
If our program succeeds finding a large set of independent conservation laws,
there is a good chance that the system of DDEs has infinitely many
conserved densities.
If the number of conserved densities is 3 or less, the DDE may have 
other than polynomial conserved densities, or may not be integrable (in 
the chosen coordinate representation).

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

                      The file WORKLOG.M

For DDEs with parameters and when the system for the coefficients c[i]
is complicated, the program saves in a `worklog.m' file the following:

- the name of the output file,
- the given system of DDEs,
- the rank of rho,
- the form of rho, 
- the system for the coefficients c[i], 
- the coefficient matrix of that system, 
- the lists of unknown coefficients c[i] and parameters p[i]

Independent from the program, the worklog files can later 
be analyzed with Mathematica functions. 

If there are parameters in the problem, then the worklog files are 
automatically saved if the number of equations, the number of unknowns and 
parameters adds up to 20 or more.

               ----------------------------------------
           
                      Example of WORKLOG.M file

This example of a WORKLOG.M file, corresponds to the discretization
of the KdV equation due to Herbst (d_herbst.m), with three parameters, 
and the computation of density of rank 3/2. 
The file is called sampwork.m on the floppy.

myfile = "d_herbr3.o"
 
rhorank = 3/2
 
formrho = aa^2*c[1]*u[1][n][t] + aa*bb*c[2]*u[1][n][t] + 
   bb^2*c[3]*u[1][n][t] + aa*c[4]*u[1][n][t]^2 + bb*c[5]*u[1][n][t]^2 + 
   c[6]*u[1][n][t]^3 + aa*c[7]*u[1][n][t]*u[1][1 + n][t] + 
   bb*c[8]*u[1][n][t]*u[1][1 + n][t] + c[9]*u[1][n][t]^2*u[1][1 + n][t] + 
   c[10]*u[1][n][t]*u[1][1 + n][t]^2 + bb*c[11]*u[1][n][t]*u[1][2 + n][t] + 
   c[12]*u[1][n][t]*u[1][1 + n][t]*u[1][2 + n][t]
 
aa = 1
bb = 1

system = {(2*dd*hh^2*c[4] + 2*dd*hh^2*c[5] + 18*c[6] - dd*hh^2*c[7] - 
       dd*hh^2*c[8] - 6*c[9])/hh == 0, dd*hh*(3*c[6] - c[9]) == 0, 
   dd*hh*(3*c[6] + c[9] - 2*c[10]) == 0, (c[9] - c[10])/(dd*hh^3) == 0, 
   (c[9] - c[10])/hh == 0, dd*hh*(c[9] - c[10]) == 0, 
   dd*hh*(-3*c[6] + 2*c[9] - c[10]) == 0, dd*hh*(-3*c[6] + c[10]) == 0, 
   (-2*dd*hh^2*c[4] - 2*dd*hh^2*c[5] - 18*c[6] + dd*hh^2*c[7] + 
       dd*hh^2*c[8] + 6*c[10])/hh == 0, 
   (6*c[9] - dd*hh^2*c[11])/(dd*hh^3) == 0, (6*c[9] - dd*hh^2*c[11])/hh == 0, 
   (-6*c[10] + dd*hh^2*c[11])/(dd*hh^3) == 0, 
   (-6*c[10] + dd*hh^2*c[11])/hh == 0, 
   (-2*dd*hh^2*c[4] - 2*dd*hh^2*c[5] - 36*c[6] + dd*hh^2*c[7] + 
       dd*hh^2*c[8] + 30*c[10] - 18*c[12])/(dd*hh^3) == 0, 
   (12*c[10] + dd*hh^2*c[11] - 18*c[12])/(dd*hh^3) == 0, 
   (-2*dd*hh^2*c[4] - 2*dd*hh^2*c[5] - 18*c[6] + dd*hh^2*c[7] + 
       dd*hh^2*c[8] + 12*c[10] + dd*hh^2*c[11] - 12*c[12])/(dd*hh^3) == 0, 
   (-2*dd*hh^2*c[4] - 2*dd*hh^2*c[5] + 18*c[6] + dd*hh^2*c[7] + 
       dd*hh^2*c[8] + 6*c[9] - 6*c[10] - 6*c[12])/hh == 0, 
   (12*c[10] - dd*hh^2*c[11] - 6*c[12])/hh == 0, 
   (dd*hh^2*c[11] - 6*c[12])/(dd*hh^3) == 0, 
   (dd*hh^2*c[11] - 6*c[12])/hh == 0, (3*c[6] - c[12])/hh == 0, 
   dd*hh*(3*c[6] - c[12]) == 0, (c[9] - c[12])/hh == 0, 
   dd*hh*(c[9] - c[12]) == 0, dd*hh*(c[10] - c[12]) == 0, 
   (-c[10] + c[12])/hh == 0, (2*dd*hh^2*c[4] + 2*dd*hh^2*c[5] - 18*c[6] - 
       dd*hh^2*c[7] - dd*hh^2*c[8] + 6*c[9] - 6*c[10] + 6*c[12])/hh == 0, 
   (-12*c[9] + dd*hh^2*c[11] + 6*c[12])/hh == 0, 
   (2*dd*hh^2*c[4] + 2*dd*hh^2*c[5] + 18*c[6] - dd*hh^2*c[7] - 
       dd*hh^2*c[8] - 12*c[9] - dd*hh^2*c[11] + 12*c[12])/(dd*hh^3) == 0, 
   (2*dd*hh^2*c[4] + 2*dd*hh^2*c[5] + 36*c[6] - dd*hh^2*c[7] - 
       dd*hh^2*c[8] - 30*c[9] + 18*c[12])/(dd*hh^3) == 0, 
   (-12*c[9] - dd*hh^2*c[11] + 18*c[12])/(dd*hh^3) == 0}
 
(* coefmatrix = ... suppressed *)
 
unknownlist = {c[1], c[2], c[3], c[4], c[5], c[6], c[7], c[8], c[9], c[10], 
               c[11], c[12]}
 
parameters = {hh, dd}

                -------------------------------------
 
                    Conclusions and Future Work

We offer the scientific community a Mathematica package to carry out the 
tedious calculations of conserved densities for systems of nonlinear DDEs. 

The code diffdens.m, together with several data and output files,
is available via anonymous FTP.

For lattices with parameters, the code automatically determines the 
compatibility conditions on these parameters so that a sequence of 
polynomial conserved densities might exist.

The existence of a large number of conservation laws is an indicator of 
integrability of the lattice.
Therefore, by generating the compatibility conditions, one can analyze 
classes of parameterized DDEs and filter out the candidates for complete 
integrability.

Future generalizations of the algorithm will exploit other symmetries in
the hope to find conserved densities of non-polynomial form. 

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

                          Contact Information

To learn about new updates of the program, or in case of trouble, contact me.

By phone: (303) 273-3881 (office, with voice mail) or 3860 (secretary), 
          or (303) 440-6089 (home, with answering service);

By fax: (303) 273-3875 (mention for Dr. Hereman)

By email: whereman@mines.edu 

By mail:

Dr. Willy Hereman
Associate Professor
Department of Mathematical and Computer Sciences
Colorado School of Mines
Golden, Colorado 80401-1887, USA

Any comments about the program are welcomed by the authors. Good luck!

Willy Hereman

Golden, May 5, 1998.

(* ************************* END of DD_READM.TXT ******************** *)
