From 97fefe1fcca363a1317e066e7f4b99b9c1e9987b Mon Sep 17 00:00:00 2001 From: Stephane Glondu Date: Thu, 12 Jan 2012 16:02:20 +0100 Subject: Imported Upstream version 8.4~beta --- pretyping/unification.mli | 56 +++++++++++++++++++++++++++++++++-------------- 1 file changed, 40 insertions(+), 16 deletions(-) (limited to 'pretyping/unification.mli') diff --git a/pretyping/unification.mli b/pretyping/unification.mli index 2f48081a..e4bca4d3 100644 --- a/pretyping/unification.mli +++ b/pretyping/unification.mli @@ -1,54 +1,78 @@ (************************************************************************) (* v * The Coq Proof Assistant / The Coq Development Team *) -(* env -> conv_pb -> ?flags:unify_flags -> constr -> constr -> evar_map -> evar_map + env -> evar_map -> conv_pb -> ?flags:unify_flags -> constr -> constr -> evar_map -(* [w_unify_to_subterm env (c,t) m] performs unification of [c] with a +(** [w_unify_to_subterm env (c,t) m] performs unification of [c] with a subterm of [t]. Constraints are added to [m] and the matched subterm of [t] is also returned. *) val w_unify_to_subterm : - env -> ?flags:unify_flags -> constr * constr -> evar_map -> evar_map * constr + env -> evar_map -> ?flags:unify_flags -> constr * constr -> evar_map * constr val w_unify_to_subterm_all : - env -> ?flags:unify_flags -> constr * constr -> evar_map -> (evar_map * constr) list + env -> evar_map -> ?flags:unify_flags -> constr * constr -> (evar_map * constr) list val w_unify_meta_types : env -> ?flags:unify_flags -> evar_map -> evar_map -(* [w_coerce_to_type env evd c ctyp typ] tries to coerce [c] of type +(** [w_coerce_to_type env evd c ctyp typ] tries to coerce [c] of type [ctyp] so that its gets type [typ]; [typ] may contain metavariables *) val w_coerce_to_type : env -> evar_map -> constr -> types -> types -> evar_map * constr (*i This should be in another module i*) -(* [abstract_list_all env evd t c l] *) -(* abstracts the terms in l over c to get a term of type t *) -(* (exported for inv.ml) *) +(** [abstract_list_all env evd t c l] + abstracts the terms in l over c to get a term of type t + (exported for inv.ml) *) val abstract_list_all : env -> evar_map -> constr -> constr -> constr list -> constr + + +(* For tracing *) + +val w_merge : env -> bool -> unify_flags -> evar_map * + (metavariable * constr * (instance_constraint * instance_typing_status)) list * + (env * types pexistential * types) list -> evar_map + +val unify_0 : Environ.env -> + Evd.evar_map -> + Evd.conv_pb -> + unify_flags -> + Term.types -> + Term.types -> + Evd.evar_map * Evd.metabinding list * + (Environ.env * Term.types Term.pexistential * Term.constr) list + -- cgit v1.2.3