aboutsummaryrefslogtreecommitdiffhomepage
path: root/engine/evarutil.mli
diff options
context:
space:
mode:
authorGravatar Hugo Herbelin <Hugo.Herbelin@inria.fr>2018-06-26 22:48:20 +0200
committerGravatar Hugo Herbelin <Hugo.Herbelin@inria.fr>2018-06-26 22:48:20 +0200
commit74716b32ce4d37a1210dfff659870995dda99e10 (patch)
treec09600ff37b5e7dcc956bb88c6125ec1390a0ceb /engine/evarutil.mli
parentb98ae49d282f73343c1950e960f4b3bc7c28de70 (diff)
parent8ab4f8f76958d2603858ad3e4073be61ad38d113 (diff)
Merge PR #7826: evd: restrict_evar with candidates, can raise NoCandidatesLeft
Diffstat (limited to 'engine/evarutil.mli')
-rw-r--r--engine/evarutil.mli12
1 files changed, 9 insertions, 3 deletions
diff --git a/engine/evarutil.mli b/engine/evarutil.mli
index db638be9e..8ce1b625f 100644
--- a/engine/evarutil.mli
+++ b/engine/evarutil.mli
@@ -65,9 +65,6 @@ val new_type_evar :
val new_Type : ?rigid:rigid -> env -> evar_map -> evar_map * constr
-val restrict_evar : evar_map -> Evar.t -> Filter.t ->
- ?src:Evar_kinds.t Loc.located -> constr list option -> evar_map * Evar.t
-
(** Polymorphic constants *)
val new_global : evar_map -> GlobRef.t -> evar_map * constr
@@ -231,9 +228,18 @@ raise OccurHypInSimpleClause if the removal breaks dependencies *)
type clear_dependency_error =
| OccurHypInSimpleClause of Id.t option
| EvarTypingBreak of Constr.existential
+| NoCandidatesLeft of Evar.t
exception ClearDependencyError of Id.t * clear_dependency_error * GlobRef.t option
+(** Restrict an undefined evar according to a (sub)filter and candidates.
+ The evar will be defined if there is only one candidate left,
+@raise ClearDependencyError NoCandidatesLeft if the filter turns the candidates
+ into an empty list. *)
+
+val restrict_evar : evar_map -> Evar.t -> Filter.t ->
+ ?src:Evar_kinds.t Loc.located -> constr list option -> evar_map * Evar.t
+
val clear_hyps_in_evi : env -> evar_map -> named_context_val -> types ->
Id.Set.t -> evar_map * named_context_val * types