SAT and SMT Solvers: A Foundational Perspective