Progol is a S&C approach that has inspired many other approaches [1]}, [2]}, notably Aleph.
Starting with an empty hypothesis, Progol picks an uncovered positive example to generalise.
To generalise an example, Progol uses mode declarations to build the bottom clause [3]}, the logically most-specific clause that explains the example.
The bottom clause bounds the search from below (the bottom clause) and above (the empty set).
Progol then uses an A* algorithm to generalise the bottom clause in a top-down (general-to-specific) manner and uses the other examples to guide the search.
Progol struggles to learn recursive and optimal programs and does not support predicate invention.
Note that Progol variants, such as Aleph and ATOM [2]}, suffer from the same limitations.
