source: CGBLisp/README@ 1

Last change on this file since 1 was 1, checked in by Marek Rychlik, 15 years ago

First import of a version circa 1997.

File size: 7.2 KB
Line 
1# $Id: README,v 1.7 1997/11/30 19:33:01 marek Exp $
2
3From: rychlik@math.arizona.edu
4----------------------------------------------------------------
5I. GENERAL REMARKS
6----------------------------------------------------------------
7Dear User:
8
9 This is an experimental Comprehensive Grobner Basis package.
10In order to use the package you must be familiar with the lisp
11syntax. The command language used is that of lisp. However,
12in order to facilitate input and output, some limited facilities
13for the customary infix notation are included. The documentation
14of the Lisp code can be found in sets of automatically
15generated manuals, in the following sub-directories:
16
17 ./latex-doc - a LaTeX documentation
18 ./doc - pure text documentation
19
20The package has been tested under the following environments:
21----------------------------------------------------------------
221. SUN SPARC/UNIX, AKCL (Austing Kyoto Common Lisp version 615 )
232. Linux 1.2.13 + gcl 2.0
243. Linux 2.0 + Allegro 4.3
25----------------------------------------------------------------
26The current development environment is
27
28 Linux 2.0 + Allegro Common Lisp v. 4.3
29
30If incompatibilities arise with other environments as a result
31of new code being added, please let me know. In general, only
32then I will try to fix the compatibility issues.
33----------------------------------------------------------------
34II. THE MATHEMATICAL BACKGROUND
35----------------------------------------------------------------
36For a definition of a Comprehensive Grobner Basis, see
37
38 Volker Weispfenning, Comprehensive Groebner Bases,
39 Journal of Symbolic Computation
40 volume 14, 1992,
41 Pages 1-29
42
43That paper defines the basic notion of a Grobner System (the object that
44is calculated by the current package). In the paper you will also find
45a description of a software system which calculates Comprehensive Grobner
46Bases. Our package initially grew out of frustration with that package,
47however, we feel that in the process of writing thin new package we made
48a number of substantial improvements to the original mathematical idea
49of the Weispfenning's paper.
50
51William Dunn has written a dissertation which describes the ideas behind
52the current package. It also contains an elaboration of the ideas of
53Weispfenning. To obtain a copy, contact the author at
54................................................................
55 dunn@math.arizona.edu
56................................................................
57
58----------------------------------------------------------------
59II. HOW TO USE THE PACKAGE?
60----------------------------------------------------------------
61
62The basic operation of the package consists in typing commands at the
63Lisp prompt:
64Example: The basic example of the theory is the following
65----------------------------------------------------------------
66>(STRING-GROBNER-SYSTEM "[x+y,x+u*y]" '(X Y) '(U))
67------------------- CASE 1 -------------------
68Condition:
69 Green list: [ ]
70 Red list: [ U - 1 ]
71 Basis: [ (U - 1) * X, ( - U + 1) * Y ]
72------------------- CASE 2 -------------------
73Condition:
74 Green list: [ U - 1 ]
75 Red list: [ ]
76 Basis: [ (1) * X + (1) * Y ]
77----------------------------------------------------------------
78This example calculates the Grobner System corresponding to the
79ideal [x+y,x+u*y] in k[u][x,y], where u is a parameter. The output
80consists of a number of CASES. The cases correspond to distinct elements
81of the partition of the parameter space. The "Green List" is a list of
82polynomial in parameters that are 0 on a given chunk of the parameter space,
83while "Red List" is a list of polynomials which are different from 0.
84Thus, CASE 1 corresponds to those parameters for which u is not 1,
85while CASE 2 corresponds to u=1. The "Basis" part lists a plain Grobner Basis
86of the ideal in k[x,y] obtained by specializing the parameter u in such
87a way that the restriction imposed by the corresponding Green List and Red
88List are satisfied.
89
90The ideal specification is given as string "[x+y,x+u*y]". As a rule, when
91we have a command in our package which starts with a prefix string-... then
92one or more of the arguments are going to have a form of a string. This string
93is immediately parsed from infix notation to internal form and then typically
94a corresponding command without the prefix string-... is called to perform the
95calculation on internal representation. Most of the string commands provide
96a keyword argument :suppress-value which is by default set to T, but if it
97is set to NIL, the corresponding internal form of the answer is returned.
98
99The ./tests subdirectory of the distribution directory contains
100several files which can be used as examples of problem formulation
101in the form acceptable to cgb-lisp
102
103For more examples, see the files colored-poly-tests.lisp and
104colored-poly-tests.output. These files are used by me to test the
105operation of the primary commands of the package.
106----------------------------------------------------------------
107IV. INSTALLATION
108----------------------------------------------------------------
109First make an empty directory of your choice, say /usr/local/CGBlisp.
110The following instructions require a modification if you install
111in a different directory.
112
113 0. Copy the tared and compressed source (cgb.tar.gz) into /usr/local/CGBlisp
114 Unpack the files:
115
116 % zcat cgb.tar.gz | tar xvf -
117 1. Change working directory to /usr/local/CGBlisp/src.
118
119 2. Start your Common Lisp in the src directory and do
120 > (load "defsystem.lisp")
121 > (in-package :make-cgb)
122 Then do
123 MAKE-CGB> (cgb-load)
124 to get an interpreted version of the package (slow!) or
125 make a compiled version with
126 MAKE-CGB> (cgb-compile-and-load)
127 If you want, you may create a custom binary by dumping
128 core and making it executable, in a fashion depending on your
129 lisp system. For instance, kcl/gcl uses
130 MAKE-CGB> (cgb-save "fileOfYourChoice")
131 and Allegro Common Lisp uses
132 MAKE-CGB> (dumplisp :name "fileofyourchoice")
133 If you do not create the custom binary, each time you start
134 your Lisp, you will need to repeat the first two steps, i.e.
135
136 > (load "defsystem.lisp")
137 > (make-cgb::cgb-load)
138 > (in-package :cgb-lisp)
139 to get either an interpreted or compiled version of the package.
140
141NOTE: Some lisps use .lisp as extension of Lisp source code and others
142.lsp, and perhaps others. You will need to rename and edit all files
143if the extension .lisp is not accepted.
144
145Yet another compatibility issue may arise from the fact that this
146package was developed before the ANSI standard was finalized. Thus,
147compatibility issues arise, for instance with the current version of
148Allegro Common Lisp because the package uses the "Cltl1" conventions
149(the book of Guy Steele which was a de facto Common Lisp definition in
150the 80's). The incompatibilities for Allegro were resolved in
151defsystem.lisp by setting some Allegro switches which turn on "Cltl1"
152conventions for package loading and compilation. You may need to
153adapt the same strategy with other lisps, or rewrite the top of each
154file to observe the new ANSI standard.
155
156----------------------------------------------------------------
157V. FINAL REMARKS
158----------------------------------------------------------------
159Please send your comments to me, and I will try to improve your package
160according to your suggestions.
161
162Enjoy,
163
164--Marek Rychlik (rychlik@math.arizona.edu)
165
166
Note: See TracBrowser for help on using the repository browser.