Verifying Temporal Properties of Systems (Progress in Theoretical Computer Science)