This PR improves the usability of the `[grind =]` attribute by
automatically handling
forbidden pattern symbols. For example, consider the following theorem
tagged with this attribute:
```
getLast?_eq_some_iff {xs : List α} {a : α} : xs.getLast? = some a ↔ ∃ ys, xs = ys ++ [a]
```
Here, the selected pattern is `xs.getLast? = some a`, but `Eq` is a
forbidden pattern symbol.
Instead of producing an error, this function converts the pattern into a
multi-pattern,
allowing the attribute to be used conveniently.
|
||
|---|---|---|
| .. | ||
| Cases.lean | ||
| Lemmas.lean | ||
| Norm.lean | ||
| Offset.lean | ||
| Propagator.lean | ||
| Tactics.lean | ||
| Util.lean | ||