let rec aux context n nn te =
match R.whd ~subst context te with
| t when t = dummy -> true
+ | C.Meta (i,lc) ->
+ (try
+ let _,_,term,_ = U.lookup_subst i subst in
+ let t = S.subst_meta lc term in
+ weakly_positive ~subst context n nn uri indparamsno posuri t
+ with U.Subst_not_found _ -> true)
| C.Appl (te::rargs) when te = dummy ->
List.for_all (does_not_occur ~subst context n nn) rargs
| C.Prod (name,source,dest) when
and strictly_positive ~subst context n nn indparamsno posuri te =
match R.whd ~subst context te with
| t when does_not_occur ~subst context n nn t -> true
+ | C.Meta (i,lc) ->
+ (try
+ let _,_,term,_ = U.lookup_subst i subst in
+ let t = S.subst_meta lc term in
+ strictly_positive ~subst context n nn indparamsno posuri t
+ with U.Subst_not_found _ -> true)
| C.Rel _ when indparamsno = 0 -> true
| C.Appl ((C.Rel m)::tl) as reduct when m > n && m <= nn ->
check_homogeneous_call ~subst context indparamsno n posuri reduct tl;