  This article examines the use of the Prolog language for writing
verification, analysis and transformation tools. Guided by experience in
teaching and the development of verification tools like ProB or specialisation
tools like ECCE and LOGEN, the article presents an assessment of various
aspects of Prolog and provides guidelines for using them. The article shows the
usefulness of a few key Prolog features. In particular, it discusses how to
deal with negation at the level of the object programs being verified or
analysed.
