From 339fad94cbb51911698142e3e879c53fa6a0e012 Mon Sep 17 00:00:00 2001 From: barras Date: Tue, 21 Apr 2009 19:02:18 +0000 Subject: fixed CBV strategy: it was too eager on terms like Axiom f: (nat->nat)->Prop. Eval compute in let _ := f(fun _ => mult 1000 1000) in 0. function was strongly evaluated when applied to f (based on examples provided by Damien Pous) git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12098 85f007b7-540e-0410-9357-904b9bb8a0f7 --- pretyping/cbv.mli | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'pretyping/cbv.mli') diff --git a/pretyping/cbv.mli b/pretyping/cbv.mli index 461115a56..de66d22bc 100644 --- a/pretyping/cbv.mli +++ b/pretyping/cbv.mli @@ -29,18 +29,20 @@ val cbv_norm : cbv_infos -> constr -> constr (*i This is for cbv debug *) type cbv_value = | VAL of int * constr + | STACK of int * cbv_value * cbv_stack + | CBN of constr * cbv_value subs | LAM of int * (name * constr) list * constr * cbv_value subs | FIXP of fixpoint * cbv_value subs * cbv_value array | COFIXP of cofixpoint * cbv_value subs * cbv_value array | CONSTR of constructor * cbv_value array -val shift_value : int -> cbv_value -> cbv_value - -type cbv_stack = +and cbv_stack = | TOP | APP of cbv_value array * cbv_stack | CASE of constr * constr array * case_info * cbv_value subs * cbv_stack +val shift_value : int -> cbv_value -> cbv_value + val stack_app : cbv_value array -> cbv_stack -> cbv_stack val strip_appl : cbv_value -> cbv_stack -> cbv_value * cbv_stack -- cgit v1.2.3