package coq

  1. Overview
  2. Docs
On This Page
  1. Refiner errors.
Legend:
Library
Module
Module type
Parameter
Class
Class type

Legacy proof engine. Do not use in newly written code.

check respectively means:\\ Intro: check that the name does not exist\\ Intro_after: check that the name does not exist and that variables in its type does not escape their scope\\ Intro_replacing: check that the name does not exist and that variables in its type does not escape their scope\\ Convert_hyp: check that the name exist and that its type is convertible\\

The primitive refiner.

val refiner : check:bool -> Constr.constr -> unit Proofview.tactic
Refiner errors.
type refiner_error =
  1. | BadType of Constr.constr * Constr.constr * EConstr.t
  2. | UnresolvedBindings of Names.Name.t list
  3. | CannotApply of Constr.constr * Constr.constr
  4. | NonLinearProof of Constr.constr
  5. | MetaInType of EConstr.constr
  6. | IntroNeedsProduct
  7. | NoSuchHyp of Names.Id.t
exception RefinerError of Environ.env * Evd.evar_map * refiner_error
val error_no_such_hypothesis : Environ.env -> Evd.evar_map -> Names.Id.t -> 'a

Move destination for hypothesis

type 'id move_location =
  1. | MoveAfter of 'id
  2. | MoveBefore of 'id
  3. | MoveFirst
  4. | MoveLast
    (*

    can be seen as "no move" when doing intro

    *)
val pr_move_location : ('a -> Pp.t) -> 'a move_location -> Pp.t
val convert_hyp : check:bool -> reorder:bool -> Environ.env -> Evd.evar_map -> EConstr.named_declaration -> Environ.named_context_val
type cannot_move_hyp
exception CannotMoveHyp of cannot_move_hyp