aboutsummaryrefslogtreecommitdiffhomepage
path: root/tactics/equality.ml
diff options
context:
space:
mode:
authorGravatar amblaf <you@example.com>2017-07-12 15:44:37 +0200
committerGravatar amblaf <you@example.com>2017-07-31 10:34:05 +0200
commit7ba6bc4554a642f78f59b996f99d9d6ca2cc2678 (patch)
tree5781f1a0ed49b63b53312e0bed953380a2451052 /tactics/equality.ml
parent1c10b84c0ce5f96a3afd1fc83c738c76070958c3 (diff)
better `try with` scope in `discr_positions`
Diffstat (limited to 'tactics/equality.ml')
-rw-r--r--tactics/equality.ml14
1 files changed, 8 insertions, 6 deletions
diff --git a/tactics/equality.ml b/tactics/equality.ml
index 6274bca9f..ad6abfa1f 100644
--- a/tactics/equality.ml
+++ b/tactics/equality.ml
@@ -1004,18 +1004,20 @@ let discr_positions env sigma (lbeq,eqn,(t,t1,t2)) eq_clause cpath dirn =
build_coq_False () >>= fun false_0 ->
let e = next_ident_away eq_baseid (ids_of_context env) in
let e_env = push_named (Context.Named.Declaration.LocalAssum (e,t)) env in
- try
- let discriminator =
- build_discriminator e_env sigma true_0 false_0 dirn (mkVar e) cpath
- in
+ let discriminator =
+ try
+ Proofview.tclUNIT
+ (build_discriminator e_env sigma true_0 false_0 dirn (mkVar e) cpath)
+ with
+ UserError _ as ex -> Proofview.tclZERO ex
+ in
+ discriminator >>= fun discriminator ->
discrimination_pf e (t,t1,t2) discriminator lbeq >>= fun (pf, absurd_term) ->
let pf_ty = mkArrow eqn absurd_term in
let absurd_clause = apply_on_clause (pf,pf_ty) eq_clause in
let pf = Clenvtac.clenv_value_cast_meta absurd_clause in
tclTHENS (assert_after Anonymous absurd_term)
[onLastHypId gen_absurdity; (Proofview.V82.tactic (Tacmach.refine pf))]
- with
- UserError _ as ex -> Proofview.tclZERO ex
let discrEq (lbeq,_,(t,t1,t2) as u) eq_clause =
let sigma = eq_clause.evd in