Automated Mathematician

[3] AM worked by generating and modifying short Lisp programs which were then interpreted as defining various mathematical concepts;[4] for example, a program that tested equality between the length of two lists was considered to represent the concept of numerical equality, while a program that produced a list whose length was the product of the lengths of two other lists was interpreted as representing the concept of multiplication.

The system had elaborate heuristics for choosing which programs to extend and modify, based on the experiences of working mathematicians in solving mathematical problems.

Yet the heuristic rules were not always represented as separate data structures; some had to be intertwined with the control flow logic.

[7] Lenat claimed that the system had rediscovered both Goldbach's conjecture and the fundamental theorem of arithmetic.

However, he argued that this property was in itself interesting—and that a promising direction for further research would be to look for other languages in which short random strings were likely to be useful.