diff options
author | Maxime Dénès <mail@maximedenes.fr> | 2014-07-22 15:57:27 -0400 |
---|---|---|
committer | Maxime Dénès <mail@maximedenes.fr> | 2014-07-22 19:14:19 -0400 |
commit | aa63497700bb2e75767c1891a961fc06ba329065 (patch) | |
tree | 3ddd6a1060fe1d134d13a087d90a26400a39ce45 /checker/reduction.ml | |
parent | 283ce711d67d18889e0e4acf51d9ef15a35e6ab7 (diff) |
Porting guard fix to checker.
Diffstat (limited to 'checker/reduction.ml')
-rw-r--r-- | checker/reduction.ml | 16 |
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 |