Definition ProtocolWithIndInv := @Protocol _ l _ _ _ us ur.Definition s_inv_conj (I1 I2 : dstatelet -> pred nid -> Prop)
           (st : send_trans (coh p)) :=
  S_inv (fun d n => I1 d n /\ I2 d n) st.

(* Specifications: *)
Lemma s_inv_conjC I1 I2 st : s_inv_conj I1 I2 st <-> s_inv_conj I2 I1 st.
Lemma s_inv_conjA I1 I2 I3 st : s_inv_conj I1 (fun d n => I2 d n /\ I3 d n) st <-> s_inv_conj (fun d n => I1 d n /\ I2 d n) I3 st.