diff --git a/theories/examples/subprotocols.v b/theories/examples/subprotocols.v index 1c6643dc7b8c7caeafe0d70490e07d4f363b366c..e2ff47094835ba742f690fa287ff3ccb29bc43b8 100644 --- a/theories/examples/subprotocols.v +++ b/theories/examples/subprotocols.v @@ -33,18 +33,18 @@ Section basics. Axiom HIU : ∀ v u r, (IU u v ∗ IR r) -∗ IUR (u,r) v. Lemma example prot prot' : - prot ⊑ prot' - -∗ (<! (x : T) (v : val)> MSG v {{ IT x v }}; - <? (w : val)> MSG w {{ IU (f x) w }}; prot) ⊑ - (<! (x : T * R) (v : val)> MSG v {{ ITR x v }}; - <? (w : val)> MSG w {{ IUR (f x.1,x.2) w }}; prot'). + ▷ (prot ⊑ prot') -∗ + (<! (x : T) (v : val)> MSG v {{ IT x v }}; + <? (w : val)> MSG w {{ IU (f x) w }}; prot) ⊑ + (<! (x : T * R) (v : val)> MSG v {{ ITR x v }}; + <? (w : val)> MSG w {{ IUR (f x.1,x.2) w }}; prot'). Proof. - iIntros "Hprot" ([t r] v) "HTR". + iIntros "Hprot". + iIntros ([t r] v) "HTR". iDestruct (HIT with "HTR") as "[HT HR]". iExists t,v. iFrame "HT". iModIntro. - iIntros (w) "HU". - iDestruct (HIU with "[$HR $HU]") as "HUR". + iIntros (w) "HU". iDestruct (HIU with "[$HR $HU]") as "HUR". iExists w. iFrame "HUR". iModIntro. iApply "Hprot". Qed.