diff options
Diffstat (limited to 'pretyping/cbv.mli')
-rw-r--r-- | pretyping/cbv.mli | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/pretyping/cbv.mli b/pretyping/cbv.mli new file mode 100644 index 00000000..bf8e03b3 --- /dev/null +++ b/pretyping/cbv.mli @@ -0,0 +1,55 @@ +(************************************************************************) +(* v * The Coq Proof Assistant / The Coq Development Team *) +(* <O___,, * CNRS-Ecole Polytechnique-INRIA Futurs-Universite Paris Sud *) +(* \VV/ **************************************************************) +(* // * This file is distributed under the terms of the *) +(* * GNU Lesser General Public License Version 2.1 *) +(************************************************************************) + +(*i $Id: cbv.mli,v 1.6.14.1 2004/07/16 19:30:44 herbelin Exp $ i*) + +(*i*) +open Names +open Term +open Environ +open Closure +open Esubst +(*i*) + +(************************************************************************) +(*s Call-by-value reduction *) + +(* Entry point for cbv normalization of a constr *) +type cbv_infos + +val create_cbv_infos : RedFlags.reds -> env -> cbv_infos +val cbv_norm : cbv_infos -> constr -> constr + +(************************************************************************) +(*i This is for cbv debug *) +type cbv_value = + | VAL of int * constr + | LAM of name * constr * constr * cbv_value subs + | FIXP of fixpoint * cbv_value subs * cbv_value list + | COFIXP of cofixpoint * cbv_value subs * cbv_value list + | CONSTR of constructor * cbv_value list + +val shift_value : int -> cbv_value -> cbv_value + +type cbv_stack = + | TOP + | APP of cbv_value list * cbv_stack + | CASE of constr * constr array * case_info * cbv_value subs * cbv_stack + +val stack_app : cbv_value list -> cbv_stack -> cbv_stack +val strip_appl : cbv_value -> cbv_stack -> cbv_value * cbv_stack + +(* recursive functions... *) +val cbv_stack_term : cbv_infos -> + cbv_stack -> cbv_value subs -> constr -> cbv_value +val cbv_norm_term : cbv_infos -> cbv_value subs -> constr -> constr +val norm_head : cbv_infos -> + cbv_value subs -> constr -> cbv_stack -> cbv_value * cbv_stack +val apply_stack : cbv_infos -> constr -> cbv_stack -> constr +val cbv_norm_value : cbv_infos -> cbv_value -> constr +(* End of cbv debug section i*) |