package coq-core
Install
Dune Dependency
Authors
Maintainers
Sources
md5=13d2793fc6413aac5168822313e4864e
sha512=ec8379df34ba6e72bcf0218c66fef248b0e4c5c436fb3f2d7dd83a2c5f349dd0874a67484fcf9c0df3e5d5937d7ae2b2a79274725595b4b0065a381f70769b42
doc/coq-core.proofs/Refine/index.html
Module Refine
Source
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.tactic
In refine ~typecheck t
, t
is a term with holes under some evar_map
context. The term t
is used as a partial solution for the current goal (refine is a goal-dependent tactic), the new holes created by t
become the new subgoals. Exceptions raised during the interpretation of t
are caught and result in tactic failures. If typecheck
is true
t
is 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.tactic
The general version of refine.
Unification constraint handling
Solve any remaining unification problems, applying heuristics.