Learning Logic Programs with Local Variables from Positive Examples

We present a polynomial time algorithm to learn a rich class of logic programs (called one-recursive programs) from positive examples alone. This class of programs uses the divide-and-conquer methodology and contains a wide range of programs such as append, reverse, merge, split, delete, insertion-sort, preorder and inorder traversal of binary trees, polynomial recognition, derivatives, sum of a list of numbers and allows local variables.