# Simplify Expression with Positive and Negative Powers

I am trying to simplify expressions as follows

expr2 = a^(-2b)*c^(2b) * (a + b)^(-3e/(f + g))*(c + d)^(3e/(f + g))


which I would like to become like

(c/a)^(2b) * ((c + d)/(a + b))^(3e/(f + g))


If I change my expression as follows

expr2 = a^-b*c^b * (a + b)^(-e/(f + g))*(c + d)^(e/(f + g))


I can simplify it with the following rule

expr2 //. Times[d___, a_^-b_, c_^b_, f___] :> d*f*(c/a)^b
(* --> (c/a)^b * ((c + d)/(a + b))^(e/(f + g)) *)


but this rule fails on my original expression expr1.

Is there a way to robustly simplifying positive and negative powers of the same expression as above? I am especially interested in simplifying expression included as part of more complex expressions, not just simple cases as in my minimal example.

Try this:

(expr2 /. e -> x/3*(f + g) //
Simplify[#, {x > 0, b > 0, a > b > 0, c > d > 0}] &) /.
x -> (3 e)/(f + g)

(*  (a/c)^(-2 b) ((c + d)/(a + b))^((3 e)/(f + g)) *)


Have fun!

• Or Assuming[{a > 0, a + b > 0}, expr2 // Simplify] Commented Dec 30, 2022 at 16:12
• Thanks. Bob's comment goes in the right direction. But fails with some of my more realistic example, like expr2 = x^(1 - a) y^(-1 + a) (z^a + t^a)^-(b/c) (w^a + t^a)^(b/c)  with Assuming[{z^a + t^a > 0, y > 0}, expr2 // Simplify]. I was hoping for a more general solution, but I understand it may not exist, due to the need of assuming all denominators be nonzero. Commented Dec 31, 2022 at 15:09