aboutsummaryrefslogtreecommitdiffhomepage
path: root/tactics/inv.ml
diff options
context:
space:
mode:
authorGravatar Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr>2016-11-30 00:41:31 +0100
committerGravatar Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr>2017-02-14 17:30:44 +0100
commitbe51c33a6bf91a00fdd5f3638ddb5b3cc3a2c626 (patch)
treeb89ce3f21a24c65a5ce199767d13182007b78a25 /tactics/inv.ml
parent1683b718f85134fdb0d49535e489344e1a7d56f5 (diff)
Namegen primitives now apply on evar constrs.
Incidentally, this fixes a printing bug in output/inference.v where the displayed name of an evar was the wrong one because its type was not evar-expanded enough.
Diffstat (limited to 'tactics/inv.ml')
-rw-r--r--tactics/inv.ml9
1 files changed, 2 insertions, 7 deletions
diff --git a/tactics/inv.ml b/tactics/inv.ml
index ecb8eedac..632a29721 100644
--- a/tactics/inv.ml
+++ b/tactics/inv.ml
@@ -90,8 +90,7 @@ let make_inv_predicate env evd indf realargs id status concl =
| None ->
let sort = get_sort_family_of env !evd concl in
let sort = Evarutil.evd_comb1 (Evd.fresh_sort_in_family env) evd sort in
- let p = make_arity env true indf sort in
- let p = EConstr.of_constr p in
+ let p = make_arity env !evd true indf sort in
let evd',(p,ptyp) = Unification.abstract_list_all env
!evd p concl (realargs@[mkVar id])
in evd := evd'; p in
@@ -133,11 +132,7 @@ let make_inv_predicate env evd indf realargs id status concl =
build_concl eqns args (succ n) restlist
in
let (newconcl, args) = build_concl [] [] 0 realargs in
- let name_context env ctx =
- let map f c = List.map (fun d -> Termops.map_rel_decl f d) c in
- map EConstr.of_constr (name_context env (map EConstr.Unsafe.to_constr ctx))
- in
- let predicate = it_mkLambda_or_LetIn newconcl (name_context env hyps) in
+ let predicate = it_mkLambda_or_LetIn newconcl (name_context env !evd hyps) in
let _ = Evarutil.evd_comb1 (Typing.type_of env) evd predicate in
(* OK - this predicate should now be usable by res_elimination_then to
do elimination on the conclusion. *)