aboutsummaryrefslogtreecommitdiffhomepage
path: root/checker/reduction.ml
diff options
context:
space:
mode:
authorGravatar Maxime Dénès <mail@maximedenes.fr>2014-07-22 15:57:27 -0400
committerGravatar Maxime Dénès <mail@maximedenes.fr>2014-07-22 19:14:19 -0400
commitaa63497700bb2e75767c1891a961fc06ba329065 (patch)
tree3ddd6a1060fe1d134d13a087d90a26400a39ce45 /checker/reduction.ml
parent283ce711d67d18889e0e4acf51d9ef15a35e6ab7 (diff)
Porting guard fix to checker.
Diffstat (limited to 'checker/reduction.ml')
-rw-r--r--checker/reduction.ml16
1 files changed, 16 insertions, 0 deletions
diff --git a/checker/reduction.ml b/checker/reduction.ml
index 289b9a758..7bdc96283 100644
--- a/checker/reduction.ml
+++ b/checker/reduction.ml
@@ -499,6 +499,22 @@ let dest_prod_assum env =
in
prodec_rec env empty_rel_context
+let dest_lam_assum env =
+ let rec lamec_rec env l ty =
+ let rty = whd_betadeltaiota_nolet env ty in
+ match rty with
+ | Lambda (x,t,c) ->
+ let d = (x,None,t) in
+ lamec_rec (push_rel d env) (d::l) c
+ | LetIn (x,b,t,c) ->
+ let d = (x,Some b,t) in
+ lamec_rec (push_rel d env) (d::l) c
+ | Cast (c,_,_) -> lamec_rec env l c
+ | _ -> l,rty
+ in
+ lamec_rec env empty_rel_context
+
+
let dest_arity env c =
let l, c = dest_prod_assum env c in
match c with