aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorherbelin2005-02-18 22:07:53 +0000
committerherbelin2005-02-18 22:07:53 +0000
commitcd1257fcefd1f0afa09c638681f208c6949470a2 (patch)
tree607c2a700ca45dcb19c4edd7a389e22d21ccc4c5
parent36e6478a343fc93b849a2019b78ef5b3d8542910 (diff)
Ajout splay_lambda
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@6739 85f007b7-540e-0410-9357-904b9bb8a0f7
-rw-r--r--pretyping/reductionops.ml11
-rw-r--r--pretyping/reductionops.mli1
2 files changed, 12 insertions, 0 deletions
diff --git a/pretyping/reductionops.ml b/pretyping/reductionops.ml
index 3b0c1d6420..a7573f5343 100644
--- a/pretyping/reductionops.ml
+++ b/pretyping/reductionops.ml
@@ -575,6 +575,17 @@ let splay_prod env sigma =
in
decrec env []
+let splay_lambda env sigma =
+ let rec decrec env m c =
+ let t = whd_betadeltaiota env sigma c in
+ match kind_of_term t with
+ | Lambda (n,a,c0) ->
+ decrec (push_rel (n,None,a) env)
+ ((n,a)::m) c0
+ | _ -> m,t
+ in
+ decrec env []
+
let splay_prod_assum env sigma =
let rec prodec_rec env l c =
let t = whd_betadeltaiota_nolet env sigma c in
diff --git a/pretyping/reductionops.mli b/pretyping/reductionops.mli
index 9f0a73d053..29a28f0f74 100644
--- a/pretyping/reductionops.mli
+++ b/pretyping/reductionops.mli
@@ -121,6 +121,7 @@ val hnf_lam_appvect : env -> evar_map -> constr -> constr array -> constr
val hnf_lam_applist : env -> evar_map -> constr -> constr list -> constr
val splay_prod : env -> evar_map -> constr -> (name * constr) list * constr
+val splay_lambda : env -> evar_map -> constr -> (name * constr) list * constr
val splay_arity : env -> evar_map -> constr -> (name * constr) list * sorts
val sort_of_arity : env -> constr -> sorts
val decomp_n_prod :