aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pretyping/evarutil.ml9
1 files changed, 8 insertions, 1 deletions
diff --git a/pretyping/evarutil.ml b/pretyping/evarutil.ml
index 0524a78473..10723c42b6 100644
--- a/pretyping/evarutil.ml
+++ b/pretyping/evarutil.ml
@@ -456,5 +456,12 @@ let abs_rng_tycon env isevars = function
| (_,(_,None)) -> empty_tycon
| (_,(_,Some c)) ->
(match whd_betadeltaiota env !isevars c with
- | DOP2(Prod,_,DLAM(_,b)) -> mk_tycon b
+ | DOP2(Prod,t,DLAM(na,b)) ->
+ mk_tycon (
+ match b with
+ | DOP2(Cast,_,_) -> b
+ | _ ->
+ let s = Retyping.get_sort_of env !isevars t in
+ let env' = push_rel (na,make_typed t s) env in
+ mkCast b (Retyping.get_type_of env' !isevars b))
| _ -> empty_tycon)