Ticket #11651 (new defect)
Decide what to do with e^(y=x)
|Reported by:||kcrisman||Owned by:||burcin|
|Report Upstream:||Reported upstream. Developers deny it's a bug.||Reviewers:|
This sage-support thread describes the following problem:
sage: var('y') y sage: (y==x).log() log(y == x) sage: (y==x).log().simplify() # just sends to Maxima and back to Sage log(y) == log(x) sage: (y==x).exp() e^(y == x) sage: (y==x).exp().simplify() # just sends to Maxima and back to Sage TypeError: unable to make sense of Maxima expression 'e^(y=x)' in Sage
Basically, one can consider the problem in two ways - a Sage bug or a Maxima bug/feature. Depends on how you look at it.
- Option 1: We don't expect an = sign inside of expressions in our parser in sage/misc/parser.py. Once you leave Parser.p_eqn, there is a lot of jumping around that happens, but it never gets back there, and that is the only place that replaces = with ==. So we should fix that.
- Option 2: Maxima erroneously doesn't change e^(y=x) to e^y=e^x. With log, it does:
sage: var('y'); a = (y==x).log() sage: a._maxima_() log(y)=log(x)But with exp, it doesn't:
sage: var('y'); a = (y==x).exp() y sage: a._maxima_() %e^(y=x)
For now putting the upstream as 'none of the above' since it's not clear the bug is upstream.