Definition tpc := TwoPhaseCommitProtocol others Hnin l.(* Take the transitions *)
Notation sts := (snd_trans tpc).Notation rts := (rcv_trans tpc).Notation loc z d := (getLocal z d).Definition PhaseOne (d : dstatelet) (round : nat) (next_data : data) (l : Log) :=
  (exists sent, cn_PhaseOneSend d round next_data l sent) \/
  (exists recvd, cn_PhaseOneReceive d round next_data l recvd).(***********************************************************)
(* Elimination lemmas for the invariant to deal with cases *)
(***********************************************************)

Notation coh d := (coh tpc d).Notation PI := pf_irr.

Lemma PhaseTwoCommit_round_cn d round lg next_data : PhaseTwoCommit d round next_data lg -> exists cs, cn_state d (round, cs) lg.