Replacment for FREEOF



"Stavros Macrakis" wrote:
>Dan,
>
>You bring up three issues with the current Freeof:
>
>1) Semantics: It does not understand the concept of bound variables.
By this do you mean:
block([y:x],freeof(y,x^2))
FALSE
>
>2) Efficiency: It could be faster on CREs and other cases.
>
>3) Lisp interface: it is inconvenient to call from Lisp.
>
>------------ Semantics ---------
>
>I think it is definitely worth thinking about a "semantic freeof".  One
>subtlety which you may or may not want to consider is Maxima's notion of
>dependency (cf. Depends command).  In the following example, the
>expression "y" is syntactically free of x, but still depends on it
>semantically:
>
>   (C5) depends(y,x);
>   (D5) [y(x)]
>   (C6) diff(y,x);
>   (D6) 'DIFF(y,x,1)
>
>So what should be the result of NFreeOf(y,x)?
Perhaps we need a additional function, as we dont have keywords,
and I really dont want to use a global to control this.
>
>While you're at it, you might also want to clean up At, which covers
>only the very simplest case of semantic substition:
So many bugs, so little time.
For now, I will call FREEOF, from $NFREEOF, or what ever it ends up
being called.  I will add the rat part later.
>
>      -s
>