package rocq-runtime

  1. Overview
  2. Docs
The Rocq Prover -- Core Binaries and Tools

Install

Dune Dependency

Authors

Maintainers

Sources

rocq-9.0.0.tar.gz
md5=8d522602d23e7a665631826dab9aa92b
sha512=f4f76a6a178e421c99ee7a331a2fd97a06e9c5d0168d7e60c44e3820d8e1a124370ea104ad90c7f87a9a1e9d87b2d0d7d2d387c998feeaed4a75ed04e176a4be

doc/rocq-runtime.proofs/Refine/index.html

Module RefineSource

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
Sourceval 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.

Sourceval refine_with_principal : typecheck:bool -> (Evd.evar_map -> Evd.evar_map * EConstr.t * Evar.t option) -> unit Proofview.tactic

Like refine, but if the Evar.t option is Some ev then ev inherits properties (the name) of the goal.

Sourceval generic_refine : typecheck:bool -> ('a * EConstr.t * Evar.t option) Proofview.tactic -> Proofview.Goal.t -> 'a Proofview.tactic

The general version of refine.

Unification constraint handling
Sourceval solve_constraints : unit Proofview.tactic

Solve any remaining unification problems, applying heuristics.

OCaml

Innovation. Community. Security.