
### Only the two first items in this file todo and ###
### bugs, will be continued to be renewed.         ###

=========================================================

#    doc/todo: 04-05-04:

2004-05-04 jOEb:
 * Enter more `free floating' modes into the compact
   mode handler. This includes: SAWS modifications;
   MODULE or TWOMODULES module variable numbers;
   homogeneity.

 * Fix the common lisp independence of compile.sl
   et cetera.

2003-11-01 JoeB: Common Lisp now have troubles with
lambda expressions. I am not sure of how to overcome
this, but I have a memory that we found some (partial?)
remedies earlier.

 This touches the new FINDMODECLASHES family of
procedures (by means of ModeSettingP), and also
employing the procedure alternative for argument
to SETHSERIESMINIMUMDEFAULT.

2003-10-29 JoeB:
 (* Checksetup: E.g., modules do not work within the
   commutative case now. Add some "Incompatibilities
   checker". DONE 2004-05-04.)

 * The DIALOGUE is rather underdeveloped. Test its clisp
   abilities, inter alia!

(* CLEARIDEAL removes the variable number information.
   This should not be so. On the other hand, a new
   CLEARRING might do this - and much more.
   [FIXED 2003-11-01] )

2003-08-28 JoeB:
 * Move (at least the source files of) the new run
   test files from bin/Linux_elf to tests.

 * Merge the loose pieces of documentation - such as
   ReadMe and ReadMe0.91.var (with info on log files);
   KnownBugs and known.bugs; News, ... .

 * Make a 'make' based version of mkbergman.

2003-08-18 JoeB: Fix the linear and constant input
problems by adding a new mode difference. Some efficient
procedures be replaced by safer ones, when linear or
constant inputs are acceptable. (May or may not be
ord/altweights dependent, simultaneously.)

 Affected procedures include:
 LC2, ALGFORMINPUT (or one of its auxiliaries),

2002-10-09 JoeB: Check why (nc) FixNGbe collapses with
linear input.

2002-06-28 JoeB: Move setting of EMBDIM from PBINIT to
noncommMonomialInit ... and replace it perhaps by
!&!*InnerEmbDim!&!* setting, like in commMonomialInit?
Problem, of course: We may do calculations with embdim
unset, if PB is off, but not if it is on. Thus perhaps:
Make a tentative setting in noncommMonomialInit, and an
obligatoric one (if not yet set) in PBSERIES.

Also, unset !&!*InnerEmbDim!&!* in case of clearing the
variables. Actually, this should perhaps be reset when variables
are?

1999-11-26 JoeB: Make the last argument to mkbergman in unix
environments facultative; using cd $0 and an adequate
cd ../.. ... /.. in order to get to the bmroot and $cwd extract
it (at a suggestion from SV). However, warn for the use of this
alternative!
 Check if caseconv now is OK, so that one may apply it even
when the xsrc and xauxil directories did exist.

1999-06-28 JoeB: Make the HSERIESMIN procedures self-loading.
Introduce CLEARing of hseriesminima. Make setting hseriesmin
strategy to load hseries (if not done).

1999-06-27 JoeB: According to SV, the single instance of a
case non-distinction potential name clash would be
noncommMonTimes2 versus noncommMONTIMES2 (in ncmonom.sl).
Perhaps should rename one of them, in order to facilitate
for others to adapt the bm sources in other settings?

1997-10-12 JoeB: Add ncCALCPOLRING (or better ncCALCFREERING),
which  sets INVHILBERTSERIES appropriately, and which in the
same cases as in the next note calculates HILBERTSERIES up to
MAXDEG.

1997-10-12 ufn: Suggestion: if Maxdeg was greater than obtained
maximum degree in GB, continue to calculate Hilbert(Poincare)series
untill Maxdeg.

1997-09-18 JoeB: Fix weight setting and variable setting in such
ways that they are consistent from the user point of view. If
necessary, distinguish internal weight lists and dplists from
interface forms.

1997-09-08 JoeB: Fix the non-comm exponent output. Introduce new
modifications: a PRINTEXPONENTS flag (default: T); flag deciding
whether the exponents be collected or spread. DONE 09-18
And a flag or mode setter deciding whether the first or the last
variable be the highest in standard orders.

1997-08-27 JoeB: DOCUMENT setweights. Add getweights, clearweights,
printweights. Make it compatible with series calculation, Anick,
stagger, (de)homogenisation.
 Make (de)homogenisation variants in the non-commutative case.
 Write the file output checker.

1997-08-15: JoeB: Either include YESP in slext.sl, or exclude it from
the module series procedures.

1997-05-22: JoeB: Investigate if the AddTo!&Char0Lists calls in stg.sl
for AutoReduceFix, StagFormSPol, ReduceSubstantialPol, and
STAGGERFINISH are adequate.

1997-04-09: JoeB: Fix a nice and neat way of calculating pbseries etc.
to a given degree; and DOCUMENT this!!

1997-04-07: JoeB: Remove the Char2RedorMonMult definition (or rather,
replace the Char0 one by this).
 I also seem to have started replacing DestructRedandTermPlus by
DestructQPolTermPlus, but I have not completed this?

1997-03-03: JoeB: Check through files outside Char0 for definitions of
or occurrences of Char0FOO variants. I believe that RETURNING to Char0
might not work now; it should be fixed as above, and by making ALL
FOO-out-of-Char0 initiations at the end of char0.sl, by a call to
RESTORECHAR0, if possible.

1996-12-17: Jan S & Ralf: Add possibility to INPUT H series as numerator
+ denominator degree.

1996-12-09: Ralf: Add (at least) the orders you wish to use at elimination
problems: block orders with specific variables (of various degrees); 2
degrevlex blocks being enough.
 In a Hilbert series driven algorithm, add Moreno's 'criterium' (optionally):
If a reduction leads to 0 in the beginning, then they mostly continue
in the same manner. Thus, skip such calculations. If not all new Gbe's
which should be there are found, in a new pass calculate them to the
bitter end.

1996-11-28 Ralf: Imitate Gotzmann? (Dynamically calculate several
series, for to see if by Gotzmanns theorem no more should be calculated.)
Likewise, if 0 reached, interrupt!

1996-11-27:
 - Fix stagger as `proper' and revertible mode. (Fix stagsubs.sl accordingly.)
 - Fix file and dynamic prime logarithm table making.
 - Fix `generic' system saver (in slext.sl).
 - Integrate the newdomain content into other souce files.
 - Integrate comm and nc series handling. (Should sermul be integrated, too?)
   (Hilbert series driven algorithms included.)
 - Set up proper modes for anick.
 - Collect documentation from various sources (incl. Lund and ~sanya).
   Integrate it, on the doc area.
 - Make easy-to-access handling of several rings, G-bases, series, et
   cetera simultaneously.

Most of this should be in the version 1.0!
The following probably should wait:
 - Adopt bergman to the latest Psl and Reduce versions.
 - Set up proper modes for (V.U. and S.C.) module Gbases et cetera.
 - Make easy-to-access handling of several rings, G-bases, series, et
   cetera simultaneously.
 - Make a general command interpreter tool; to be used in alginput,
   and as a base of a `macaulay-like' interpreter.
 - Make bergman available with Common Lisp.
 - Possibly, make bergman available with C.
 - Trace strategic submode mode
 /JoeB


