Commit 35ba9ba1 authored by Robbert Krebbers's avatar Robbert Krebbers

Some test cases/uses for stronger framing in disjunctions.

parent 2fb90ca6
......@@ -47,8 +47,8 @@ Section proofs.
iIntros "#HPQ". rewrite /na_inv. iDestruct 1 as (i ?) "#Hinv".
iExists i. iSplit; first done. iApply (inv_iff with "[] Hinv").
iNext. iAlways. iSplit; (iIntros "[[? Ho]|?]";
[iLeft; iFrame "Ho"; by iApply "HPQ"|by iRight]).
iNext; iAlways.
iSplit; iIntros "[[? Ho]|$]"; iLeft; iFrame "Ho"; by iApply "HPQ".
Lemma na_alloc : (|==> p, na_own p )%I.
......@@ -104,6 +104,12 @@ Lemma test_iFrame_pure (x y z : M) :
x y z - ( x x y z : uPred M).
Proof. iIntros (Hv) "Hxy". by iFrame (Hv Hv) "Hxy". Qed.
Lemma test_iFrame_disjunction_1 P1 P2 Q1 Q2 :
P1 - Q2 - P2 - (P1 P2 False P2) (Q1 Q2).
Proof. iIntros "#HP1 HQ2 HP2". iFrame "HP1 HQ2 HP2". Qed.
Lemma test_iFrame_disjunction_2 P : P - (True True) P.
Proof. iIntros "HP". iFrame "HP". auto. Qed.
Lemma test_iAssert_persistent P Q : P - Q - True.
iIntros "HP HQ".
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment