Module Refine
The primitive refine tactic used to fill the holes in partial proofs. This is the recommended way to write tactics when the proof term is easy to write down. Note that this is not the user-level refine tactic defined in Ltac which is actually based on the one below.
The refine tactic
Refinement primitives
val refine : typecheck:bool -> (Evd.evar_map -> Evd.evar_map * EConstr.t) -> unit Proofview.tacticIn
refine ~typecheck t,tis a term with holes under someevar_mapcontext. The termtis used as a partial solution for the current goal (refine is a goal-dependent tactic), the new holes created bytbecome the new subgoals. Exceptions raised during the interpretation oftare caught and result in tactic failures. Iftypecheckistruetis type-checked beforehand. Shelved evars and goals are all marked as unresolvable for typeclasses.
val generic_refine : typecheck:bool -> ('a * EConstr.t) Proofview.tactic -> Proofview.Goal.t -> 'a Proofview.tacticThe general version of refine.
Unification constraint handling
val solve_constraints : unit Proofview.tacticSolve any remaining unification problems, applying heuristics.