aboutsummaryrefslogtreecommitdiffhomepage
path: root/engine/evarutil.ml
diff options
context:
space:
mode:
authorGravatar Maxime Dénès <mail@maximedenes.fr>2017-08-29 14:37:55 +0200
committerGravatar Maxime Dénès <mail@maximedenes.fr>2017-08-29 14:37:55 +0200
commit751246d893470b95d3d96ef87fe6dc86950d8d63 (patch)
treea4512b9db59c10ed761d124f63f18a30ce1f51aa /engine/evarutil.ml
parent7e29b535397c98a46999ecdd827fa5f4cebc8798 (diff)
parent4f392bc8114309f388791c1ddc7cc95cc021aa5e (diff)
Merge PR #830: Moving assert (the "Cut" rule) to new proof engine
Diffstat (limited to 'engine/evarutil.ml')
-rw-r--r--engine/evarutil.ml8
1 files changed, 8 insertions, 0 deletions
diff --git a/engine/evarutil.ml b/engine/evarutil.ml
index 2afc12cd3..339c6a248 100644
--- a/engine/evarutil.ml
+++ b/engine/evarutil.ml
@@ -412,6 +412,14 @@ let new_evar_instance sign evd typ ?src ?filter ?candidates ?store ?naming ?prin
let (evd, newevk) = new_pure_evar sign evd ?src ?filter ?candidates ?store ?naming ?principal typ in
evd, mkEvar (newevk,Array.of_list instance)
+let new_evar_from_context sign evd ?src ?filter ?candidates ?store ?naming ?principal typ =
+ let instance = List.map (NamedDecl.get_id %> EConstr.mkVar) (named_context_of_val sign) in
+ let instance =
+ match filter with
+ | None -> instance
+ | Some filter -> Filter.filter_list filter instance in
+ new_evar_instance sign evd typ ?src ?filter ?candidates ?store ?naming ?principal instance
+
(* [new_evar] declares a new existential in an env env with type typ *)
(* Converting the env into the sign of the evar to define *)
let new_evar env evd ?src ?filter ?candidates ?store ?naming ?principal typ =