From 627a69094f6126aeb1d959b6f610e865ebde8a73 Mon Sep 17 00:00:00 2001 From: herbelin Date: Sat, 5 Mar 2011 16:42:16 +0000 Subject: Instantiate evar by a lambda when "?n args" has to unify with Prod git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@13880 85f007b7-540e-0410-9357-904b9bb8a0f7 --- pretyping/evarutil.ml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pretyping/evarutil.ml b/pretyping/evarutil.ml index 098d0d587a..0da6c39bee 100644 --- a/pretyping/evarutil.ml +++ b/pretyping/evarutil.ml @@ -1532,10 +1532,13 @@ let split_tycon loc env evd tycon = let t = whd_betadeltaiota env evd c in match kind_of_term t with | Prod (na,dom,rng) -> evd, (na, dom, rng) - | Evar ev when not (Evd.is_defined_evar evd ev) -> + | Evar ev (* ev is undefined because of whd_betadeltaiota *) -> let (evd',prod) = define_evar_as_product evd ev in let (_,dom,rng) = destProd prod in evd',(Anonymous, dom, rng) + | App (c,args) when isEvar c -> + let (evd',lam) = define_evar_as_lambda evd (destEvar c) in + real_split evd' (mkApp (lam,args)) | _ -> error_not_product_loc loc env evd c in match tycon with -- cgit v1.2.3