Polynomial SAT knowledge compiler. Runs on a potato. Scales through npdollars.
from logicspace import DualTree
tree = DualTree.compile(n_vars, clauses)
tree.polysat_simplify(max_tier=2)
tree.simplified_cnf() # ≤ original, isomorphic
tree.optimal_cnf() # original + learned
tree.shrunk # True if compressed
tree.backbones # forced variables
tree.to_json("out.json")
Charles Dana · Tulane University · Monce SAS · April 2026