SAT and SMT solvers can reason about large sets of facts and constraints, and are used for applications like planning, configuration checking, placement, and formal verification. They work by translating problems into Boolean logic or logic with theories like arithmetic that can be solved by a SAT solver. SMT solvers combine a SAT solver with theory solvers to handle problems with richer expressiveness.