===========================================================================

#      doc/bugs; 04-04-30:

------------------------------------------------------------------
04-04-30 Kae,JoeB: The MODULEHSERIES from the test sequence now
gives an erroneous Hilbert series. (The error appeared between
versions 0.97 and 0.975.)
------------------------------------------------------------------


------------------------------------------------------------------
00-07-01 JoeB: First setting weights, then changing order doesn't
work. Probably similarly for setting variables before order.
 Should it work? Else, we should warn!
------------------------------------------------------------------



------------------------------------------------------------------
99-07-02 SV, JoeB: Erroneous RETURN from PROGN in the anick
t_inout procedures anAssignSDPMode and anAssignTMstrings.
------------------------------------------------------------------



------------------------------------------------------------------
99-02-09 JoeB: Make mode changer alternatives for the pbseries
display procedure in pbseries; and check why turning it off by
redefinition in Roos's script for multi-input anick wasn't
successfull.
------------------------------------------------------------------



------------------------------------------------------------------
99-02-09 JoeB: primaux.sl doesn't compile nicely.
------------------------------------------------------------------



------------------------------------------------------------------
98-10-26 JoeB: Don't forget to fix an appropriate case conversion
update check in the make-bergman scripts!
------------------------------------------------------------------



------------------------------------------------------------------
98-10-23 SK: Some bugs related to case conversion were 
found in mkbergman.

