aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--pretyping/indrec.ml11
1 files changed, 6 insertions, 5 deletions
diff --git a/pretyping/indrec.ml b/pretyping/indrec.ml
index f508ac886..ed549a77e 100644
--- a/pretyping/indrec.ml
+++ b/pretyping/indrec.ml
@@ -151,13 +151,13 @@ let type_rec_branch is_rec dep env sigma (vargs,depPvect,decP) tyi cs recargs =
(nhyps-1) (i::li))
| Some(dep',p) ->
let nP = lift (i+1+decP) p in
- let t_0 = process_pos env dep' nP (lift 1 t) in
+ let env' = push_rel (n,None,t) env in
+ let t_0 = process_pos env' dep' nP (lift 1 t) in
make_prod_dep (dep or dep') env
(n,t,
mkArrow t_0
(process_constr
- (push_rel (n,None,t)
- (push_rel (Anonymous,None,t_0) env))
+ (push_rel (Anonymous,None,t_0) env')
(i+2) (lift 1 c_0) rest (nhyps-1) (i::li))))
| LetIn (n,b,t,c_0) ->
mkLetIn (n,b,t,
@@ -217,9 +217,10 @@ let make_rec_branch_arg env sigma (nparams,fvect,decF) f cstr recargs =
(cprest,rest))
| Some(_,f_0) ->
let nF = lift (i+1+decF) f_0 in
- let arg = process_pos env nF (lift 1 t) in
+ let env' = push_rel d env in
+ let arg = process_pos env' nF (lift 1 t) in
lambda_name env
- (n,t,process_constr (push_rel d env) (i+1)
+ (n,t,process_constr env' (i+1)
(whd_beta (applist (lift 1 f, [(mkRel 1); arg])))
(cprest,rest)))
| (n,Some c,t as d)::cprest, rest ->