aboutsummaryrefslogtreecommitdiff
path: root/proofs
diff options
context:
space:
mode:
authorpboutill2012-12-21 21:47:38 +0000
committerpboutill2012-12-21 21:47:38 +0000
commite9428d3127ca159451437c2abbc6306e0c31f513 (patch)
tree675eadf0e2790ae2dbe6f378dabf5a77feaec6f4 /proofs
parent99674e1e719cede1531ff4c3e21c57cfb6b55b48 (diff)
Yet a new reduction tactic in Coq : cbn
It is supposed to become the next generation of the simpl tactics (it "refolds" constant) but 1/it is a bit more aggresive than the old simpl 2/it cannot be customized as simpl start to be 3/(for now)it does not refold in reccursive calls constant such as compare x y := compare_cont x y Eq := (fix compare_cont x y s := ...) x y Eq git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16111 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'proofs')
-rw-r--r--proofs/redexpr.ml3
1 files changed, 3 insertions, 0 deletions
diff --git a/proofs/redexpr.ml b/proofs/redexpr.ml
index be0cba3a12..c4c821a9e5 100644
--- a/proofs/redexpr.ml
+++ b/proofs/redexpr.ml
@@ -183,6 +183,9 @@ let rec reduction_of_red_expr = function
(fun _ -> simpl),DEFAULTcast)
| Simpl None -> (simpl,DEFAULTcast)
| Cbv f -> (cbv_norm_flags (make_flag f),DEFAULTcast)
+ | Cbn f ->
+ (strong (fun env evd x -> zip ~refold:true
+ (whd_state_gen ~refold:true (make_flag f) env evd (x, []))),DEFAULTcast)
| Lazy f -> (clos_norm_flags (make_flag f),DEFAULTcast)
| Unfold ubinds -> (unfoldn (List.map out_with_occurrences ubinds),DEFAULTcast)
| Fold cl -> (fold_commands cl,DEFAULTcast)