> By the way: I have forgotten to mention that we have a fourth way to
> implement an unknown sign. We can leave the expression 0^x unsimplified.
>
>
That might be the safest result. I am reminded of an issue that
may be worth noting here, that something like 0^x can be ambiguous in
another way....
not that the following necessarily makes sense in Maxima, but
it should convey the idea of scope of assumptions..
block ([x],
assume(x>0),
block([x],
assume(x<=0),
0^x))
now if we return 0^x to the top level, which x is that?
(This is a concern any time an unevaluated expression is returned./ If
instead
of 0^x we returned "if x=0 then 1 else 2", what would happen?)
Since assumptions don't follow block structure scope, this question is
answered according
to the assumptions all of which are piled on the global symbol x. There
is another
mechanism of "context" for assumptions. I don't know if anyone is using
this..
there are languages (e.g. lisp) that can maintain environments....
RJF