aboutsummaryrefslogtreecommitdiffhomepage
path: root/tactics
diff options
context:
space:
mode:
authorGravatar Matthieu Sozeau <matthieu.sozeau@inria.fr>2015-11-02 14:41:17 -0500
committerGravatar Matthieu Sozeau <matthieu.sozeau@inria.fr>2015-11-02 16:23:15 -0500
commitc920b420a27bd561967e316dcaca41d5e019a7b8 (patch)
tree0db30f3892d9ef24499917315c62d0d2e371a9b2 /tactics
parent739d8e50b3681491bd82b516dbbba892ac5b424b (diff)
Fix bug #4151: discrepancy between exact and eexact/eassumption.
Diffstat (limited to 'tactics')
-rw-r--r--tactics/eauto.ml43
-rw-r--r--tactics/tactics.ml5
2 files changed, 5 insertions, 3 deletions
diff --git a/tactics/eauto.ml4 b/tactics/eauto.ml4
index 7b4b6f916..aa285fa98 100644
--- a/tactics/eauto.ml4
+++ b/tactics/eauto.ml4
@@ -33,7 +33,8 @@ DECLARE PLUGIN "eauto"
let eauto_unif_flags = auto_flags_of_state full_transparent_state
-let e_give_exact ?(flags=eauto_unif_flags) c gl = let t1 = (pf_unsafe_type_of gl c) and t2 = pf_concl gl in
+let e_give_exact ?(flags=eauto_unif_flags) c gl =
+ let t1 = (pf_unsafe_type_of gl c) and t2 = pf_concl gl in
if occur_existential t1 || occur_existential t2 then
tclTHEN (Proofview.V82.of_tactic (Clenvtac.unify ~flags t1)) (exact_no_check c) gl
else Proofview.V82.of_tactic (exact_check c) gl
diff --git a/tactics/tactics.ml b/tactics/tactics.ml
index 0b920066f..56896bbc4 100644
--- a/tactics/tactics.ml
+++ b/tactics/tactics.ml
@@ -223,8 +223,9 @@ let convert_hyp_no_check = convert_hyp ~check:false
let convert_gen pb x y =
Proofview.Goal.enter begin fun gl ->
try
- let sigma = Tacmach.New.pf_apply Evd.conversion gl pb x y in
- Proofview.Unsafe.tclEVARS sigma
+ let sigma, b = Tacmach.New.pf_apply (Reductionops.infer_conv ~pb) gl x y in
+ if b then Proofview.Unsafe.tclEVARS sigma
+ else Tacticals.New.tclFAIL 0 (str "Not convertible")
with (* Reduction.NotConvertible *) _ ->
(** FIXME: Sometimes an anomaly is raised from conversion *)
Tacticals.New.tclFAIL 0 (str "Not convertible")