aboutsummaryrefslogtreecommitdiff
path: root/proofs
diff options
context:
space:
mode:
Diffstat (limited to 'proofs')
-rw-r--r--proofs/logic.ml17
1 files changed, 8 insertions, 9 deletions
diff --git a/proofs/logic.ml b/proofs/logic.ml
index 5f765c9628..33b22c3b73 100644
--- a/proofs/logic.ml
+++ b/proofs/logic.ml
@@ -292,14 +292,11 @@ let rec mk_refgoals sigma goal goalacc conclty trm =
| App (f,l) ->
let (acc',hdty) =
match kind_of_term f with
- | Ind ind
+ | (Ind _ | Const _)
when not (array_exists occur_meta l) (* we could be finer *) ->
- (* Sort-polymorphism of inductive types *)
- goalacc, type_of_inductive_knowing_parameters env sigma ind l
- | Const cst
- when not (array_exists occur_meta l) (* we could be finer *) ->
- (* Sort-polymorphism of inductive types *)
- goalacc, type_of_constant_knowing_parameters env sigma cst l
+ (* Sort-polymorphism of definition and inductive types *)
+ goalacc,
+ type_of_global_reference_knowing_parameters env sigma f l
| _ ->
mk_hdgoals sigma goal goalacc f
in
@@ -342,8 +339,10 @@ and mk_hdgoals sigma goal goalacc trm =
| App (f,l) ->
let (acc',hdty) =
- if isInd f & not (array_exists occur_meta l) (* we could be finer *)
- then (goalacc,type_of_inductive_knowing_parameters env sigma (destInd f) l)
+ if isInd f or isConst f
+ & not (array_exists occur_meta l) (* we could be finer *)
+ then
+ (goalacc,type_of_global_reference_knowing_parameters env sigma f l)
else mk_hdgoals sigma goal goalacc f
in
mk_arggoals sigma goal acc' hdty (Array.to_list l)