aboutsummaryrefslogtreecommitdiff
path: root/pretyping/evd.mli
diff options
context:
space:
mode:
authorbarras2004-09-15 16:50:56 +0000
committerbarras2004-09-15 16:50:56 +0000
commit2d707f4445c0cc86d8f8c30bdbe9eecf956997f9 (patch)
tree9d6c2ff5489ba6bbf5683963108c34aa10b81e6f /pretyping/evd.mli
parent8f5a7bbf2e5c64d6badd9e7c39da83d07b9c6f40 (diff)
hiding the meta_map in evar_defs
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@6109 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'pretyping/evd.mli')
-rw-r--r--pretyping/evd.mli56
1 files changed, 51 insertions, 5 deletions
diff --git a/pretyping/evd.mli b/pretyping/evd.mli
index df362a9bfa..fd6e944e14 100644
--- a/pretyping/evd.mli
+++ b/pretyping/evd.mli
@@ -9,9 +9,11 @@
(*i $Id$ i*)
(*i*)
+open Util
open Names
open Term
open Sign
+open Libnames
(*i*)
(* The type of mappings for existential variables.
@@ -51,6 +53,7 @@ val is_evar : evar_map -> evar -> bool
val is_defined : evar_map -> evar -> bool
val evar_body : evar_info -> evar_body
+val evar_env : evar_info -> Environ.env
val string_of_existential : evar -> string
val existential_of_int : int -> evar
@@ -104,8 +107,51 @@ type clbinding =
val map_clb : (constr -> constr) -> clbinding -> clbinding
type meta_map = clbinding Metamap.t
-val meta_defined : meta_map -> metavariable -> bool
-val meta_fvalue : meta_map -> metavariable -> constr freelisted
-val meta_ftype : meta_map -> metavariable -> constr freelisted
-val meta_declare : metavariable -> types -> meta_map -> meta_map
-val meta_assign : metavariable -> constr -> meta_map -> meta_map
+
+(*************************)
+(* Unification state *)
+
+type hole_kind =
+ | ImplicitArg of global_reference * (int * identifier option)
+ | BinderType of name
+ | QuestionMark
+ | CasesType
+ | InternalHole
+ | TomatchTypeParameter of inductive * int
+
+type conv_pb =
+ | CONV
+ | CUMUL
+
+type evar_defs
+val evars_of : evar_defs -> evar_map
+val metas_of : evar_defs -> meta_map
+
+val mk_evar_defs : evar_map * meta_map -> evar_defs
+(* the same with empty meta map: *)
+val create_evar_defs : evar_map -> evar_defs
+val evars_reset_evd : evar_map -> evar_defs -> evar_defs
+val reset_evd : evar_map * meta_map -> evar_defs -> evar_defs
+val evar_source : existential_key -> evar_defs -> loc * hole_kind
+
+type evar_constraint = conv_pb * constr * constr
+val add_conv_pb : evar_constraint -> evar_defs -> evar_defs
+
+val evar_declare :
+ named_context -> evar -> types -> ?src:loc * hole_kind ->
+ evar_defs -> evar_defs
+val evar_define : evar -> constr -> evar_defs -> evar_defs
+
+val is_defined_evar : evar_defs -> existential -> bool
+val is_undefined_evar : evar_defs -> constr -> bool
+
+val get_conv_pbs : evar_defs -> (evar_constraint -> bool) ->
+ evar_defs * evar_constraint list
+
+val meta_defined : evar_defs -> metavariable -> bool
+val meta_fvalue : evar_defs -> metavariable -> constr freelisted
+val meta_ftype : evar_defs -> metavariable -> constr freelisted
+val meta_declare : metavariable -> types -> evar_defs -> evar_defs
+val meta_assign : metavariable -> constr -> evar_defs -> evar_defs
+
+val meta_merge : evar_defs -> evar_defs -> evar_defs