diff options
| author | Pierre-Marie Pédrot | 2019-02-07 10:43:22 +0100 |
|---|---|---|
| committer | Pierre-Marie Pédrot | 2019-02-07 10:43:22 +0100 |
| commit | d1538ff126a19b7b5f9a2a95a0175d8d6ac71e39 (patch) | |
| tree | 4455901019e1edeb44c8235f89f55a91bce9cfe9 | |
| parent | bd25768d7c314ebec3290691e81207ca638e3d79 (diff) | |
| parent | d708030189a1c464c110706b5c239e5071a901c9 (diff) | |
Merge PR #9496: Avoid eqn when generating name in induction_gen.
Reviewed-by: ppedrot
| -rw-r--r-- | tactics/tactics.ml | 5 | ||||
| -rw-r--r-- | test-suite/bugs/closed/bug_9494.v | 10 |
2 files changed, 14 insertions, 1 deletions
diff --git a/tactics/tactics.ml b/tactics/tactics.ml index 070b2356e5..f41706c35e 100644 --- a/tactics/tactics.ml +++ b/tactics/tactics.ml @@ -4522,8 +4522,11 @@ let induction_gen clear_flag isrec with_evars elim declaring the induction argument as a new local variable *) let id = (* Type not the right one if partially applied but anyway for internal use*) + let avoid = match eqname with + | Some {CAst.v=IntroIdentifier id} -> Id.Set.singleton id + | _ -> Id.Set.empty in let x = id_of_name_using_hdchar env evd t Anonymous in - new_fresh_id Id.Set.empty x gl in + new_fresh_id avoid x gl in let info_arg = (is_arg_pure_hyp, not enough_applied) in pose_induction_arg_then isrec with_evars info_arg elim id arg t inhyps cls diff --git a/test-suite/bugs/closed/bug_9494.v b/test-suite/bugs/closed/bug_9494.v new file mode 100644 index 0000000000..a0b8383d16 --- /dev/null +++ b/test-suite/bugs/closed/bug_9494.v @@ -0,0 +1,10 @@ +Lemma foo (a : nat) : True. +Proof. +destruct a eqn:n; exact I. +Qed. + +Set Mangle Names. +Lemma foo2 (a : nat) : True. +Proof. +let N := fresh in destruct a eqn:N; exact I. +Qed. |
