diff options
author | 2008-04-18 09:31:37 +0000 | |
---|---|---|
committer | 2008-04-18 09:31:37 +0000 | |
commit | d4fdeab05edd710bc0ae72a53f65e33d0b1f4ac2 (patch) | |
tree | 98ad70ca4cfcf8d7b32f812b1c3463e2241dc83c /pretyping/tacred.ml | |
parent | ff0673211da215b5b712c44cd1fe59d967e19eea (diff) |
Correction bug 1835 + correction bug occur-check résultant en un
"cannot define an evar twice"
--Cette ligne, et les suivantes ci-dessous, seront ignorées--
M tacred.ml
M evarutil.ml
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@10815 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'pretyping/tacred.ml')
-rw-r--r-- | pretyping/tacred.ml | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/pretyping/tacred.ml b/pretyping/tacred.ml index 3ee82a685..3b5038766 100644 --- a/pretyping/tacred.ml +++ b/pretyping/tacred.ml @@ -917,7 +917,14 @@ let one_step_reduce env sigma c = let isIndRef = function IndRef _ -> true | _ -> false let reduce_to_ref_gen allow_product env sigma ref t = - if isIndRef ref then snd (reduce_to_ind_gen allow_product env sigma t) else + if isIndRef ref then + let (mind,t) = reduce_to_ind_gen allow_product env sigma t in + if IndRef mind <> ref then + errorlabstrm "" (str "Cannot recognize a statement based on " ++ + Nametab.pr_global_env Idset.empty ref) + else + t + else (* lazily reduces to match the head of [t] with the expected [ref] *) let rec elimrec env t l = let c, _ = Reductionops.whd_stack t in |