1. $src should be replaced by $bmsrc
2. In the "if"  statement && should be replaced by ||
------------------------------------------------------------------



------------------------------------------------------------------
98-10-23 SK: After the loading of image file in version 0.926 the
message "bergman0.925.img" is displayed.
------------------------------------------------------------------



------------------------------------------------------------------
98-10-22: oldded is very badly used in NCPBHGROEBNER (topproc.sl).
------------------------------------------------------------------



------------------------------------------------------------------
98-10-21 JoeB: SETSETUP doesn't work well with
 (STRATEGY (INTERRUPTION ORDINARY)).
------------------------------------------------------------------



------------------------------------------------------------------
98-02-05: $bmdomains/mkprimefile should be changed to $bmshells/mkprimefile

 --- Done (JoeB) 1998-08-24 ---
------------------------------------------------------------------



------------------------------------------------------------------
97-10-24 JoeB: Staggering problems; e.g.:
pavidus[19]./bin/sun4/bergman
Bergman 0.922, 12-Oct-97
1 lisp> (stagsimple) vars x,y; x^2,x*y+y^2;
*** Function `STAGSIMPLE' has been redefined
*** Function `DEGREEENDDISPLAY' has been redefined
Now input in-variables and ideal generators in mapleform, thus:
        vars v1, ..., vn;
        r1, ..., rm;
where v1, ..., vn are the variables, and r1, ..., rm the generators.
SetupGlobals
 ... done
% 2
x*y+y^2,
   x^2,
   
*** Garbage collection starting
*** GC 1: 24-Oct-97 17:54:02 (~ 272 ms cpu time, gc : 18 %)
*** time 51 ms, 17438 occupied, 10929 recovered, 1682562 free
***** Segmentation Violation in commMonTimes
Break loop
2 Bergman (with stag) break (1) > I
Backtrace, including interpreter functions, from top of stack:
INTERPBACKTRACE C!h!a!r0C!o!n!cP!o!lNM!o!nM!u!l!t 
D!e!n!s!eC!o!n!t!e!n!tC!h!a!r0P!o!lL!i!nC!o!m!b R!e!d!u!c!eP!o!lS!t!e!p 
R!e!d!u!c!eS!u!b!s!t!a!n!t!i!a!lP!o!l STAGGERKERNEL PROG STAGSIMPLE 
STAGSIMPLE STANDARDLISP

 --- Done (JoeB) 1998-08-24 ---
------------------------------------------------------------------



------------------------------------------------------------------
97-09-16 JoeB: Compiling yields the following warnings:
*** in C!h!e!c!kI!n!p!u!t: InRingFile declared fluid
C!h!e!c!kI!n!p!u!t
*** in C!h!e!c!kO!u!t!p!u!tGB: GbOutFile declared fluid
C!h!e!c!kO!u!t!p!u!tGB
*** in C!h!e!c!kO!u!t!p!u!tH!s: HsOutFile declared fluid
C!h!e!c!kO!u!t!p!u!tH!s
 and
