The verification of programs is undecidable in general. In practice,
semi-algorithms that may not terminate on some inputs are used. It is
worth identifying sufficient conditions for when the semi-algorithm is
guaranteed to terminate and thus amounts to a decision procedure for the
verification problem for a restricted class of programs.
I will present predicate abstraction with abstraction refinement, which
is one approach to verifying properties of infinite-state systems. We know
that it is complete for systems that are equivalent(formally: bisimilar)
to finite-state systems(finite-state means: each program variable can have
only finitely many values). For a more general class, the one of
well-structured transition systems, the coverability problem is known to be
decidable. I address the question of completeness of predicate abstraction
with refinement for checking safety properties of such systems.