How does Mathematica's FindSequenceFunction work?

Mathematica's built-in function FindSequenceFunction can find out a closed form of the general terms of a given integer sequence. Anyone knows how it works? Is there any related reference papers?

-
You already posted this question here stackoverflow.com/q/16772823/353410. You may want to delete one of them –  belisarius May 28 '13 at 12:10
Irrespective of what is implemented in Mathematica, the math of it is explained in lecture notes (pdf‌​) by Manuel Kauers. –  Sasha May 28 '13 at 14:51
Running TracePrint[] on an instance of FindSequenceFunction[], with the option TraceInternal set to True, reveals that Mathematica does a number of things (lookups, sequence transforms, etc.) to analyze a sequence given to FindSequenceFunction[]; a lot of the functions called are in the hidden contexts DiscreteFindSequenceFunctionDump  and DiscreteFindSequenceFunctionDataDump . –  Ｊ. Ｍ. May 28 '13 at 15:03
@Sasha Thanks a lot! –  user1123187 May 29 '13 at 7:30