diff options
Diffstat (limited to 'kernel/typeops.ml')
-rw-r--r-- | kernel/typeops.ml | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/kernel/typeops.ml b/kernel/typeops.ml index cd1f2c856..cb0c429a9 100644 --- a/kernel/typeops.ml +++ b/kernel/typeops.ml @@ -189,9 +189,7 @@ let type_of_projection env (cst,u) = match cb.const_proj with | Some pb -> if cb.const_polymorphic then - let mib,_ = lookup_mind_specif env (pb.proj_ind,0) in - let subst = make_inductive_subst mib u in - Vars.subst_univs_level_constr subst pb.proj_type + Vars.subst_instance_constr u pb.proj_type else pb.proj_type | None -> raise (Invalid_argument "type_of_projection: not a projection") @@ -388,8 +386,7 @@ let judge_of_projection env p cj = with Not_found -> error_case_not_inductive env cj 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 let ty = substl (cj.uj_val :: List.rev args) ty in (* TODO: Universe polymorphism for projections *) {uj_val = mkProj (p,cj.uj_val); |