diff options
author | Matthieu Sozeau <matthieu.sozeau@inria.fr> | 2014-08-03 20:02:49 +0200 |
---|---|---|
committer | Matthieu Sozeau <matthieu.sozeau@inria.fr> | 2014-08-03 23:39:01 +0200 |
commit | 7002b3daca6da29eadf80019847630b8583c3daf (patch) | |
tree | 9dcc3b618d33dd416805f70e878d71d007ddf4ff /kernel/fast_typeops.ml | |
parent | 5de89439d459edd402328a1e437be4d8cd2e4f46 (diff) |
Move to a representation of universe polymorphic constants using indices for variables.
Simplifies instantiation of constants/inductives, requiring less allocation and Map.find's.
Abstraction by variables is handled mostly inside the kernel but could be moved outside.
Diffstat (limited to 'kernel/fast_typeops.ml')
-rw-r--r-- | kernel/fast_typeops.ml | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/kernel/fast_typeops.ml b/kernel/fast_typeops.ml index 83f1e74ba..a88302e04 100644 --- a/kernel/fast_typeops.ml +++ b/kernel/fast_typeops.ml @@ -302,8 +302,7 @@ let judge_of_projection env p c ct = with Not_found -> error_case_not_inductive env (make_judge c ct) in assert(eq_mind pb.proj_ind (fst ind)); - let usubst = make_inductive_subst (fst (lookup_mind_specif env ind)) u in - let ty = Vars.subst_univs_level_constr usubst pb.Declarations.proj_type in + let ty = Vars.subst_instance_constr u pb.Declarations.proj_type in substl (c :: List.rev args) ty |