Satisfiability solving for software verification