aboutsummaryrefslogtreecommitdiffhomepage
path: root/tactics/inv.ml
diff options
context:
space:
mode:
authorGravatar Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr>2014-01-28 21:02:02 +0100
committerGravatar Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr>2014-01-28 21:02:02 +0100
commita438546db97261451882286f82114191247ad275 (patch)
treed022ba614385fad18675246ac81f61cddee72afa /tactics/inv.ml
parentdfcef9c70aa7ef35461826e777458851da326d73 (diff)
Fixing dependent inversion. Some exceptions were not caught by the tactic
monad.
Diffstat (limited to 'tactics/inv.ml')
-rw-r--r--tactics/inv.ml4
1 files changed, 4 insertions, 0 deletions
diff --git a/tactics/inv.ml b/tactics/inv.ml
index c317413a3..fb6de660d 100644
--- a/tactics/inv.ml
+++ b/tactics/inv.ml
@@ -471,6 +471,7 @@ let raw_inversion inv_kind id status names =
Proofview.tclZERO (Errors.UserError ("raw_inversion" ,
str ("The type of "^(Id.to_string id)^" is not inductive.")))
end >= fun (ind,t) ->
+ try
let indclause = Tacmach.New.of_old (fun gl -> mk_clenv_from gl (c,t)) gl in
let ccl = clenv_type indclause in
check_no_metas indclause ccl;
@@ -496,6 +497,9 @@ let raw_inversion inv_kind id status names =
(Proofview.V82.tactic (apply_term (mkVar id)
(List.init neqns (fun _ -> Evarutil.mk_new_meta()))))
reflexivity))])
+ with e when Errors.noncritical e ->
+ let e = Errors.push e in
+ Proofview.tclZERO e
end
(* Error messages of the inversion tactics *)