Trace-Based Temporal Verification for Message-Passing Programs