diff --git a/base_logic/lib/na_invariants.v b/base_logic/lib/na_invariants.v index 2a4fe80136b6befa04aa4f5797e998f918917328..508b88300b038e91ad2219c7ae5b43a557f9acff 100644 --- a/base_logic/lib/na_invariants.v +++ b/base_logic/lib/na_invariants.v @@ -71,14 +71,14 @@ Section proofs. iNext. iLeft. by iFrame. Qed. - Lemma na_inv_open tid E N P : - ↑N ⊆ E → - na_inv tid N P -∗ na_own tid E ={E}=∗ ▷ P ∗ na_own tid (E∖↑N) ∗ - (▷ P ∗ na_own tid (E∖↑N) ={E}=∗ na_own tid E). + Lemma na_inv_open tid E F N P : + ↑N ⊆ E → ↑N ⊆ F → + na_inv tid N P -∗ na_own tid F ={E}=∗ ▷ P ∗ na_own tid (F∖↑N) ∗ + (▷ P ∗ na_own tid (F∖↑N) ={E}=∗ na_own tid F). Proof. - rewrite /na_inv. iIntros (?) "#Htlinv Htoks". + rewrite /na_inv. iIntros (??) "#Htlinv Htoks". iDestruct "Htlinv" as (i) "[% Hinv]". - rewrite [E as X in na_own tid X](union_difference_L (↑N) E) //. + rewrite [F as X in na_own tid X](union_difference_L (↑N) F) //. rewrite [X in (X ∪ _)](union_difference_L {[i]} (↑N)) ?na_own_union; [|set_solver..]. iDestruct "Htoks" as "[[Htoki $] $]". iInv N as "[[$ >Hdis]|>Htoki2]" "Hclose".