diff options
Diffstat (limited to 'src/Util/Tactics/DestructHyps.v')
-rw-r--r-- | src/Util/Tactics/DestructHyps.v | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/Util/Tactics/DestructHyps.v b/src/Util/Tactics/DestructHyps.v index 8ab6215c2..43f578291 100644 --- a/src/Util/Tactics/DestructHyps.v +++ b/src/Util/Tactics/DestructHyps.v @@ -30,6 +30,11 @@ Ltac inversion_all_matches_then matcher tac := Ltac inversion_one_match_then matcher tac := do_one_match_then matcher ltac:(fun H => inversion H; subst) tac. +Ltac inversion_clear_all_matches_then matcher tac := + do_all_matches_then matcher ltac:(fun H => inversion H; clear H; subst) tac. +Ltac inversion_clear_one_match_then matcher tac := + do_one_match_then matcher ltac:(fun H => inversion H; clear H; subst) tac. + Ltac destruct_all_matches matcher := destruct_all_matches_then matcher ltac:( simpl in * ). Ltac destruct_one_match matcher := destruct_one_match_then matcher ltac:( simpl in * ). @@ -39,6 +44,10 @@ Ltac inversion_all_matches matcher := inversion_all_matches_then matcher ltac:( Ltac inversion_one_match matcher := inversion_one_match_then matcher ltac:( simpl in * ). Ltac inversion_all_matches' matcher := inversion_all_matches_then matcher idtac. +Ltac inversion_clear_all_matches matcher := inversion_clear_all_matches_then matcher ltac:( simpl in * ). +Ltac inversion_clear_one_match matcher := inversion_clear_one_match_then matcher ltac:( simpl in * ). +Ltac inversion_clear_all_matches' matcher := inversion_clear_all_matches_then matcher idtac. + (* matches anything whose type has a [T] in it *) Ltac destruct_type_matcher T HT := match HT with |