diff options
author | 2015-11-02 14:41:17 -0500 | |
---|---|---|
committer | 2015-11-02 16:23:15 -0500 | |
commit | c920b420a27bd561967e316dcaca41d5e019a7b8 (patch) | |
tree | 0db30f3892d9ef24499917315c62d0d2e371a9b2 /tactics | |
parent | 739d8e50b3681491bd82b516dbbba892ac5b424b (diff) |
Fix bug #4151: discrepancy between exact and eexact/eassumption.
Diffstat (limited to 'tactics')
-rw-r--r-- | tactics/eauto.ml4 | 3 | ||||
-rw-r--r-- | tactics/tactics.ml | 5 |
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") |