Boolean satisfiability (SAT) library with efficient encoding of complex constraints and solver interaction