summaryrefslogtreecommitdiff
path: root/pretyping/unification.mli
diff options
context:
space:
mode:
Diffstat (limited to 'pretyping/unification.mli')
-rw-r--r--pretyping/unification.mli23
1 files changed, 14 insertions, 9 deletions
diff --git a/pretyping/unification.mli b/pretyping/unification.mli
index 89280631..cc62a9bb 100644
--- a/pretyping/unification.mli
+++ b/pretyping/unification.mli
@@ -6,7 +6,7 @@
(* * GNU Lesser General Public License Version 2.1 *)
(************************************************************************)
-(*i $Id: unification.mli 10856 2008-04-27 16:15:34Z herbelin $ i*)
+(*i $Id$ i*)
(*i*)
open Term
@@ -14,10 +14,12 @@ open Environ
open Evd
(*i*)
-type unify_flags = {
- modulo_conv_on_closed_terms : Names.transparent_state option;
+type unify_flags = {
+ modulo_conv_on_closed_terms : Names.transparent_state option;
use_metas_eagerly : bool;
modulo_delta : Names.transparent_state;
+ resolve_evars : bool;
+ use_evars_pattern_unification : bool
}
val default_unify_flags : unify_flags
@@ -25,20 +27,23 @@ val default_no_delta_unify_flags : unify_flags
(* The "unique" unification fonction *)
val w_unify :
- bool -> env -> conv_pb -> ?flags:unify_flags -> constr -> constr -> evar_defs -> evar_defs
+ bool -> env -> conv_pb -> ?flags:unify_flags -> constr -> constr -> evar_map -> evar_map
(* [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_defs -> evar_defs * constr
+ env -> ?flags:unify_flags -> constr * constr -> evar_map -> evar_map * constr
-val w_unify_meta_types : env -> ?flags:unify_flags -> evar_defs -> evar_defs
+val w_unify_to_subterm_all :
+ env -> ?flags:unify_flags -> constr * constr -> evar_map -> (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
[ctyp] so that its gets type [typ]; [typ] may contain metavariables *)
-val w_coerce_to_type : env -> evar_defs -> constr -> types -> types ->
- evar_defs * constr
+val w_coerce_to_type : env -> evar_map -> constr -> types -> types ->
+ evar_map * constr
(*i This should be in another module i*)
@@ -46,4 +51,4 @@ val w_coerce_to_type : env -> evar_defs -> constr -> types -> types ->
(* abstracts the terms in l over c to get a term of type t *)
(* (exported for inv.ml) *)
val abstract_list_all :
- env -> evar_defs -> constr -> constr -> constr list -> constr
+ env -> evar_map -> constr -> constr -> constr list -> constr