*** in ANICKDISPLAY: OldChan declared fluid
ANICKDISPLAY
------------------------------------------------------------------



------------------------------------------------------------------
97-08-27 JoeB: pbseries do not work with setweights. E. g.:
(setweights 2 1)
NIL
...(simple) vars y,x; x*x-y, y^10;
Now input in-variables and ideal generators in algebraic form, thus:
        vars v1, ..., vn;
        r1, ..., rm;
where v1, ..., vn are the variables, and r1, ..., rm the generators.
+t^2*(z^2)
% 2
x*x-y,
   
*** Garbage collection starting
*** GC 5: 27-Aug-97 17:29:01 (~ 442 ms cpu time, gc : 34 %)
*** time 34 ms, 16898 occupied, 265 recovered, 1683102 free
+t^3*(z^2+z^3)
% 3
x*y-y*x,
   
*** Garbage collection starting
*** GC 6: 27-Aug-97 17:29:01 (~ 476 ms cpu time, gc : 39 %)
*** time 34 ms, 17012 occupied, 144 recovered, 1682988 free
+t^4*(z^3+z^4)
*** Garbage collection starting
*** GC 7: 27-Aug-97 17:29:01 (~ 493 ms cpu time, gc : 41 %)
*** time 17 ms, 17074 occupied, 144 recovered, 1682926 free
***** Index `8' out of range for NIL in PNTH
Break loop
13 lisp break (1) > I
Backtrace, including interpreter functions, from top of stack:
INTERPBACKTRACE PNTH F!i!n!dN!e!wRMF!s2 F!i!n!dN!e!wRMF!s< F!i!n!dN!e!wRMF!s 
F!i!xNG!b!e GROEBNERKERNEL PROG SIMPLE STANDARDLISP 
NIL
------------------------------------------------------------------


------------------------------------------------------------------
97-08-17 A seemingly variable assignment depending bug in
bergman-under-Reduce:
Red/sun4/bergman

4: in "$bmsrc/redif.red";
COMMENT Reduce interface procedures. May be loaded from Reduce (with
normal Reduce syntax, no 'lisp-hook*'. Provides a rudimentary interface
for using bergman from Reduce.
 All mode-changers - including setiovars - must be run symbolically.
Then bmgroebner may be called FROM ALGEBRAIC MODE, with a list of
polynomials as (single) argument. Each polynomial should be homogeneous,
and ONLY contain set bergman input variables. If all is well, bmgroebner
returns a reduced groebner basis (as a list of polynomials):
 Right now, only integer or standard form coefficients are permitted;


SYMBOLIC;

	.
	.
	.

!o!r!dbmgroebnerexpr





ON RAISE;


nil


ALGEBRAIC;



;

END;

5: algebraic;

6: set := {(x+y)*(x-y),x*y};

         2    2
set := {x  - y ,x*y}

7: lisp (setinvars '(x y));

8: lisp getiovars();

((x y))

9: bmgroebner(set);

{1,0,0}

 It seems to work if setiovars is used. Perhaps a feature rather than
a bug.



Another bug:
pavidus[30]Red/sun4/bergman

4: noncommify(); setiovars '(x y);simple();

nil


nil

Now input in-variables and ideal generators in algebraic form, thus:
        setinvars v1, ..., vn;
        r1, ..., rm;
where v1, ..., vn are the variables, and r1, ..., rm the generators.
algebraic form (noncomm.) input> x^2-y^2,x*y;
***** Segmentation Violation in algforminput


^$$$2-y^2,x*y;

***** Redundant operator 

 The same bug appears in commutative mode. Might be related to
the next bug:
------------------------------------------------------------_____



-----------------------------------------------------------------
97-08-17 It appears a bug in examples without relations 
a) in R-LISP syntax under Unix;
b) both in ordinary (lisp) and R-Lisp mode under Ms Dos.

This example was running under Unix:

43: simple();
Now input in-variables and ideal generators in algebraic form, thus:
        setinvars v1, ..., vn;
        r1, ..., rm;
where v1, ..., vn are the variables, and r1, ..., rm the generators.
algebraic form (comm.) input> setinvars x,y;
algebraic form (comm.) input> ;
***** Segmentation Violation in listcopy

44: clearall();

nil

45: simple();
Now input in-variables and ideal generators in algebraic form, thus:
        setinvars v1, ..., vn;
        r1, ..., rm;
where v1, ..., vn are the variables, and r1, ..., rm the generators.
algebraic form (comm.) input> setinvars x,y;;
***** Segmentation Violation in listcopy

46: lisp getiovars();

((!x !y) !x !y)

------------------------------------------------------------------_____



-----------------------------------------------------------------
96-12-05: Remove double surcing psl-names from shellenv files.

 --- Done 1997-08-22 ---
-----------------------------------------------------------------


---------------------------------------------------
1997-04-02: I may get erroneous print-out of (e.g.) the P-B series
of the associated monomial ring in other domain moods than char0,
since the print-out uses domain mode dependent procedures. (This
indeed happens in char2 mode.)
1997-04-04: PRELIMINARY FIXED, by re-defining appropriate
Char0Alg(First)TermPrint in inout.sl. However, these are not
declared exported; and should anyhow rather be renamed to or
replaced by general series handling printing auxiliaries.
---------------------------------------------------


---------------------------------------------------
1997-03-03: CfNegP not defined but used in adDP!_PRETTYPRINTSDP
(in ant_inout.sl).
---------------------------------------------------


---------------------------------------------------
1997-03-03: The large numbers in $bmauxil/primaux.sl seem not to
be legible under sun4 compilation.
 Furthermore, the (LOAD "nbig30") therein should be replaced by
something else.
 Besides, a variant NOT accepting bignums might be sensible, in
order to be able to create in situ tables without loading bignums.
---------------------------------------------------


---------------------------------------------------
1996-11-29: Warning *** in ANICKDISPLAY: OldChan declared fluid
during compilation.
---------------------------------------------------


---------------------------------------------------
1996-11-10: (OFF REDUCTIVITY) seems to give error in AmputeMons in
the non-commutative case.

1998-08-24: Seemingly, the reason is that we assume all interned
monomials to have lengths at least cDeg. PBSERIES on clearly is
in compatible with this; but even with PBSERIES off, the interned
MONONE (with PMon = (0)) causes a collaps already at the first
run of AmputeMons.
 Suggested fix: Write a noncommAmputeMons, which only amputes
mons of exactly degree cDeg, skipping the preceeding degrees./JoeB
---------------------------------------------------


---------------------------------------------------
1996-08-29: Modify references to "MAPLE form" in the manual.
 --- Done; but the tex files should be changed too. /JoeB 1997-08-22 ---
---------------------------------------------------


---------------------------------------------------
From sveta@maths.lth.se Thu Aug 29 11:42:53 1996

DEAR JOERGEN,
Here is bug report in  trying setweights.
OUR comments starts from %

4: end;
Entering LISP ... 
Bergman 0.9, 26-Aug-96

%attempt to use setweights

1 lisp> (SETWEIGHTS 1 2)
***** Undefined function `copylist' called from compiled code
------------------------------------------------------------------_


