aboutsummaryrefslogtreecommitdiffhomepage
path: root/proofs/logic.ml
diff options
context:
space:
mode:
authorGravatar Matthieu Sozeau <matthieu.sozeau@inria.fr>2015-11-03 17:25:49 -0500
committerGravatar Matthieu Sozeau <matthieu.sozeau@inria.fr>2015-11-04 11:25:50 -0500
commitb30ca8ac9e0225e6505fea0004ea37e7649c9cb6 (patch)
tree0a16bf29d60f9b27530b9c5fa2e1c58aa210353a /proofs/logic.ml
parentf4ff8f4f8b0bd2c721e4984faf7360d6fab93b05 (diff)
Fix bug in proofs/logic.ml type_of_global_reference_knowing_conclusion
is buggy in general.
Diffstat (limited to 'proofs/logic.ml')
-rw-r--r--proofs/logic.ml6
1 files changed, 4 insertions, 2 deletions
diff --git a/proofs/logic.ml b/proofs/logic.ml
index 5c48995fc..3273c9572 100644
--- a/proofs/logic.ml
+++ b/proofs/logic.ml
@@ -356,9 +356,11 @@ let rec mk_refgoals sigma goal goalacc conclty trm =
| App (f,l) ->
let (acc',hdty,sigma,applicand) =
if is_template_polymorphic env f then
- let sigma, ty =
+ let ty =
(* Template sort-polymorphism of definition and inductive types *)
- type_of_global_reference_knowing_conclusion env sigma f conclty
+ let firstmeta = Array.findi (fun i x -> occur_meta x) l in
+ let args, _ = Option.cata (fun i -> CArray.chop i l) (l, [||]) firstmeta in
+ type_of_global_reference_knowing_parameters env sigma f args
in
goalacc, ty, sigma, f
else