diff --git a/heap_lang/tests.v b/heap_lang/tests.v index d687c90513349e0d22b14cb7f086699d8fff5722..414c82d860535448a0227bbc4c17774d2e5dbf5e 100644 --- a/heap_lang/tests.v +++ b/heap_lang/tests.v @@ -63,7 +63,8 @@ Section LiftingTests. Proof. wp_lam>; apply later_mono; wp_op=> ?; wp_if. - wp_op. wp_op. - (* TODO: Can we use the wp tactic again here? *) + (* TODO: Can we use the wp tactic again here? It seems that the tactic fails if there + are goals being generated. That should not be the case. *) wp_focus (FindPred _ _). rewrite -FindPred_spec; last by omega. wp_op. by replace (n - 1) with (- (-n + 2 - 1)) by omega. - rewrite -FindPred_spec; eauto with omega. diff --git a/heap_lang/wp_tactics.v b/heap_lang/wp_tactics.v index ee6117c9e199b3a7750f88cbad6f3db673b40534..6cb031f7430ba8da5a7dc0d5ee8b9d6098b1d4c9 100644 --- a/heap_lang/wp_tactics.v +++ b/heap_lang/wp_tactics.v @@ -141,7 +141,7 @@ Tactic Notation "wp" ">" tactic(tac) := match goal with | |- _ ⊑ wp ?E ?e ?Q => reshape_expr e ltac:(fun K e' => wp_bind K; tac) end. -Tactic Notation "wp" tactic(tac) := (wp> tac); wp_strip_later. +Tactic Notation "wp" tactic(tac) := (wp> tac); [wp_strip_later|..]. (* In case the precondition does not match *) Tactic Notation "ewp" tactic(tac) := wp (etrans; [|tac]).