diff options
author | barras <barras@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2001-03-01 10:09:34 +0000 |
---|---|---|
committer | barras <barras@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2001-03-01 10:09:34 +0000 |
commit | bb7d7482724489521dde94a5b70af7864acfa802 (patch) | |
tree | 821dfa6baa108de2b2af016e842164f01a39101f /pretyping/cbv.mli | |
parent | 05b756a9a5079e91c5015239bb801918d4903c08 (diff) |
nouvelle implantation de la reduction
suppression de IsXtra du noyau
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@1416 85f007b7-540e-0410-9357-904b9bb8a0f7
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 000000000..08e067f5a --- /dev/null +++ b/pretyping/cbv.mli @@ -0,0 +1,55 @@ + +(*i $Id$ i*) + +(*i*) +open Pp +open Names +open Term +open Evd +open Environ +open Closure +open Esubst +(*i*) + +(***********************************************************************) +(*s Call-by-value reduction *) + +(* Entry point for cbv normalization of a constr *) +type 'a cbv_infos +val create_cbv_infos : flags -> env -> 'a evar_map -> 'a cbv_infos +val cbv_norm : 'a 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 int * (section_path * int) * cbv_value array * 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 under_case_stack : cbv_stack -> bool +val strip_appl : cbv_value -> cbv_stack -> cbv_value * cbv_stack + +val red_allowed : flags -> cbv_stack -> red_kind -> bool +val reduce_const_body : + (cbv_value -> cbv_value) -> cbv_value -> cbv_stack -> cbv_value * cbv_stack + +(* recursive functions... *) +val cbv_stack_term : 'a cbv_infos -> + cbv_stack -> cbv_value subs -> constr -> cbv_value +val cbv_norm_term : 'a cbv_infos -> cbv_value subs -> constr -> constr +val cbv_norm_more : 'a cbv_infos -> cbv_value subs -> cbv_value -> cbv_value +val norm_head : 'a cbv_infos -> + cbv_value subs -> constr -> cbv_stack -> cbv_value * cbv_stack +val apply_stack : 'a cbv_infos -> constr -> cbv_stack -> constr +val cbv_norm_value : 'a cbv_infos -> cbv_value -> constr +(* End of cbv debug section i*) |