diff options
author | Tej Chajed <tchajed@mit.edu> | 2017-03-22 20:35:38 -0400 |
---|---|---|
committer | Tej Chajed <tchajed@mit.edu> | 2017-03-23 11:21:55 -0400 |
commit | b1656b1f10501b34ae6a7e147f550710b935e54b (patch) | |
tree | 0b7066295e87450d832f55a4b47674eb35454325 /test-suite/success/ltac_match_pattern_names.v | |
parent | 6d2802075606dcddb02dd13cbaf38ff76f8bf242 (diff) |
Intern names bound in match patterns
Fixes Coq bug 5345 (https://coq.inria.fr/bugs/show_bug.cgi?id=5345):
Cannot use names bound in matches inside Ltac definitions.
Diffstat (limited to 'test-suite/success/ltac_match_pattern_names.v')
-rw-r--r-- | test-suite/success/ltac_match_pattern_names.v | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/test-suite/success/ltac_match_pattern_names.v b/test-suite/success/ltac_match_pattern_names.v new file mode 100644 index 000000000..736329496 --- /dev/null +++ b/test-suite/success/ltac_match_pattern_names.v @@ -0,0 +1,28 @@ +(* example from bug 5345 *) +Ltac break_tuple := + match goal with + | [ H: context[let '(n, m) := ?a in _] |- _ ] => + let n := fresh n in + let m := fresh m in + destruct a as [n m] + end. + +(* desugared version of break_tuple *) +Ltac break_tuple' := + match goal with + | [ H: context[match ?a with | pair n m => _ end] |- _ ] => + let n := fresh n in + let m := fresh m in + idtac + end. + +Ltac multiple_branches := + match goal with + | [ H: match _ with + | left P => _ + | right Q => _ + end |- _ ] => + let P := fresh P in + let Q := fresh Q in + idtac + end.
\ No newline at end of file |