Trace Partitioning

From Traces to Proofs: Proving Concurrent Programs Safe