diff options
author | Maxime Dénès <mail@maximedenes.fr> | 2017-08-29 14:37:55 +0200 |
---|---|---|
committer | Maxime Dénès <mail@maximedenes.fr> | 2017-08-29 14:37:55 +0200 |
commit | 751246d893470b95d3d96ef87fe6dc86950d8d63 (patch) | |
tree | a4512b9db59c10ed761d124f63f18a30ce1f51aa /engine | |
parent | 7e29b535397c98a46999ecdd827fa5f4cebc8798 (diff) | |
parent | 4f392bc8114309f388791c1ddc7cc95cc021aa5e (diff) |
Merge PR #830: Moving assert (the "Cut" rule) to new proof engine
Diffstat (limited to 'engine')
-rw-r--r-- | engine/evarutil.ml | 8 | ||||
-rw-r--r-- | engine/evarutil.mli | 7 |
2 files changed, 15 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 = diff --git a/engine/evarutil.mli b/engine/evarutil.mli index a8b6b5861..14173e774 100644 --- a/engine/evarutil.mli +++ b/engine/evarutil.mli @@ -21,6 +21,13 @@ val new_meta : unit -> metavariable val mk_new_meta : unit -> constr (** {6 Creating a fresh evar given their type and context} *) + +val new_evar_from_context : + named_context_val -> evar_map -> ?src:Evar_kinds.t Loc.located -> ?filter:Filter.t -> + ?candidates:constr list -> ?store:Store.t -> + ?naming:Misctypes.intro_pattern_naming_expr -> + ?principal:bool -> types -> evar_map * EConstr.t + val new_evar : env -> evar_map -> ?src:Evar_kinds.t Loc.located -> ?filter:Filter.t -> ?candidates:constr list -> ?store:Store.t -> |