An Introduction To Practical Formal Methods Using Temporal Logic by Michael Fisher