diff --git a/proofmode/tactics.v b/proofmode/tactics.v index 17fc75871491231339be2c155df269d0ed0c4f8a..ed27be14a826d549d31fc2999e2fc3e909991f50 100644 --- a/proofmode/tactics.v +++ b/proofmode/tactics.v @@ -190,7 +190,10 @@ Local Tactic Notation "iSpecializePat" constr(H) constr(pat) := eapply tac_specialize_assert with _ _ _ H1 _ lr Hs _ _ _ _; [env_cbv; reflexivity || fail "iSpecialize:" H1 "not found" |solve_to_wand H1 - |match k with GoalStd => apply to_assert_fallthrough | GoalPvs => apply _ end + |match k with + | GoalStd => apply to_assert_fallthrough + | GoalPvs => apply _ || fail "iSpecialize: cannot generate pvs goal" + end |env_cbv; reflexivity || fail "iSpecialize:" Hs "not found" |(*goal*) |go H1 pats] @@ -713,7 +716,10 @@ Tactic Notation "iAssert" constr(Q) "with" constr(Hs) "as" constr(pat) := |iDestructHyp H as pat] | [SGoal ?k ?lr ?Hs] => eapply tac_assert with _ _ _ lr Hs H Q _; (* (js:=Hs) (j:=H) (P:=Q) *) - [match k with GoalStd => apply to_assert_fallthrough | GoalPvs => apply _ end + [match k with + | GoalStd => apply to_assert_fallthrough + | GoalPvs => apply _ || fail "iAssert: cannot generate pvs goal" + end |env_cbv; reflexivity || fail "iAssert:" Hs "not found" |env_cbv; reflexivity| |iDestructHyp H as pat]