diff --git a/theories/logatom/herlihy_wing_queue/hwq.v b/theories/logatom/herlihy_wing_queue/hwq.v index 3b463cdbbc9129588e1a6a609986b87658b6ac62..23cfae5934e267495ad040e3cd172a5cd1ecfad3 100644 --- a/theories/logatom/herlihy_wing_queue/hwq.v +++ b/theories/logatom/herlihy_wing_queue/hwq.v @@ -1422,7 +1422,7 @@ Lemma big_lemma γe γs (ls : list loc) slots (p : list nat) : Proof. revert p. iIntros (p). iInduction p as [|n ps] "IH" forall (slots ls); iIntros (HNoDup H) "Hsâ— Hbig Heâ—". - - iModIntro. rewrite /= -app_nil_end map_imap_helped_nil. iFrame. + - iModIntro. rewrite /= app_nil_r map_imap_helped_nil. iFrame. - assert (∀ i : nat, i ∈ ps → was_committed <$> slots !! i = Some false) as H1. { intros i Hi. apply H. apply elem_of_list_further, Hi. } assert (was_committed <$> slots !! n = Some false) as H2. @@ -1880,7 +1880,7 @@ Proof. (* There is no [Contra1]/[Contra2], and the prophecy is non-trivial. *) destruct Hcont as (Hblocks & Hrest & Hpvs). assert (rest = []) as -> by by apply Hrest. - rewrite -app_nil_end in elts. rewrite -app_nil_end. + rewrite app_nil_r in elts. rewrite app_nil_r. destruct b as [b_unused b_pendings]. (* We compare our index with the unused element of the prophecy. *) destruct (decide (b_unused = i)) as [->|b_unused_not_i]. @@ -1929,7 +1929,7 @@ Proof. + by destruct dw. + by destruct dw. } iSplitL "Heâ—". - { rewrite -app_nil_end /new_pref /elts map_app map_cons. + { rewrite app_nil_r /new_pref /elts map_app map_cons. rewrite [in get_value new_slots deqs i]/get_value. rewrite [in new_slots !! i]/new_slots. rewrite map_lookup_imap lookup_insert /= -app_assoc cons_middle. @@ -2145,7 +2145,7 @@ Proof. { pose (new_bs := glue_blocks (b_unused, b_pendings) i blocks). pose (new_slots := <[i:=(l, Pend γs_i, false)]> slots). iNext. iExists (S back), pvs, pref, [], (NoCont new_bs), new_slots, deqs. - rewrite -app_nil_end. iFrame. iSplitL "Hâ„“_ar". + rewrite app_nil_r. iFrame. iSplitL "Hâ„“_ar". { assert (array_content sz slots deqs = array_content sz new_slots deqs) as ->; last done. apply array_content_ext. intros k Hk. rewrite /new_slots /array_get. destruct (decide (k = i)) as [->|Hk_not_i].