The grind tactic includes an auxiliary cases tactic that is not intended for direct use by users.
This method implements it.
This tactic is automatically applied when introducing local declarations with a type tagged with [grind_cases].
It differs from the user-facing Lean cases tactic in the following ways:
It avoids unnecessary
revertandintrooperations.It does not introduce new local declarations for each minor premise. Instead, the
grindtactic preprocessor is responsible for introducing them.It assumes that the major premise (i.e., the parameter
fvarId) is the latest local declaration in the current goal.If the major premise type is an indexed family, auxiliary declarations and (heterogeneous) equalities are introduced. However, these equalities are not resolved using
unifyEqs. Instead, thegrindtactic employs union-find and congruence closure to process these auxiliary equalities. This approach avoids applying substitution to propositions that have already been internalized bygrind.
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.