Learning solver functions using riddles