Question: substitution of expressions involving functions

I would like to apply a relation such as f(x,a)*f(x,b) = (f(x,a)+f(x,b))/c (where x,a,b are any real number say) to simplify an expression such as f(y1,a1)*f(y2,a2)*a3*f(y1,a4)*f(y2,a5) to a3*( f(y1,a1)+f(y1,a4) )*( f(y2,a2)+f(y2,a5) )/c/c The only way I can see to do this is to struggle to get the function in the `right' order with no constants between them, and then do a substitution for every variable triple (y1,a1,a2) that occurs. There must be a better way. I've looked around the forums but I don't even know what to look for really so any suggestions of where to look would be great. (This is probably not relevant, but in case anyone wonders ... the reason I have this situation is that the multiplications of functions above are representing convolutions in my notation. I have recursion relations which need to applied to my long expressions to go from convolution (multiplication) to addition. Maybe I could write the convolutions as an operator (i.e. not *) and somehow use the operator in the simplification?)
Please Wait...