Module Tacmach.New

Variants of Tacmach functions built with the new proof engine

val pf_apply : (Environ.env -> Evd.evar_map -> 'a) -> Proofview.Goal.t -> 'a
val of_old : (Goal.goal Evd.sigma -> 'a) -> Proofview.Goal.t -> 'a

FIXME: encapsulate the level in an existential type.

val project : Proofview.Goal.t -> Evd.evar_map
val pf_env : Proofview.Goal.t -> Environ.env
val pf_concl : Proofview.Goal.t -> EConstr.types
val pf_unsafe_type_of : Proofview.Goal.t -> EConstr.constr -> EConstr.types

WRONG: To be avoided at all costs, it typechecks the term entirely but forgets the universe constraints necessary to retypecheck it

val pf_get_type_of : Proofview.Goal.t -> EConstr.constr -> EConstr.types

This function does no type inference and expects an already well-typed term. It recomputes its type in the fastest way possible (no conversion is ever involved)

val pf_type_of : Proofview.Goal.t -> EConstr.constr -> Evd.evar_map * EConstr.types

This function entirely type-checks the term and computes its type and the implied universe constraints.

val pf_conv_x : Proofview.Goal.t -> EConstr.t -> EConstr.t -> bool
val pf_get_new_id : Names.Id.t -> Proofview.Goal.t -> Names.Id.t
val pf_ids_of_hyps : Proofview.Goal.t -> Names.Id.t list
val pf_ids_set_of_hyps : Proofview.Goal.t -> Names.Id.Set.t
val pf_hyps_types : Proofview.Goal.t -> (Names.Id.t * EConstr.types) list
val pf_get_hyp : Names.Id.t -> Proofview.Goal.t -> EConstr.named_declaration
val pf_get_hyp_typ : Names.Id.t -> Proofview.Goal.t -> EConstr.types
val pf_last_hyp : Proofview.Goal.t -> EConstr.named_declaration
val pf_nf_concl : Proofview.Goal.t -> EConstr.types
val pf_reduce_to_quantified_ind : Proofview.Goal.t -> EConstr.types -> (Names.inductive * EConstr.EInstance.t) * EConstr.types
val pf_hnf_constr : Proofview.Goal.t -> EConstr.constr -> EConstr.types
val pf_hnf_type_of : Proofview.Goal.t -> EConstr.constr -> EConstr.types
val pf_compute : Proofview.Goal.t -> EConstr.constr -> EConstr.constr
val pf_nf_evar : Proofview.Goal.t -> EConstr.constr -> EConstr.constr
val pr_gls : Proofview.Goal.t -> Pp.t