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 pt_state_functional d pt ps1 lg1 ps2 lg2 : valid (loc pt d) -> pt_state d ps1 lg1 pt -> pt_state d ps2 lg2 pt -> ps1 = ps2 /\ lg1 = lg2.