The function new_variable gives each symbol it creates a symbol property. I think it would be possible to examine
each member of the output of props for these symbol properties. Maybe something like
(defun $forget_gentemp_facts ()
(let ((p (margs $props)))
(dolist (z p)
(if (symbolp z)
(cond ((or (get z 'integer-gentemp) (get z 'natural-gentemp))
(mfuncall '$remove z '$integer))
((get z 'real-gentemp)
(mfuncall '$remove z '$real))
((get z 'complex-gentemp)
(mfuncall '$remove z '$complex))))))
'$done)
Let me guess that the author of the fact database was aiming for 10s, not 100s, of entries. Likely the fact database is
big oh challenged.
Incidently: Likely the simplification rules associated with a %union object, the symbol properties of new variables, and
the altered environment are all lost when Sage uses to_poly_solve and exits Maxima. Maybe Sage has its own solver now.
--Barton
________________________________
I notice that to_poly_solve generates temporary variables that can slow things down. I started writing something to remove them, but
before I go further: Is there a facility to deal with this that I am missing ?