Module EClause
Evar-based clauses
type hole={hole_evar : EConstr.constr;The hole itself. Guaranteed to be an evar.
hole_type : EConstr.types;Type of the hole in the current environment.
hole_deps : bool;Whether the remainder of the clause was dependent in the hole. Note that because let binders are substituted, it does not mean that it actually appears somewhere in the returned clause.
hole_name : Names.Name.t;Name of the hole coming from its binder.
}type clause={cl_holes : hole list;cl_concl : EConstr.types;}
val make_evar_clause : Environ.env -> Evd.evar_map -> ?len:int -> EConstr.types -> Evd.evar_map * clauseAn evar version of
make_clenv_binding. Given a typet,evar_environments env sigma ~len t bltries to eliminate at mostlenproducts of the typetby filling it with evars. It returns the resulting type together with the list of holes generated. Assumes thattis well-typed in the environment.
val solve_evar_clause : Environ.env -> Evd.evar_map -> bool -> clause -> EConstr.constr Tactypes.bindings -> Evd.evar_mapsolve_evar_clause env sigma hyps cl bltries to solve the holes contained inclaccording to theblargument. Assumes thatblare well-typed in the environment. The booleanhypsis a compatibility flag that allows to consider arguments to be dependent only when they appear in hypotheses and not in the conclusion. This boolean is only used whenblis of the formImplicitBindings _.
val check_bindings : 'a Tactypes.explicit_bindings -> unitval explain_no_such_bound_variable : Names.Id.t list -> Names.Id.t CAst.t -> 'aval error_not_right_number_missing_arguments : int -> 'a