Skip to content
Snippets Groups Projects
Commit 57a3c4ff authored by Ralf Jung's avatar Ralf Jung
Browse files

wp_pures: also handle [WP v]

parent 2bcaf8ba
No related branches found
No related tags found
No related merge requests found
......@@ -142,6 +142,10 @@ Section tests.
P -∗ ( Q Φ, Q -∗ WP e {{ Φ }}) -∗ WP e {{ _, True }}.
Proof. iIntros "HP HW". wp_apply "HW". iExact "HP". Qed.
Lemma wp_pures_val (b : bool) :
WP #b {{ _, True }}.
Proof. wp_pures. done. Qed.
Lemma wp_cmpxchg l v :
val_is_unboxed v
l v -∗ WP CmpXchg #l v v {{ _, True }}.
......
......@@ -107,8 +107,10 @@ Tactic Notation "wp_pure" open_constr(efoc) :=
(* TODO: do this in one go, without [repeat]. *)
Ltac wp_pures :=
iStartProof;
repeat (wp_pure _; []). (* The `;[]` makes sure that no side-condition
magically spawns. *)
first [ (* The `;[]` makes sure that no side-condition magically spawns. *)
progress repeat (wp_pure _; [])
| wp_finish (* In case wp_pure never ran, make sure we do the usual cleanup. *)
].
(** Unlike [wp_pures], the tactics [wp_rec] and [wp_lam] should also reduce
lambdas/recs that are hidden behind a definition, i.e. they should use
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment