Learning logic programs by discovering higher-order abstractions
Céline Hocquette, Sebastijan Dumančić, Andrew Cropper
TL;DR
This work tackles the problem of learning logic programs by automatically discovering higher-order abstractions. It introduces Stevie, a two-stage system that abstractly discovers higher-order constructs and then compresses the resulting program via a constraint optimisation problem to preserve semantics on head predicates. Empirical results across program synthesis and cross-domain domains show that refactoring with Stevie can significantly boost predictive accuracy (about +27%) and reduce learning time (about -47%), with abstractions that transfer to new domains. These findings highlight the practical value of automatic abstraction discovery for improving ILP learning and enabling cross-domain knowledge reuse, while also outlining limitations in scalability and objective design that guide future improvements.
Abstract
We introduce the higher-order refactoring problem, where the goal is to compress a logic program by discovering higher-order abstractions, such as map, filter, and fold. We implement our approach in Stevie, which formulates the refactoring problem as a constraint optimisation problem. Our experiments on multiple domains, including program synthesis and visual reasoning, show that refactoring can improve the learning performance of an inductive logic programming system, specifically improving predictive accuracies by 27% and reducing learning times by 47%. We also show that Stevie can discover abstractions that transfer to multiple domains.