%attempt to redefine copylist and use setweights

2 lisp>  (COPYD 'COPYLIST 'LISTCOPY)   
copylist
3 lisp> (SETWEIGHTS 1 2)
nil

%attempt to use clearall to save the variables. 

4 lisp> (simple)
Now input in-variables and ideal generators in algebraic form, thus:
     setinvars v1, ..., vn;
      r1, ..., rm;
where v1, ..., vn are the variables, and r1, ..., rm the generators.
algebraic form (comm.) input> setinvars x,y; x*y;
***** Undefined function `!*' called from compiled code
5 lisp> (clearall)
nil
6 lisp> (SETWEIGHTS 1 2)
(1 2)

%now weights exists! 

7 lisp>  (simple)
Now input in-variables and ideal generators in algebraic form, thus:
     setinvars v1, ..., vn;
      r1, ..., rm;
where v1, ..., vn are the variables, and r1, ..., rm the generators.
algebraic form (comm.) input> setinvars x,y; x*y;
***** Undefined function `!*' called from compiled code

% now try noncommutative version

8 lisp> (clearall)
nil
9 lisp> (noncommify)
nil
10 lisp> (SETWEIGHTS 1 2)
(1 2)
11 lisp> (simple)
Now input in-variables and ideal generators in algebraic form, thus:
     setinvars v1, ..., vn;
      r1, ..., rm;
