Question about to_poly_solve



Incidentally--the top level to_poly_solve functions are written in Maxima, not CL. The code
that attempts to convert an equation into a polynomial system is written in CL.

One more thing: in reference to https://groups.google.com/forum/?hl=en&fromgroups#!topic/sage-support/dOQB0phLhfE
to_poly_solve provides some protection against name collisions; for example:

Dummy variables are %z6 & %z8

(%i2) %solve(sin(x)=0,x);
(%o2) %union([x=2*%pi*%z6+%pi],[x=2*%pi*%z8])

Assign values to %zXXX for XXX from 0 to 2013
(%i3) makelist(concat('%,z,k) :: %e,k,0,2013)$

Dummy variables are now %z2014 & %z2016

(%i4) %solve(sin(x)=0,x);
(%o4) %union([x=2*%pi*%z2014+%pi],[x=2*%pi*%z2016])

Maybe it's a bug:

(%i5) nicedummies(%);
(%o5) %union([x=2*%pi*%z0+%pi],[x=2*%pi*%z1])

(%i6) ev(%);
(%o6) %union([x=2*%e*%pi],[x=2*%e*%pi+%pi])

The %zXXX symbols are created using gentemp, but gentemp is deprecated (http://clhs.lisp.se/Body/f_gentem.htm).
And maybe that's a bug too.


> I don't know the difference between binding and setting; perhaps this is sort of like local and global scope in Lisp?