Formal methods are techniques that are firmly based in mathematics, they can be used
to specify and verify computer systems. Formal techniques offer many advantages,
including correctness and productivity over less formal ones. Wide acceptance of
these methods is hindered by their relatively difficult notations and theories. This
thesis takes the view that the availability of usable tools that support formal
techniques plays an important role in promoting their use by a wider community of
software engineers. [Continues.]
A doctoral thesis submitted in partial fulfilment of the requirements for the award of Doctor of Philosophy at Loughborough University.