The Temporal Logic of Reactive and Concurrent Systems