mathematical programming – How does Wolfram Alpha solve functional equations?

Wolfram Alpha is able to solve a few basic functional equations. For example, it knows how to solve equations like this. My question is: how does it do this? I am planning on creating a program to find solutions to functional equations (doesn’t have to be anything too fancy — start with just testing for polynomial solutions, etc.).

Note: By “functional equation” I mean this.