diff options
author | herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2011-12-16 15:09:07 +0000 |
---|---|---|
committer | herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2011-12-16 15:09:07 +0000 |
commit | 6c21af13a66a8fd829979476205e32df9e8c0f49 (patch) | |
tree | 9f3634f39cbeeefff29877db39a353b63c598bc5 /pretyping/evd.mli | |
parent | ec60cad947dc4267f0545626b4ec7145f19f3ee3 (diff) |
Introducing a notion of evar candidates to be used when an evar is
known in advance to be instantiable by only a finite number of terms.
When an evar with candidates remain unsolved after unification, the
first candidate is taken as a heuristic.
This is used in particular to reduce the number of pending conversion
problems when trying to infer the return clause of a pattern-matching
problem. As an example, this repairs test 2615.v.
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@14797 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'pretyping/evd.mli')
-rw-r--r-- | pretyping/evd.mli | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/pretyping/evd.mli b/pretyping/evd.mli index feddb908e..55c54f2c6 100644 --- a/pretyping/evd.mli +++ b/pretyping/evd.mli @@ -117,6 +117,7 @@ type evar_info = { evar_body : evar_body; evar_filter : bool list; evar_source : hole_kind located; + evar_candidates : constr list option; evar_extra : Store.t } val eq_evar_info : evar_info -> evar_info -> bool @@ -195,7 +196,7 @@ val defined_evars : evar_map -> evar_map val fold_undefined : (evar -> evar_info -> 'a -> 'a) -> evar_map -> 'a -> 'a val evar_declare : named_context_val -> evar -> types -> ?src:loc * hole_kind -> - ?filter:bool list -> evar_map -> evar_map + ?filter:bool list -> ?candidates:constr list -> evar_map -> evar_map val evar_source : existential_key -> evar_map -> hole_kind located (* spiwack: this function seems to somewhat break the abstraction. |