Module Logic
Legacy proof engine. Do not use in newly written code.
val prim_refiner : check:bool -> Constr.constr -> Evd.evar_map -> Goal.goal -> Goal.goal list * Evd.evar_map
Refiner errors.
type refiner_error
=
|
BadType of Constr.constr * Constr.constr * Constr.constr
|
UnresolvedBindings of Names.Name.t list
|
CannotApply of Constr.constr * Constr.constr
|
NotWellTyped of Constr.constr
|
NonLinearProof of Constr.constr
|
MetaInType of EConstr.constr
|
IntroNeedsProduct
|
DoesNotOccurIn of Constr.constr * Names.Id.t
|
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
val catchable_exception : exn -> bool
type 'id move_location
=
|
MoveAfter of 'id
|
MoveBefore of 'id
|
MoveFirst
|
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 : bool -> Environ.named_context_val -> Evd.evar_map -> EConstr.named_declaration -> Environ.named_context_val
val move_hyp_in_named_context : Environ.env -> Evd.evar_map -> Names.Id.t -> Names.Id.t move_location -> Environ.named_context_val -> Environ.named_context_val
val insert_decl_in_named_context : Environ.env -> Evd.evar_map -> EConstr.named_declaration -> Names.Id.t move_location -> Environ.named_context_val -> Environ.named_context_val