# Learning logic programs by combining programs

arXiv: https://arxiv.org/abs/2206.01614 · HTML: https://mlsanity.com/paper/2206.01614/

## Key facts

- Cited by 7 papers in the map (data through 14 Oct 2026).
- Builds on 17 of its 80 references that are in the map.
- First posted on arXiv 1 Jun 2022.

## Builds on (most cited first, 17 of 17)

- [Learning Explanatory Rules from Noisy Data](https://mlsanity.com/paper/1711.04574/) (2017)
- [Inductive logic programming at 30: a new introduction](https://mlsanity.com/paper/2008.07912/) (2020)
- [Learning programs by learning from failures](https://mlsanity.com/paper/2005.02259/) (2020)
- [Clingo = ASP + Control: Preliminary Report](https://mlsanity.com/paper/1405.3694/) (2014)
- [Abductive Knowledge Induction From Raw Data](https://mlsanity.com/paper/2010.03514/) (2020)
- [Making sense of sensory input](https://mlsanity.com/paper/1910.02227/) (2019)
- [Synthesizing Datalog Programs Using Numerical Relaxation](https://mlsanity.com/paper/1906.00163/) (2019)
- [Neuro-Symbolic Hierarchical Rule Induction](https://mlsanity.com/paper/2112.13418/) (2021)
- [Randomised Gaussian Process Upper Confidence Bound for Bayesian Optimisation](https://mlsanity.com/paper/2006.04296/) (2020)
- [Logical reduction of metarules](https://mlsanity.com/paper/1907.10952/) (2019)
- [Inductive general game playing](https://mlsanity.com/paper/1906.09627/) (2019)
- [Learning Higher-Order Programs without Meta-Interpretive Learning](https://mlsanity.com/paper/2112.14603/) (2021)
- [Learning Relational Representations with Auto-encoding Logic Programs](https://mlsanity.com/paper/1903.12577/) (2019)
- [Best-Effort Inductive Logic Programming via Fine-grained Cost-based Hypothesis Generation](https://mlsanity.com/paper/1707.02729/) (2017)
- [Predicate Invention by Learning From Failures](https://mlsanity.com/paper/2104.14426/) (2021)
- [Top Program Construction and Reduction for polynomial time Meta-Interpretive Learning](https://mlsanity.com/paper/2101.05050/) (2021)
- [Towards meta-interpretive learning of programming language semantics](https://mlsanity.com/paper/1907.08834/) (2019)

## Built on by (most cited first, 7 of 7)

- [Learning MDL logic programs from noisy data](https://mlsanity.com/paper/2308.09393/) (2023)
- [Relational decomposition for program synthesis](https://mlsanity.com/paper/2408.12212/) (2024)
- [Generalisation Through Negation and Predicate Invention](https://mlsanity.com/paper/2301.07629/) (2023)
- [Learning big logical rules by joining small rules](https://mlsanity.com/paper/2401.16215/) (2024)
- [An Empirical Comparison of Cost Functions in Inductive Logic Programming](https://mlsanity.com/paper/2503.07554/) (2025)
- [Honey, I shrunk the hypothesis space (through logical preprocessing)](https://mlsanity.com/paper/2506.06739/) (2025)
- [Symmetry breaking for inductive logic programming](https://mlsanity.com/paper/2508.06263/) (2025)

## Abstract (arXiv)

The goal of inductive logic programming is to induce a logic program (a set of logical rules) that generalises training examples. Inducing programs with many rules and literals is a major challenge. To tackle this challenge, we introduce an approach where we learn small non-separable programs and combine them. We implement our approach in a constraint-driven ILP system. Our approach can learn optimal and recursive programs and perform predicate invention. Our experiments on multiple domains, including game playing and program synthesis, show that our approach can drastically outperform existing approaches in terms of predictive accuracies and learning times, sometimes reducing learning times from over an hour to a few seconds.
