# Learning logic programs by discovering where not to search

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

## Key facts

- Cited by 4 papers in the map (data through 14 Oct 2026).
- Builds on 11 of its 61 references that are in the map.
- First posted on arXiv 20 Feb 2022.

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

- [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)
- [Inductive logic programming at 30](https://mlsanity.com/paper/2102.10556/) (2021)
- [Making sense of sensory input](https://mlsanity.com/paper/1910.02227/) (2019)
- [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 Relational Representations with Auto-encoding Logic Programs](https://mlsanity.com/paper/1903.12577/) (2019)
- [Towards meta-interpretive learning of programming language semantics](https://mlsanity.com/paper/1907.08834/) (2019)
- [Learning logic programs through divide, constrain, and conquer](https://mlsanity.com/paper/2109.07818/) (2021)

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

- [Learning Logical Rules using Minimum Message Length](https://mlsanity.com/paper/2508.06230/) (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)
- [HyDI: A hybrid Deep Learning-Inductive Logic Programming ensemble for multi-label classification](https://mlsanity.com/paper/2609.37740/) (2026)

## Abstract (arXiv)

The goal of inductive logic programming (ILP) is to search for a hypothesis that generalises training examples and background knowledge (BK). To improve performance, we introduce an approach that, before searching for a hypothesis, first discovers where not to search. We use given BK to discover constraints on hypotheses, such as that a number cannot be both even and odd. We use the constraints to bootstrap a constraint-driven ILP system. Our experiments on multiple domains (including program synthesis and game playing) show that our approach can (i) substantially reduce learning times by up to 97%, and (ii) scale to domains with millions of facts.
