Satiability Modulo Theories