Re: set.lisp redefines POWERSET / {} for sets



(i) The powerset function defined in ratout.lisp and xpowerset defined in 
nset.lisp do different things;
they are not redundant.  Other than the older set package, I'm unaware of 
a Maxima function that
duplicates the nset xpowerset function.

(ii) If you need a workaround (not a fix) for the powerset bug,  you can 
load ratout.lisp
 
(C1) p : (x + y)*(x*y+5)*(x*y+x^2+56)$
(C2) BERLEFACT : FALSE$
(C3) factor(expand(p));

Error: Arg or result mismatch in call to  POWERSET
Fast links are on: do (si::use-fast-links nil) for debugging
Error signalled by MACSYMA-TOP-LEVEL.
Broken at FACTOR.  Type :H for Help.

MAXIMA>>:q
(C4) load("ratout.lisp")$
(C5) factor(expand(p));
 
(D5)                   (y + x) (x y + 5) (x y + x  + 56)^2
(C6) 


A *much* better solution is to delete set.lisp from /src and rebuild 
Maxima; if you need a set package, use nset.
I recommend that we delete /src/set.lisp ASAP.  It's hokie.

(iii)  I thought about adding package stuff to nset; I didn't  because I'd 
most like cause more problems than I'd solve. 
When we have guidelines for new code that explains how to do package stuff 
correctly, I'll try to add it to nset.

(iv) I like CY's idea of customized initialization files;  a 
"maxima-init-student.mac" file might be the place for defining
set input via braces; I don't like the idea of making it the default. 
Maxima's freedom of expression is a strength. I like it.


Barton