Satisfiability Modulo Theories