context)
in
let newmeta = Cic.Meta (idx, irl) in
- let prod = Cic.Prod (Cic.Anonymous, argty, newmeta) in
+ let prod =
+ Cic.Prod
+ (FreshNamesGenerator.mk_fresh_name
+ (CicMetaSubst.apply_subst_metasenv subst metasenv)
+ (CicMetaSubst.apply_subst_context subst context)
+ Cic.Anonymous
+ (CicMetaSubst.apply_subst subst argty),
+ argty, newmeta) in
let (_, subst, metasenv) = type_of_aux subst metasenv context prod in
let (subst, metasenv) =
CicUnification.fo_unif_subst subst context metasenv resty prod
let ty,subst',metasenv' =
type_of_aux [] metasenv context t
in
- (CicMetaSubst.apply_subst subst' t,
- CicMetaSubst.apply_subst subst' ty,
+ (FreshNamesGenerator.clean_dummy_dependent_types
+ (CicMetaSubst.apply_subst subst' t),
+ FreshNamesGenerator.clean_dummy_dependent_types
+ (CicMetaSubst.apply_subst subst' ty),
CicMetaSubst.apply_subst_metasenv subst' metasenv')
;;