aboutsummaryrefslogtreecommitdiffhomepage
path: root/pretyping/evarutil.mli
diff options
context:
space:
mode:
authorGravatar aspiwack <aspiwack@85f007b7-540e-0410-9357-904b9bb8a0f7>2011-11-23 17:09:02 +0000
committerGravatar aspiwack <aspiwack@85f007b7-540e-0410-9357-904b9bb8a0f7>2011-11-23 17:09:02 +0000
commit45b6c77dfd819bf64283146859aac56faac49ead (patch)
tree082005ac80af3a3a143ec4ef249d2f717539d900 /pretyping/evarutil.mli
parent39fd2b160dbbd6411dd05f52984f198338de300a (diff)
Adds a pair of function in Evar_util to gather dependent evars in an
[evar_map]. We also gather some metadata on these evars: if they are still undefined, and if not, which evars have been used in their (partial) instantiation. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@14720 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'pretyping/evarutil.mli')
-rw-r--r--pretyping/evarutil.mli15
1 files changed, 15 insertions, 0 deletions
diff --git a/pretyping/evarutil.mli b/pretyping/evarutil.mli
index c0c4252e6..36e64c9ad 100644
--- a/pretyping/evarutil.mli
+++ b/pretyping/evarutil.mli
@@ -110,10 +110,25 @@ val solve_pattern_eqn : env -> constr list -> constr -> constr
(** The following functions return the set of evars immediately
contained in the object, including defined evars *)
+
val evars_of_term : constr -> Intset.t
+
+(** returns the evars contained in the term associated with
+ the evars they contain themselves in their body, if any.
+ If the evar has no body, [None] is associated to it. *)
+val evars_of_evars_of_term : evar_map -> constr -> (Intset.t option) Intmap.t
val evars_of_named_context : named_context -> Intset.t
val evars_of_evar_info : evar_info -> Intset.t
+(** returns the evars which can be found in the typing context of the argument evars,
+ in the same format as {!evars_of_evars_of_term}.
+ It explores recursively the evars in the body of the argument evars -- but does
+ not return them. *)
+(* spiwack: tongue in cheek: it should have been called
+ [evars_of_evars_in_types_of_list_and_recursively_in_bodies] *)
+val evars_of_evars_in_types_of_list : evar_map -> evar list -> (Intset.t option) Intmap.t
+
+
(** The following functions return the set of undefined evars
contained in the object, the defined evars being traversed.
This is roughly a combination of the previous functions and