I am going to write a replacement for freeof.
For reference following is the original definition:
Function: FREEOF (x1, x2, ..., exp)
yields TRUE if the xi do not occur in exp and FALSE otherwise. The
xi are atoms or they may be subscripted names,
functions (e.g. SIN(X) ), or operators enclosed in "s. If 'var' is a
"dummy variable" of 'exp', then FREEOF(var,exp); will
return TRUE. "Dummy variables" are mathematical things like the
index of a sum or product, the limit variable, and the
definite integration variable. Example: FREEOF(I,'SUM(F(I),I,0,N));
returns TRUE. Do EXAMPLE(FREEOF); for more
examples.
My replacement NFREEOF is defined as follows:
NFREEOF(exp, x1,x2...) or NFREEOF(exp,list).
Currently, FREEOF converts each of its arguments to general form.
For now, I am going to check if the xi or the elements of the list are
in rat form and convert them then,
a improvment will be to to the check without the conversion.
I would also like to deprecate FREEOF.
Comments?
Dan Stanger