grind parameter elaboration
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Elaborates grind parameters.
incremental = true for tactics such as finish, in this case, we disable some kinds of parameters
such as - ident.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Returns the parameters of a grind?/finish? call that the suggested tactic must carry
verbatim.
Parameters that produce E-matching theorems are recorded in the generated script as
use/instantiate steps and are omitted. The remaining parameters have effects the script
cannot represent, so dropping them produces suggestions that fail during replay:
- modifiers that do not create E-matching theorems (
cases,inj,funCC,symbol); - identifiers resolving to a type marked for case-splitting (e.g.,
[EqvGen]for an inductive predicate); - identifiers resolving to a theorem whose statement is not a
∀and is not indexable (seeisFactDecl), which is asserted as a fact rather than recorded as an E-matching theorem; - identifiers using local variable dot notation (e.g.,
cs.getD_rightInvSeqwherecsis a local variable), which produce anchors that need the original term during replay; - non-identifier terms (e.g.,
show p by tac).
TODO: This syntactic filtering is a stopgap: it duplicates parameter-elaboration logic and silently depends on which side effects are representable in scripts. A more robust solution is to make the script self-contained, e.g., a script step that marks a type for case-splitting, and tracking which parameters were actually used.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Helper method for processing parameters in tactics such as finish and finish?
Equations
- One or more equations did not get rendered due to their size.