,
Rishikesh Gajjala
,
Kuldeep S. Meel
Creative Commons Attribution 4.0 International license
Model counting is a fundamental problem that consists of determining the number of satisfying assignments for a given Boolean formula. The weighted variant, which computes the weighted sum of satisfying assignments, has extensive applications in probabilistic reasoning, network reliability, statistical physics, and formal verification. A common approach for solving weighted model counting is to reduce it to unweighted model counting, which raises an important question: What is the minimum number of terms (or clauses) required to construct a DNF (or CNF) formula with exactly k satisfying assignments?
In this paper, we establish both upper and lower bounds on this question. We prove that for any natural number k, one can construct a monotone DNF formula with exactly k satisfying assignments using at most O(√{log k}log log k) terms. This construction represents the first o(log k) upper bound for this problem. We complement this result by showing that there exist infinitely many values of k for which any DNF or CNF representation requires at least Ω(log log k) terms or clauses. These results have significant implications for the efficiency of model counting algorithms based on formula transformations.
@InProceedings{chandran_et_al:LIPIcs.SAT.2025.9,
author = {Chandran, L. Sunil and Gajjala, Rishikesh and Meel, Kuldeep S.},
title = {{CNFs and DNFs with Exactly k Solutions}},
booktitle = {28th International Conference on Theory and Applications of Satisfiability Testing (SAT 2025)},
pages = {9:1--9:15},
series = {Leibniz International Proceedings in Informatics (LIPIcs)},
ISBN = {978-3-95977-381-2},
ISSN = {1868-8969},
year = {2025},
volume = {341},
editor = {Berg, Jeremias and Nordstr\"{o}m, Jakob},
publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
address = {Dagstuhl, Germany},
URL = {https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.SAT.2025.9},
URN = {urn:nbn:de:0030-drops-237433},
doi = {10.4230/LIPIcs.SAT.2025.9},
annote = {Keywords: Model counting, #SAT, Set Systems, Combinatorics}
}