Predicate abstraction is a technique used in formal verification to simplify complex systems by representing their states with logical predicates, allowing for more efficient model checking. It abstracts the infinite state space of a program into a finite model, facilitating the verification of properties in systems with potentially infinite behaviors.