Efficient SMT-based verification of software programs