This PR adds optimized `abstractFVars` and `abstractFVarsRange` for converting free variables to de Bruijn indices during pattern matching/unification. **Optimizations:** - Metavariables are skipped (their contexts must not include abstracted fvars) - Subterms whose `maxFVar` is below the minimal abstracted fvar are skipped via early cutoff - Results are maximally shared via `AlphaShareBuilderM` These optimizations are sound for Miller pattern matching where metavariables are created before entering binders. |
||
|---|---|---|
| .. | ||
| AbstractS.lean | ||
| InstantiateMVarsS.lean | ||
| InstantiateS.lean | ||
| Intro.lean | ||
| IsClass.lean | ||
| LooseBVarsS.lean | ||
| Main.lean | ||
| MaxFVar.lean | ||
| Pattern.lean | ||
| ProofInstInfo.lean | ||
| ReplaceS.lean | ||
| SymM.lean | ||
| Util.lean | ||