+val head_beta_reduce:
+ ?delta:int -> ?upto:int -> ?subst:NCic.substitution -> NCic.term -> NCic.term
+
+type stack_item
+type environment_item
+
+type machine = int * environment_item list * NCic.term * stack_item list
+
+val reduce_machine :
+ delta:int -> ?subst:NCic.substitution -> NCic.context -> machine ->
+ machine * bool
+val from_stack : delta:int -> stack_item -> machine
+val unwind : machine -> NCic.term
+
+val split_prods:
+ subst:NCic.substitution -> NCic.context -> int -> NCic.term ->
+ NCic.context * NCic.term
+
+(* to be used outside the kernel *)
+val alpha_eq:
+ NCic.metasenv -> NCic.substitution ->
+ NCic.context -> NCic.term -> NCic.term -> bool