(************************************************************************) (* v * The Coq Proof Assistant / The Coq Development Team *) (* let loc = Rawterm.loc_of_rawconstr rawc in user_err_loc (loc,"",Pp.str ("Instance is not well-typed in the environment of " ^ string_of_existential evk)) in evar_define evk typed_c (evars_reset_evd sigma evd) (* vernac command Existential *) let instantiate_pf_com n com pfts = let gls = top_goal_of_pftreestate pfts in let sigma = gls.sigma in let (evk,evi) = let evl = Evarutil.non_instantiated sigma in if (n <= 0) then error "incorrect existential variable index" else if List.length evl < n then error "not so many uninstantiated existential variables" else List.nth evl (n-1) in let env = Evd.evar_env evi in let rawc = Constrintern.intern_constr sigma env com in let evd = create_goal_evar_defs sigma in let evd' = w_refine evk rawc evd in change_constraints_pftreestate (evars_of evd') pfts