aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormsozeau2013-06-14 14:50:51 +0000
committermsozeau2013-06-14 14:50:51 +0000
commit7571dfee41570004e7f236e8b11c18605172eb0e (patch)
tree25a27dc1e8e25aa9b07ab4226232ec5aaaf9f7e5
parentc9733ae91345b5d720cb361e99625874651a4a6e (diff)
When doing setoid_rewrite through rewrite, do resolution of classes
in w_unify_to_subterm, deactivated by previous patch (fixes RelationAlgebra). git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16579 85f007b7-540e-0410-9357-904b9bb8a0f7
-rw-r--r--tactics/rewrite.ml47
1 files changed, 4 insertions, 3 deletions
diff --git a/tactics/rewrite.ml4 b/tactics/rewrite.ml4
index 679fc8da67..a678a4e306 100644
--- a/tactics/rewrite.ml4
+++ b/tactics/rewrite.ml4
@@ -1887,16 +1887,17 @@ let unification_rewrite flags l2r c1 c2 cl car rel but gl =
(* ~flags:(false,true) to allow to mark occurrences that must not be
rewritten simply by replacing them with let-defined definitions
in the context *)
- Unification.w_unify_to_subterm ~flags:rewrite_unif_flags env
+ Unification.w_unify_to_subterm
+ ~flags:{ rewrite_unif_flags with Unification.resolve_evars = true } env
cl.evd ((if l2r then c1 else c2),but)
with
Pretype_errors.PretypeError _ ->
(* ~flags:(true,true) to make Ring work (since it really
exploits conversion) *)
- Unification.w_unify_to_subterm ~flags:flags
+ Unification.w_unify_to_subterm
+ ~flags:{ flags with Unification.resolve_evars = true }
env cl.evd ((if l2r then c1 else c2),but)
in
- let evd' = Typeclasses.resolve_typeclasses ~fail:false env evd' in
let cl' = {cl with evd = evd'} in
let cl' = Clenvtac.clenv_pose_dependent_evars true cl' in
let nf c = Evarutil.nf_evar cl'.evd (Clenv.clenv_nf_meta cl' c) in