(************************************************************************) (* v * The Coq Proof Assistant / The Coq Development Team *) (* tactic (** [without_check] respectively means:\\ [Intro]: no check that the name does not exist\\ [Intro_after]: no check that the name does not exist and that variables in its type does not escape their scope\\ [Intro_replacing]: no check that the name does not exist and that variables in its type does not escape their scope\\ [Convert_hyp]: no check that the name exist and that its type is convertible\\ *) (** The primitive refiner. *) val prim_refiner : prim_rule -> evar_map -> goal -> goal list * evar_map type proof_variable val proof_variable_index : identifier -> proof_variable list -> int (** {6 Refiner errors. } *) type refiner_error = (*i Errors raised by the refiner i*) | BadType of constr * constr * constr | UnresolvedBindings of name list | CannotApply of constr * constr | NotWellTyped of constr | NonLinearProof of constr | MetaInType of constr (*i Errors raised by the tactics i*) | IntroNeedsProduct | DoesNotOccurIn of constr * identifier exception RefinerError of refiner_error val catchable_exception : exn -> bool