From Traces to Proofs: Proving Concurrent Programs Safe | IEEE Conference Publication | IEEE Xplore