SMS: Predicate abstraction of ANSI-C programs using SAT