Don't particularly care for any of these. "fill-in-the-blank" notations don't really work for operators. You can drop the exponents and write x^y = z as y ln x = ln z, and then everything commutes and is solved nicely. Same idea (until you get to complex numbers, maybe).<p>With multiplication, xy = z is solved by y = z/x or x = z/y, which works becuase of the commutativity. If it wasn't commutative, though, you would need to use left- and right- division: x = z/y but y = x\z (I guess), implying y = (x^-1) z.<p>In the same vein, x^y = z has the radical symbol as a specialized notation to invert it on one side: x = √^y z, which we can parse as a non-commutative operator that acts like f(z) = z^(1/y). But it helps that the raising to a power has an inverse operation that is _also_ raising to a power (x^y)^(1/y) = x. Whereas 'being raised to a power' doesn't have an inverse operation that is also 'being raised to a power'.<p>The other problem is that when you apply a logarithm operator to a term, powers switch to being multiplied. They 'change domains' in a sense. So it's not possible to do anything to the 'x' in x^y on its own, because that would result in f(x)^y which is still exponentiating by y. You need the 'y' to 'move' into the main line of the equation, out of the exponent.<p>I think a good way to model this would be to imagine allowing x^y = z shifting so that the 'y' is the main line of the equation, becoming something like 1_x y = 1_z. 1_x and 1_z would ideally have the subscript on the left side, to avoid confusion with other uses of subscripts, and to look like a shifted version of x^1 and z^1. These are literally log x and log z in some base, but they're just numbers, so you can solve the equation as y = 1_z/1_x. Then you have identities like x^1_x = e, so x^(1_z/1_x) = e^(1_z) = z. I think you just do away with the notation log_x z entirely; it's too odd compared to everything else.<p>So basically I propose y = 1_z/1_x, but I don't think you can reconcile this with the square root notation at all, as they're too different. But it does, at least, keep things consistent with using a division operation for the inverse, akin to x = z^(1/y).