where v1, ..., vn are the variables, and r1, ..., rm the generators.
algebraic form (noncomm.) input> setinvars x,y; x*y;
+t^2*(0)
+t^3*(z^2)
% 3
x*y,
   
Done
 - All is OK (I hope). Now you may (e. g.):
   - kill bergman with (QUIT); or
   - interrupt bergman with ^Z; or
   - clear the memory with (CLEARALL), and run a new (SIMPLE).
nil

%looks better, but ...

12 lisp> (clearall)
nil
13 lisp> (noncommify)
nil
14 lisp> (SETWEIGHTS 1 2)
(1 2)
15 lisp> (simple)
Now input in-variables and ideal generators in algebraic form, thus:
     setinvars v1, ..., vn;
      r1, ..., rm;
where v1, ..., vn are the variables, and r1, ..., rm the generators.
algebraic form (noncomm.) input> setinvars x,y; x*x-y;
***** Segmentation Violation in noncommtotaldegree

% maybe problem in the pure variables in the relations?

16 lisp> (clearall)
nil
17 lisp> (noncommify)
nil
18 lisp> (SETWEIGHTS 1 2)
(1 2)
19 lisp> (simple)
Now input in-variables and ideal generators in algebraic form, thus:
     setinvars v1, ..., vn;
      r1, ..., rm;
where v1, ..., vn are the variables, and r1, ..., rm the generators.
algebraic form (noncomm.) input> setinvars x,y; x*x*x*x-y*y;
+t^2*(0)
+t^3*(z^2)
+t^4*(0)
% 4
-y*y+x*x*x*x,
   
+t^5*(z^2+z^3)
+t^6*(0)
% 6
-y*x*x*x*x+x*x*x*x*y,
   
+t^7*(z^3+z^4)
+t^8*(0)
Done
 - All is OK (I hope). Now you may (e. g.):
   - kill bergman with (QUIT); or
   - interrupt bergman with ^Z; or
   - clear the memory with (CLEARALL), and run a new (SIMPLE).
nil
20 lisp> 

%Here GB is OK. But what about Poincare series?

%Another note. Do You know that Bergman does not likes empty list of relations?

Entering LISP ... 
Bergman 0.9, 26-Aug-96
1 lisp> (simple)
Now input in-variables and ideal generators in algebraic form, thus:
     setinvars v1, ..., vn;
      r1, ..., rm;
where v1, ..., vn are the variables, and r1, ..., rm the generators.
algebraic form (comm.) input> setinvars x,y; ;
***** Segmentation Violation in listcopy
2 lisp>


1998-08-24, JoeB: Most of the SETWEIGHTS troubles mentioned above
seem to be fixed now, except the incopatibility with series.
The empty list of relations bug remains, but ONLY in commutative
mode, and ONLY in bergman-under-reduce (!?).
-----------------------------------------------------------------


-----------------------------------------------------------------
96-07-13: Procedures used which are NOT documented in the Standard
Lisp  document, nor defined in slext: LOAD.
-----------------------------------------------------------------


-----------------------------------------------------------------
96-06-24: EMDIM and inner embdim handling is bad and inconsistent.
Probably the best solution is to remove the user available variable
-----------------------------------------------------------------



