# Disjoint Partial Enumeration without Blocking Clauses

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

## Key facts

- Cited by 3 papers in the map (data through 14 Oct 2026).
- First posted on arXiv 1 Jun 2023.

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

- [Canonical Decision Diagrams Modulo Theories](https://mlsanity.com/paper/2404.16455/) (2024)
- [Counting and Reasoning with Plans](https://mlsanity.com/paper/2502.00145/) (2025)
- [Entailment vs. Verification for Partial-assignment Satisfiability and Enumeration](https://mlsanity.com/paper/2503.01536/) (2025)

## Abstract (arXiv)

A basic algorithm for enumerating disjoint propositional models (disjoint AllSAT) is based on adding blocking clauses incrementally, ruling out previously found models. On the one hand, blocking clauses have the potential to reduce the number of generated models exponentially, as they can handle partial models. On the other hand, the introduction of a large number of blocking clauses affects memory consumption and drastically slows down unit propagation. We propose a new approach that allows for enumerating disjoint partial models with no need for blocking clauses by integrating: Conflict-Driven Clause-Learning (CDCL), Chronological Backtracking (CB), and methods for shrinking models (Implicant Shrinking). Experiments clearly show the benefits of our novel approach.
