We present a new counterexample-guided abstraction refinement scheme. The scheme refines an over-approximation of the set
of possible traces. Each refinement step introduces a finite automaton that recognizes a set of infeasible traces. A central idea enabling our approach is to use interpolants (assertions generated, e.g., by the infeasibility proof for an error trace) in order to automatically construct such an automaton.
A data base of interpolant automata has an interesting potential for reuse of theorem proving work (from one program to another).