Identify similar functions
The problem is not decidable (by reduction from the Halting problem), so there is no perfect algorithm that always terminates and always gives the correct answer.  Therefore, you'll need to make some tradeoffs.  That will depend on the specifics of your particular application, so it's hard to recommend a particular technique without knowing how you plan to use it.