A tool for efficiently handling CNF and DNF formulas in Python
To install from pypi use:
pip install sat-toolkit
To simplify CNFs and convert DNFs to CNFs, you need to compile espresso and make it available on inside your $PATH.
The following example shows how to create a minified CNF for a boolean function that is true at values 0, 6, 9, and 15.
from sat_toolkit.formula import CNF, Truthtable
import numpy as np
table = np.zeros(16, int)
table[[0, 6, 9, 15]] = 1
tt = Truthtable.from_lut(table)
cnf = tt.to_cnf()
print(cnf)