

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer

Given the following two equivalent inverse functions, why does one simplify (using inverse functions that are acceptable to me) and the other doesn't? Is there an assumption or setting I can give which will force these to use inverse functions and simplify properly?

$Assumptions = A > 0 && k < 1 && k > 0;  (* This seems irrelevant *)
InverseFunction[(#1 A^k (#1)^k) &]
InverseFunction[(#1 (A #1)^k) &]

Is the issue that the #1 isn't given an assumption? Originally came from a problem with Solve which has the same basic behavior, even seems to have consistent behavior:

$Assumptions = A > 0 && k < 1 && k > 0 && m > 0 && z > 0;
Solve[z A^k (z)^k == m, z] 
Solve[z (A z)^k == m, z]
share|improve this question
Aren't those two equivalent only if #1 >0, a condition you haven't told Mathematica nothing about? – Sjoerd C. de Vries Aug 20 '13 at 22:38
@Sjoerd "haven't told ... nothing about" is a double negative – Mr.Wizard Aug 21 '13 at 0:42
@Mr.Wizard I noticed that, but with me working on my iPad late at night and about to shut down didn't fancy to go through the fuzz of correcting it after I saw the final result. Besides, this style is becoming more common in English usage. See the Maroon5 song title (I don't know nothing) or the Pink Floyd line "We don't need no education". Be prepared for it, French (ne...pas) and African Dutch (ek nie weet nie) have walked this road before ;-) You'll be one of the last vestiges of the Queen's English. – Sjoerd C. de Vries Aug 21 '13 at 6:37
@Sjoerd I believe Spanish allows double negatives as well. Nevertheless I like my speech to be mathematically accurate if it is not inconvenient for it to be so. :^) (By the way, I realize my bare comment above could be taken rather rudely, but I just meant it for fun; I hope it was taken that way.) – Mr.Wizard Aug 21 '13 at 15:38
@wizard Surely I understood you were joking. Anyway, what do you think about the last Solve above? – Sjoerd C. de Vries Aug 21 '13 at 20:29

You could apply PowerExpand to the lefthand side of the 2nd expression.

Solve[PowerExpand[z (A z)^k] == m, z]


share|improve this answer
Note PowerExpand[.., A] works as well and restricts the assumptions to just A > 0. Also works on the OP's InverseFunction example. (+1) – Michael E2 Jun 21 at 0:09
Thanks for the response. Certainly works in this case because of the example I gave, but my hope was there was a more general way to tell it to use inverse functions to make the behavior consistent. For example, what if there are other inverse functions not related to powers that I would like used. – jlperla yesterday

Your Answer


