NCic.metasenv -> NCic.substitution -> NCic.context ->
int -> NCic.local_context -> NCic.term ->
(NCic.metasenv * NCic.substitution) * NCic.term
-
+
+val restrict:
+ NCic.metasenv ->
+ NCic.substitution ->
+ int -> int list -> NCic.metasenv * NCic.substitution * int
+
+(* bool = true if the type of the new meta is closed *)
+val mk_meta:
+ ?name:string ->
+ NCic.metasenv -> NCic.context ->
+ [ `WithType of NCic.term | `Term | `Type | `Sort ] ->
+ NCic.metasenv * NCic.term * NCic.term (* menv, instance, type *)
+
+(* returns the resulting type, the metasenv and the arguments *)
+val saturate:
+ ?delta:int -> NCic.metasenv -> NCic.substitution ->
+ NCic.context -> NCic.term -> int ->
+ NCic.term * NCic.metasenv * NCic.term list
+