Section InductiveInvConj.
Variable p : protocol.
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.
Definition r_inv_conj (I1 I2 : dstatelet -> pred nid -> Prop)
(rt : receive_trans (coh p)) :=
R_inv (fun d n => I1 d n /\ I2 d n) rt.

Lemma r_inv_conjA I1 I2 I3 rt :
r_inv_conj I1 (fun d n => I2 d n /\ I3 d n) rt <->
r_inv_conj (fun d n => I1 d n /\ I2 d n) I3 rt.