I have some expressions involving Logs which I would like to simplify. Unfortunately FullSimplify doesn't work because it assuming the arguments are general. I have no way of knowing a priori what the arguments will be. I just need a way of forcing Mathematica to think that everything inside a Log is real and positive, so that FullSimplify works appropriately!
Does anyone know how I might go about doing this? An alternative would be to write a really good TransformationFunction which does the same as FullSimplify would do for Logs. But all my efforts so far have worked in isolated cases and failed on really complicated expressions. If anyone could point me towards a library where this is implemented I'd be eternally grateful.
Simple Examples
x Log[a/b] + y Log[b/a] = (x-y)Log[a/b]
x Log[a] + x Log[b] = x Log[a b]
Of course these could occur at any point during Simplify, and I'd like Mathematica to be looking out for them and trying to do them. Often, by the time an ordinary Simplify is finished it takes quite a long time to recast the terms in a form where I can combine the Logs (I've got circa 500 terms to deal with)!
Edit
Trying the Assumption
FullSimplify[expr,Log[_]>0]
doesn't work, sadly. See this question, for example!
PowerExpand
(documentation page). It will automatically assume that exponents are integers, and arguments are positive real numbers. Careful though: checking whether these assumptions are appropriate is entirely left to the user! $\endgroup$