A survey on temporal logics for specifying and verifying real-time systems