-----------------------------------------------------------------
96-06-20: The treatment of the monomial 1 is bad commutatively
and catastrophal in the non-commutative case. Already
noncommMONINTERN assumes its argument not to represent 1.
 In any case, SETINVARS sets a global variable InPMonOne to a
list of (# input variables) 0's. This gives a correct lispform
representation of 1 IN THE COMMUTATIVE CASE.
 Perhaps I should intern an augmon representation of 1 in
some initialiser? But, it might be monreclaimed!?

98-08-24, JoeB: The confusion seems larger now. There is InPMonOne;
MONONE (in the non-commutative case); MonOne (in the s.a.w.s. case).
Unify!
-----------------------------------------------------------------


-----------------------------------------------------------------
96-06-17: The new standard forms coefficients mode seems not to
be made fully compatible with SETMODULUS mode changing. Actually,
I haven't decided on the appropriate way to handle modularity
together with Reduce coefficients. Thus SETMODULUS and
SETREDUCESFCOEFFS cancel the effects of each others.
-----------------------------------------------------------------


-----------------------------------------------------------------
94-11-21: I have done modularising too smart (?): I get complaints
about the application of exponent taking on a PB series coefficient
(running with modlogarithms and modulus 7):
-----------------------------------------------------------------
*** Function `DEGREEENDDISPLAY' has been redefined
SetupGlobals
 ... done

% No. of Spolynomials calculated until degree 2: 0
% No. of ReducePol(0) demanded until degree 2: 0
% Time: 2669
*** Garbage collection starting
*** GC 3: 21-Nov-94 14:06:37 (~ 2720 ms cpu time, gc : 3 %)
*** time 51 ms, 36572 occupied, 501909 recovered, 9963428 free
***** Subscript `17' in GetV is out of range
Break loop
6 lisp break (1) > I
Backtrace, including interpreter functions, from top of stack:
INTERPBACKTRACE R!e!d!o!rC!o!e!f!f2O!u!tC!o!e!f!f C!h!a!r0A!l!gR!e!d!o!rT!e!r!mP!r!i!n!t
ALGOUTLIST DEGREEPBSERIESDISPLAY TDEGREECALCULATEPBSERIES1
TDEGREECALCULATEPBSERIES PROGN DEGREEENDDISPLAY GROEBNERKERNEL PROG
NCPBHGROEBNER STANDARDLISP
-----------------------------------------------------------------


=====================================================================

#      src/update; 96-09-04:

ELIMPAIRS is written only in a noncommutative variant. ELIMNEWPAIR too,
but the latter isn't called in the commutative mode. Neither work well
if the user actively changes !*IMMEDIATECRIT. This should change, or
the flag be made unaccessible.

TOTALDEGREE (and others?) assume at leasst two variables (commutatively);
this should be documented.

The auxiliary non-natural degree mode changers should be documented.

I may double define PLUSNOEVAL; it should be just in slext.sl.

Fix reading and printing of constants.

Make printing in CALCTOLIMITS etc. flag depending.

In slext.sl: Remove double test in DPLISTP.

In coeff.sl:
  The Char0Lists setting should be sought for obsolete objects.
  Add GETMODULUS.

In monomstg.sl:
  MONQUOTIENT is defined by MonInternCopy on a monquotient. Should there be
  a converter of some kind involved?

In ncmonom.sl:
  Replace < by MonIntPrecedence in noncommMONINTERN (?)


==========================================================================

#     doc/known.bugs; 98-07-05:

 A list of known bugs and of some deficiencies in bergman:

1) bergman isn't a computer algebra system!

2) Too trivial input may cause problems. To be on the safe side,
   have at least two variables, at least one relation, and these
   of degrees at least two.

3) Mode incompatibilities, including:

  (*) Weighted variables do not work with series;

  (*) Commutativity does not work with PBseries or resolutions;

  (*) Hseries different in comm. and nc. cases (but this should
      be fixed).

4) No parenthesis in polynomial relations input!

