We show that Constraint Logic Programming (CLP) can serve as a conceptual basis and as a practical implementation platform
for the model checking of infinite-state systems. Our contributions are: (1) a semantics-preserving translation of concurrent systems into CLP programs, (2) a method for verifying safety and liveness properties on the CLP programs produced by the translation.
We have implemented the method in a CLP system and verified well-known examples of infinite-state programs over integers,
using here linear constraints as opposed to Presburger arithmetic as in previous solutions.