### solve x^y == z (for x)

I don't understand the behavior:

var('x','y','z'); assume(x>0, y>0, z>0); assume(x,y,z, 'real')
solve(x^y==z, x)

generates a traceback error:
"...
Is y an integer?"

I can get the expected answer after adding

assume(y, 'integer')

but this seems like it should be unnecessary. Anyone know what is going on here?

thanks,
Dustin