| C.AMutConstruct (id, _, _, _, _)
| C.AMeta (id, _, _) -> meta id
| C.ARel (id, _, m, _) ->
- if m = succ (k - n) then hole id else meta id
+ if succ (k - n) <= m && m <= k then hole id else meta id
| C.AAppl (id, ts) ->
let ts = List.map (gen_term k) ts in
if is_meta ts then meta id else C.AAppl (id, ts)
in
gen_term 0
-let mk_pattern rpsno predicate =
- let body = generalize rpsno predicate in
- clear_absts 0 rpsno body
+let mk_pattern psno predicate =
+ let body = generalize psno predicate in
+ clear_absts 0 psno body