On automated reasoning about recursively defined functions and homomorphisms