Module Clenv
This file defines clausenv, which is a deprecated way to handle open terms in the proof engine. This API is legacy.
The Type of Constructions clausale environments.
val clenv_evd : clausenv -> Evd.evar_map
val update_clenv_evd : clausenv -> Evd.evar_map -> clausenv
val clenv_strip_proj_params : clausenv -> clausenv
val clenv_refresh : Environ.env -> Evd.evar_map -> UnivGen.sort_context_set option -> clausenv -> clausenv
val clenv_arguments : clausenv -> Constr.metavariable list
val clenv_value : clausenv -> EConstr.constr
subject of clenv (instantiated)
val clenv_type : clausenv -> EConstr.types
type of clenv (instantiated)
val mk_clenv_from : Environ.env -> Evd.evar_map -> (EConstr.constr * EConstr.types) -> clausenv
val mk_clenv_from_n : Environ.env -> Evd.evar_map -> int -> (EConstr.constr * EConstr.types) -> clausenv
linking of clenvs
val clenv_instantiate : ?flags:Unification.unify_flags -> ?submetas:(Constr.metavariable * Evd.clbinding) list -> Constr.metavariable -> clausenv -> (EConstr.constr * EConstr.types) -> clausenv
Bindings
val clenv_independent : clausenv -> Constr.metavariable list
bindings where the key is the position in the template of the clenv (dependent or not). Positions can be negative meaning to start from the rightmost argument of the template.
val clenv_missing : clausenv -> Constr.metavariable list
val make_clenv_binding_apply : Environ.env -> Evd.evar_map -> int option -> (EConstr.constr * EConstr.constr) -> EConstr.constr Tactypes.bindings -> clausenv
the arity of the lemma is fixed the optional int tells how many prods of the lemma have to be used use all of them if None
val make_clenv_binding : Environ.env -> Evd.evar_map -> (EConstr.constr * EConstr.constr) -> EConstr.constr Tactypes.bindings -> clausenv
val clenv_push_prod : clausenv -> (Constr.metavariable * bool * clausenv) option
if the clause is a product, add an extra meta for this product
Clenv tactics
val unify : ?flags:Unification.unify_flags -> cv_pb:Conversion.conv_pb -> EConstr.constr -> unit Proofview.tactic
val res_pf : ?with_evars:bool -> ?with_classes:bool -> ?flags:Unification.unify_flags -> clausenv -> unit Proofview.tactic
val case_pf : ?with_evars:bool -> dep:bool -> (EConstr.constr * EConstr.types) -> unit Proofview.tactic
val clenv_pose_dependent_evars : ?with_evars:bool -> clausenv -> clausenv
val pr_clenv : clausenv -> Pp.t
Pretty-print (debug only)
module Internal : sig ... end