Low-level Ltac2 binder API is not low-level enough #12601
Labels
part: ltac2
Issues and PRs related to the (in development) Ltac2 tactic langauge.
Projects
Milestone
Description of the problem
The whole point of having
Constr.Unsafe
(in particularConstr.Unsafe.make
) is so that I can build terms without incurring typechecking costs and without having to incur the cost of manipulating the goal evar and pushing things into the context. However, the current binder API makes this effectively impossible because theConstr.Binder.make
callsRetyping.relevance_of_type
which requires that the term be sufficiently well-typed in the current context.cc @jfehrle @ppedrot
I'm trying to benchmark some code for generating linear-sized proof terms in linear time for rewriting, and this makes it impossible to generate the proof terms I want. (Looking at the code for
Retyping.relevance_of_type
, it looks like I might be able to get around this by inserting extra cast nodes, but this is still quite unfortunate.)Coq Version
master / 8.12
The text was updated successfully, but these errors were encountered: