Satisfiability modulo theories