5) The arbitrary (Reduce Standard Form) coefficients only work
   in the commutative case; and their input should be by means
   of Reduce;

6) The error handling in algebraic input mode is rather bad.
   (Somewhat better else; perhaps some remark on how to drop
   out of error loops?)

7) Greatness of variables versus input order inconsistent with
   change of commutativity.

8) MAXDEG setting (which anyhow ought to be replaced by a
   procedure) does not give the intuitively assumed results;
   e.g., not necessarily PBseries calculation up to that
   degree.

9) Case matters!


=====================================================================

#        doc/KnownBugs; 01-08-13:


	Some known bugs and deficiencies in bergman 0.94.


 * An installment bug: If you need to case convert, then
   this is done the first time you run the script (if conv
   is an executable file at that moment; cf the error
   diagnostics if not). You may see that case conversion
   was performed by checking if new subdirectories named
   xscr and xauxil were created in the bergman root
   directory.

   However, if you update some source file and re-run
   the bergman creation, the case converted files are
   not updated. In order to force this in the most, you
   just delete the xsrc and xauxil directories together
   with their contents, before rerunning the mkbergman
   script.   


 * There are some mode choices which are incompatible:

   o The Hilbert series limitation doesn't work in
     non-commutative mode. Nor does some related procedures.

   o Resolutions, module handling, and any kinds of Betti
     number calculations don't work in commutative mode.

   o Weights don't work together with any series or
     resolution calculation.

   o Resolution or Betti number calculations do not work
     without the "print the double Poincare-Betti series
     of the associated monomial ring" feature being active;
     and not in reductivity off mode.

   o The SAWS strategy mode and to a lesser extent the
     logarithmic modulus calculations coefficient submode
     are not quite updated with respect to other changes
     in latter years, and therefore probably work badly
     with many other mode settings (or not at all).


 * Setting non-standard weights work reasonably in
   non-commutative and in lex commutative monoid mode,
   but not in revlex commutative monoid mode. In the
   latter case, the weights must be given in opposite
   order from the one in which the variables are given.
   (This bug will be corrected in the next version of
   bergman.)


 * There may be troubles with constant or linear forms,
   or less than two forms, in the input list of ideal
   generators.


 * Not enough mode compatibility checks are performed
   automatically (and the CHECKSETUP procedure
   is a no-operator at present). Likewise, the
   homogeneity of the input is not controlled
   automatically; but it may be tested with TESTINDATA.


 * GETSETUP doesn't handle HSERIELIMITATIONS consistently.
   (This bug will be corrected in the next version of
   bergman.)


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

Please report further bugs to   joeb@matematik.su.se !


==================================================================

#    doc/newbugs; 98-07-05:

Explain the meaning of "root directories"!

 Mer till ReadMe: - Uppdatera listan ver arkitekturer.
 - Frsk lyfta fram det exekverbara resultatet.
 - Varna fr lng tid och diverse meddelanden som kan ignoreras

(simple) vars x;; (clearall) (simple) x^100;
ger ett fel i sun4 bm-under-psl.


===================================================================

#     doc/todoembdim; 98-07-06:

1998-07-06: What should be done to the embedding dimension' or
variable number handling problem?

 At present, the variable number is more or less connected
with three entities: The user available EMBDIM, the hidden
quantity !&!*InnerEmbDim!&!*, and the actual list of given
variables.

 Actually, there are few reasons to set the variable
number explisitly. I can think of three:

 (1) In commutative mode, lispforminput: It is necessary
    to know how long the lists representing the input
    monomial are supposed to be. However, this indirectly
    may be deduced from the length of the first list.

 (2) When calculating H or PB series. (This is the case
    where in the present (0.924) version the user may be
    explicitly prompted for the EMBDIM, unles set.)

 (3) In answering the user's quearies about the VARNO.

 There might also to be some uses in the future developments.
An experimental version of different PMon representations has
indeed used the variable number; and automatic transference
from Reduce of polynomials MIGHT want something similar.
