Decision Procedures by Daniel Kroening & Ofer Strichman